#include <HUtilitySubwindow2.h>
Public Member Functions | |
virtual void | ChangeType (int type, long appearance=SW_BORDER|SW_SIZE_FIELD|SW_MOVE_FIELD|SW_DRAG_FIELD|SW_DELETE_FIELD|SW_BACKGROUND_BOX) |
virtual void | ComputeCoordinates (HBaseView *view, const char *in_system, HPoint &from, const char *out_system, HPoint &to) |
virtual void | ConvertFromSubwindowToView (HPoint &in_point, HPoint &out_point) |
virtual void | ConvertFromViewToSubwindow (HPoint const &in_point, HPoint &out_point) |
virtual void | DrawScrollBox () |
virtual bool | FindSubwindow (HBaseView *view, HPoint pos, bool &pointerselected) |
virtual HC_KEY | FindSubwindowFromSegment (HC_KEY key) |
virtual void | GetFromKey (HC_KEY key) |
virtual HC_KEY | GetKey () |
virtual const char * | GetName () |
virtual void | GetPosition (float &x, float &y) |
virtual void | GetSize (float &x, float &y) |
virtual int | GetType () |
virtual HC_KEY | GetWindowKey () |
HSubwindow2 () | |
HSubwindow2 (HBaseView *view, int DoRepeat=0, int DoCapture=1) | |
virtual void | Insert (float left, float right, float bottom, float top, char *title=0, float minwidth=0, float minheight=0, int type=SUBWINDOW_NOTYPE, long appearance=SW_BORDER|SW_SIZE_FIELD|SW_MOVE_FIELD|SW_DRAG_FIELD|SW_DELETE_FIELD|SW_BACKGROUND_BOX|SW_SCROLL_FIELD) |
virtual bool | IsActive () |
virtual bool | IsSubwindow (HC_KEY key) |
virtual int | ObjectMovedEvent (HBaseView *view, HC_KEY key, HPoint *p) |
virtual int | ObjectScaledEvent (HBaseView *view, HC_KEY key, HPoint &scale) |
virtual int | OnLButtonDown (HEventInfo &hevent) |
virtual int | OnLButtonDownAndMove (HEventInfo &hevent) |
virtual int | OnLButtonUp (HEventInfo &hevent) |
virtual int | PostFitWorldEvent (HBaseView *view) |
virtual int | PreFitWorldEvent (HBaseView *view) |
virtual void | Reset () |
virtual void | SetPosition (float x, float y) |
virtual void | SetSize (float left, float right, float bottom, float top) |
virtual void | SetSize (float deltax, float deltay) |
virtual int | SetupHandlesEvent (HBaseView *view, HC_KEY key, bool complex) |
Static Public Member Functions | |
static const char * | GetStaticName () |
Protected Member Functions | |
void | BuildBorder () |
void | BuildMagnifyController (float pos) |
void | ChangeMagnification (HBaseView *view, float magnification) |
void | ChangeMagnification (HBaseView *view, HPoint &p) |
void | CopyViewLight (HBaseView *view) |
void | GetParameters () |
bool | IsInCloseArea (HPoint &point) |
bool | IsInDragArea (HPoint &point) |
bool | IsInMagnifyArea (HPoint &point) |
bool | IsInMoveArea (HPoint &point) |
bool | IsInScrollArea (HPoint &point) |
bool | IsInSizeArea (HPoint &point) |
void | Magnify (HBaseView *view) |
virtual void | UpdateContent () |
Protected Attributes | |
int | m_Action |
long | m_Appearance |
float | m_Bottom |
float | m_Left |
float | m_MinHeight |
float | m_MinWidth |
HC_KEY | m_OuterKey |
HPoint | m_Pointer |
HPoint | m_ptLast |
float | m_Right |
int | m_ScrollHeight |
int | m_ScrollPos |
char | m_title [256] |
float | m_Top |
int | m_Type |
HC_KEY | m_WindowKey |
Subwindows can be used for things like displaying legend bars to different views of a particular scene. They can live outside of a particular model or can be stored inside an HSF file while retaining their functionality. Similar to GUI windows, they can be dragged, resized and deleted.
HSubwindow2::HSubwindow2 | ( | HBaseView * | view, | |
int | DoRepeat = 0 , |
|||
int | DoCapture = 1 | |||
) |
Constructs an HSubwindow2 object.
view | A pointer to an HBaseView object. | |
DoRepeat | An integer denoting whether this is a repeatable operator. This parameter has been deprecated. | |
DoCapture | An integer denoting whether the mouse state should be captured, which means that all mouse events should be received after a mousedown, even if it leaves the window. This parameter has been deprecated. |
HSubwindow2::HSubwindow2 | ( | ) |
Constructs an HSubwindow2 object.
void HSubwindow2::BuildBorder | ( | ) | [protected] |
This method constructs a window border area if the appearance has the SW_BORDER flag.
void HSubwindow2::BuildMagnifyController | ( | float | pos | ) | [protected] |
This method constructs a magnifier slider for the window if the appearance has the SW_MAGNIFIER_FIELD.
pos | The initial position of the slider. |
void HSubwindow2::ChangeMagnification | ( | HBaseView * | view, | |
float | magnification | |||
) | [protected] |
This method adjusts the subwindow's magnification.
view | A pointer to the HBaseView object. | |
magnification | The magnification level. |
This method changes the subwindow's manification based on the position of the magnification slider.
view | A pointer to the HBaseView object. | |
p | The slider position. |
virtual void HSubwindow2::ChangeType | ( | int | type, | |
long | appearance = SW_BORDER|SW_SIZE_FIELD|SW_MOVE_FIELD|SW_DRAG_FIELD|SW_DELETE_FIELD|SW_BACKGROUND_BOX | |||
) | [virtual] |
This method updates the subwindow type and appearance.
type | The Subwindow Type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER. | |
appearance | Bitfields describing the window characteristics which can be any combination of the following: SW_BORDER, SW_SIZE_FIELD, SW_MOVE_FIELD, SW_DRAG_FIELD, SW_DELETE_FIELD, SW_MAGNIFIER_FIELD, SW_BACKGROUND_BOX. |
virtual void HSubwindow2::ComputeCoordinates | ( | HBaseView * | view, | |
const char * | in_system, | |||
HPoint & | from, | |||
const char * | out_system, | |||
HPoint & | to | |||
) | [virtual] |
This method converts the given coordinate into the the out_system while still taking into account the transformation and rotation matrices along the subwindow segment path.
view | A pointer to the HBaseView object. | |
in_system | The from coordinate space as described in HC_Compute_Coordinates. | |
from | The coordinates to be converted. | |
out_system | The coordinate space that from will be converted into as described in HC_Compute_Coordinates. | |
to | Returns the newly converted coordinate. |
virtual void HSubwindow2::ConvertFromSubwindowToView | ( | HPoint & | in_point, | |
HPoint & | out_point | |||
) | [virtual] |
This method converts a 2D point in the subwindow to a 2D point in the view.
in_point | The 2D window space coordinates of the subwindow to be converted. | |
out_point | Returns the 2D coordinates converted to window space for the view. |
virtual void HSubwindow2::ConvertFromViewToSubwindow | ( | HPoint const & | in_point, | |
HPoint & | out_point | |||
) | [virtual] |
This method converts a 2D point in the View to a 2D point in the subwindow.
in_point | The 2D coordinate in the View in window space. | |
out_point | Returns the 2D coordinated in windowspace for the subwindow. |
void HSubwindow2::CopyViewLight | ( | HBaseView * | view | ) | [protected] |
This method copies the light associated with the view to the subwindow.
view | A pointer to the HBaseView object. |
virtual bool HSubwindow2::FindSubwindow | ( | HBaseView * | view, | |
HPoint | pos, | |||
bool & | pointerselected | |||
) | [virtual] |
Given a 2D position, this method finds if the subwindow is in that position.
view | A pointer to the HBaseView object. | |
pos | The 2d window position. | |
pointerselected | Returns true if window maginifier pointer is found. |
virtual HC_KEY HSubwindow2::FindSubwindowFromSegment | ( | HC_KEY | key | ) | [virtual] |
Given a segment key, this method looks under the key to find if a subwindow exists.
key | The segment key to look under. |
virtual void HSubwindow2::GetFromKey | ( | HC_KEY | key | ) | [virtual] |
This method retrieves the window characteristics from the given segment key.
key | The segment key to get the window characteristics from. |
virtual HC_KEY HSubwindow2::GetKey | ( | ) | [inline, virtual] |
virtual const char* HSubwindow2::GetName | ( | ) | [virtual] |
void HSubwindow2::GetParameters | ( | ) | [protected] |
This method retrieves the window parameters from the window segment key.
virtual void HSubwindow2::GetPosition | ( | float & | x, | |
float & | y | |||
) | [virtual] |
This method gets the subwindow's position.
x | Returns the horizontal position in window space. | |
y | Returns the vertical position in window space. |
virtual void HSubwindow2::GetSize | ( | float & | x, | |
float & | y | |||
) | [virtual] |
This method gets the subwindow size.
x | Returns the width of the subwindow in window space. | |
y | Returns the height of the subwindow in window space. |
static const char* HSubwindow2::GetStaticName | ( | ) | [static] |
virtual int HSubwindow2::GetType | ( | ) | [inline, virtual] |
This method retrieves the subwindow type.
virtual HC_KEY HSubwindow2::GetWindowKey | ( | ) | [virtual] |
virtual void HSubwindow2::Insert | ( | float | left, | |
float | right, | |||
float | bottom, | |||
float | top, | |||
char * | title = 0 , |
|||
float | minwidth = 0 , |
|||
float | minheight = 0 , |
|||
int | type = SUBWINDOW_NOTYPE , |
|||
long | appearance = SW_BORDER|SW_SIZE_FIELD|SW_MOVE_FIELD|SW_DRAG_FIELD|SW_DELETE_FIELD|SW_BACKGROUND_BOX|SW_SCROLL_FIELD | |||
) | [virtual] |
This method inserts a new HSubwindow2 object into the currently open segment.
left | The minimum horizontal coordinate of the window. | |
right | The maxium horizontal coordinate of the window. | |
bottom | The maximum vertical coordinate of the window. | |
top | The minium vertical coordinate of the window. | |
type | The subwindow type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER. | |
appearance | Bitfields describing the window characteristics which can be any combination of the following: SW_BORDER , SW_SIZE_FIELD, SW_MOVE_FIELD, SW_DRAG_FIELD, SW_DELETE_FIELD, SW_MAGNIFIER_FIELD, SW_BACKGROUND_BOX. |
virtual bool HSubwindow2::IsActive | ( | ) | [virtual] |
bool HSubwindow2::IsInCloseArea | ( | HPoint & | point | ) | [protected] |
This method determines if the mouse position is in the "close window" area.
point | The mouse position. |
bool HSubwindow2::IsInDragArea | ( | HPoint & | point | ) | [protected] |
This method determines if the mouse position is in the mouse drag area.
point | The mouse position. |
bool HSubwindow2::IsInMagnifyArea | ( | HPoint & | point | ) | [protected] |
This method determines if the mouse pointer is in magnifying slider area.
point | The position of the mouse pointer. |
bool HSubwindow2::IsInMoveArea | ( | HPoint & | point | ) | [protected] |
This method determines if the mouse pointer is in the move area.
point | The position of the mouse pointer. |
bool HSubwindow2::IsInSizeArea | ( | HPoint & | point | ) | [protected] |
This method determine if the mouse pointer is in the resizing area.
point | The position of the mouse pointer. |
virtual bool HSubwindow2::IsSubwindow | ( | HC_KEY | key | ) | [virtual] |
This method determines if the given segment is a subwindow.
key | The segment key to check if it is a subwindow. |
void HSubwindow2::Magnify | ( | HBaseView * | view | ) | [protected] |
This method performs magnification on the window.
view | A pointer to the HBaseView object. |
This method handles the object moved event by updating the subwindow position to the new object position p.
view | A pointer to the HBaseView object. | |
key | The key of the current object. | |
p | The new object position. |
virtual int HSubwindow2::ObjectScaledEvent | ( | HBaseView * | view, | |
HC_KEY | key, | |||
HPoint & | scale | |||
) | [virtual] |
This method handles the object scaled event by updating the size of the subwindow with the given scale parameter.
view | A pointer to the HBaseView object. | |
key | The key of the current object. | |
scale | The object scaling. |
virtual int HSubwindow2::OnLButtonDown | ( | HEventInfo & | hevent | ) | [virtual] |
This method handles the left button down event by determining what type of action the user is trying to take depending on the position of the mouse pointer and the characteristics of the subwindow.
hevent | An HEventInfo object containing the information about the current event. |
Reimplemented from HBaseOperator.
virtual int HSubwindow2::OnLButtonDownAndMove | ( | HEventInfo & | hevent | ) | [virtual] |
This method handles the left button down and move event by updating the window characteristics depending on the current action identified in the OnLButtonDown event. For instance, if the action was determined to be SW_ACTION_MOVE, then this event would cause the subwindow to move to the new position indicated in hevent. If the action was SW_ACTION_SIZING, then the subwindow would be resized.
hevent | An HEventInfo object containing the information about the current event. |
Reimplemented from HBaseOperator.
virtual int HSubwindow2::OnLButtonUp | ( | HEventInfo & | hevent | ) | [virtual] |
This method handles the left button up event. If the action is SW_ACTION_MOVE or SW_ACTION_MAGNIFYING, this method creates a new movement keyframe. If the action is SW_ACTION_SIZING, this method creates a new scale keyframe.
hevent | An HEventInfo object containing the information about the current event. |
Reimplemented from HBaseOperator.
virtual int HSubwindow2::PostFitWorldEvent | ( | HBaseView * | view | ) | [virtual] |
This handles the event generate by a call to FitWorld by unsetting the subwindow's visibility which was set to off during the PreFitWorldEvent and the associated attribute lock.
view | A pointer to the HBaseView object. |
virtual int HSubwindow2::PreFitWorldEvent | ( | HBaseView * | view | ) | [virtual] |
This method handles the event generated before a call to FitWorld by setting the subwindow's visiblity to off and locking the visibility attribute.
view | A pointer to the HBaseView object. |
virtual void HSubwindow2::Reset | ( | ) | [virtual] |
This method resets the window parameters so the HSubwindow2 object is disassociated from the subwindow segment key in the HOOPS database.
virtual void HSubwindow2::SetPosition | ( | float | x, | |
float | y | |||
) | [virtual] |
The method sets the subwindow position.
x | The horizontal position in window space. | |
y | The vertical position in window space. |
virtual void HSubwindow2::SetSize | ( | float | left, | |
float | right, | |||
float | bottom, | |||
float | top | |||
) | [virtual] |
This method set the size of the subwindow.
left | The left horizontal position. | |
right | The right horizontal position. | |
bottom | The bottom vertical position. | |
top | The top vertical position. |
virtual void HSubwindow2::SetSize | ( | float | deltax, | |
float | deltay | |||
) | [virtual] |
This method sets the subwindow size.
deltax | The width of the subwindow in window space. | |
deltay | The height of the subwindow in window space. |
virtual int HSubwindow2::SetupHandlesEvent | ( | HBaseView * | view, | |
HC_KEY | key, | |||
bool | complex | |||
) | [virtual] |
This method handles set up handles event. Note that this implementation does not create handles for the subwindow.
view | A pointer to the HBaseView object. | |
key | The key of the current object. | |
complex | Pass true to create complex handles. |
int HSubwindow2::m_Action [protected] |
The current window action which can be SW_ACTION_NOACTION, SW_ACTION_MOVE, SW_ACTION_SIZING, SW_ACTION_MAGNIFYING, SW_ACTION_POINTERMOVE or SW_ACTION_DRAGGING.
long HSubwindow2::m_Appearance [protected] |
The appearance bitfield which can be any combination of the following: SW_BORDER, SW_SIZE_FIELD, SW_MOVE_FIELD, SW_DRAG_FIELD, SW_DELETE_FIELD, SW_MAGNIFIER_FIELD, SW_BACKGROUND_BOX.
float HSubwindow2::m_Bottom [protected] |
The maximum vertical value of the subwindow in window coordinates.
float HSubwindow2::m_Left [protected] |
The minimum horizontal value of the subwindow in window coordinates.
HC_KEY HSubwindow2::m_OuterKey [protected] |
The top level key for the window.
HPoint HSubwindow2::m_Pointer [protected] |
The location of the window pointer.
HPoint HSubwindow2::m_ptLast [protected] |
The last mouse position.
float HSubwindow2::m_Right [protected] |
The maximum horizontal value of the subwindow in window coordinates.
float HSubwindow2::m_Top [protected] |
The minimum vertical value of the subwindow in window coordinates.
int HSubwindow2::m_Type [protected] |
The window type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER.
HC_KEY HSubwindow2::m_WindowKey [protected] |
The key to the "window" segment.