14 #ifndef _H_HUtilitySubwindow_H 15 #define _H_HUtilitySubwindow_H 25 #include "HEventManager.h" 28 #define SUBWINDOW_NOTYPE 0 29 #define SUBWINDOW_MAGNIFIER 1 30 #define SUBWINDOW_SNAPSHOT 2 31 #define SUBWINDOW_POINTER 3 34 #define SW_ACTION_NOACTION 0 35 #define SW_ACTION_MOVE 1 36 #define SW_ACTION_SIZING 2 37 #define SW_ACTION_MAGNIFYING 3 38 #define SW_ACTION_POINTERMOVE 4 39 #define SW_ACTION_DRAGGING 5 42 #define SW_SIZE_FIELD 2 43 #define SW_MOVE_FIELD 4 44 #define SW_DRAG_FIELD 8 45 #define SW_DELETE_FIELD 16 46 #define SW_MAGNIFIER_FIELD 32 47 #define SW_BACKGROUND_BOX 64 54 class MVO_API
HSubwindow :
public HObject,
public HBaseOperator,
public HUpdateListener,
public HFitWorldListener,
public HObjectManipulationListener
89 virtual void Insert(
float left,
float right,
float bottom,
float top,
int type =
SUBWINDOW_NOTYPE,
long appearance =
102 virtual bool IsActive();
108 virtual void GetFromKey(HC_KEY key);
114 virtual bool IsSubwindow(HC_KEY key);
123 virtual bool FindSubwindow(
HBaseView *view,
HPoint pos,
bool &pointerselected);
130 virtual HC_KEY FindSubwindowFromSegment(HC_KEY key);
137 virtual void GetPosition(
float &x,
float &y);
144 virtual void SetPosition(
float x,
float y);
150 virtual HC_KEY GetWindowKey();
157 virtual void GetSize(
float &x,
float &y);
164 virtual void SetSize(
float deltax,
float deltay);
171 virtual void MakeCameraSnapshot(
HBaseView *view);
178 virtual void ConvertFromSubwindowToView(
HPoint &in_point,
HPoint &out_point);
185 virtual void ConvertFromViewToSubwindow(
HPoint const & in_point,
HPoint & out_point);
201 virtual void GetPointerPosition(
float &x,
float &y);
208 virtual void SetPointerPosition(
float x,
float y);
217 virtual void SetSize(
float left,
float right,
float bottom,
float top);
228 virtual void ComputeCoordinates(
HBaseView *view,
const char *in_system,
HPoint &from,
const char *out_system,
HPoint &to);
243 virtual void SyncViewToWindow(
HBaseView *view);
255 virtual HC_KEY
GetKey() {
return m_OuterKey; }
260 virtual const char *
GetName();
264 static const char * GetStaticName();
287 virtual int CameraChangedEvent(
HBaseView *view);
294 virtual int PreFitWorldEvent(
HBaseView *view);
302 virtual int PostFitWorldEvent(
HBaseView *view);
322 virtual int SetupHandlesEvent(
HBaseView *view, HC_KEY key,
bool complex);
339 virtual int ObjectScaledEvent(
HBaseView *view, HC_KEY key,
HPoint &scale);
346 void GetParameters();
352 bool IsInSizeArea(
HPoint &point);
358 bool IsInMagnifyArea(
HPoint &point);
368 void BuildMagnifyController(
float pos);
392 bool IsInCloseArea(
HPoint &point);
398 bool IsInDragArea(
HPoint &point);
409 bool IsInMoveArea(
HPoint &point);
415 void ChangeMagnification(
HBaseView *view,
float magnification);
424 void MakeScaleKeyframe();
virtual int OnLButtonDownAndMove(HEventInfo &hevent)
virtual const char * GetName()
The HObject is the base class for generic MVO objects.
Definition: HEventManager.h:115
long m_Appearance
Definition: HUtilitySubwindow.h:438
virtual int OnLButtonUp(HEventInfo &hevent)
The HSubwindow class encapsulates interactive floating subwindows.
Definition: HUtilitySubwindow.h:59
#define SW_BACKGROUND_BOX
Subwindow has a shadow.
Definition: HUtilitySubwindow.h:47
HC_KEY m_WindowKey
Definition: HUtilitySubwindow.h:427
#define SW_BORDER
Subwindow has borders.
Definition: HUtilitySubwindow.h:41
#define SW_SIZE_FIELD
Subwindow has a resize area.
Definition: HUtilitySubwindow.h:42
virtual int GetType()
Definition: HUtilitySubwindow.h:249
#define SW_MOVE_FIELD
Subwindow can be moved.
Definition: HUtilitySubwindow.h:43
float m_Top
Definition: HUtilitySubwindow.h:433
The HBaseOperator class serves as a base for classes which handle user input and operate on the scene...
Definition: HBaseOperator.h:60
#define SUBWINDOW_NOTYPE
The basic window type.
Definition: HUtilitySubwindow.h:28
float m_OldMagnification
Definition: HUtilitySubwindow.h:437
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
int m_Action
Definition: HUtilitySubwindow.h:440
float m_Right
Definition: HUtilitySubwindow.h:431
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:207
virtual HC_KEY GetKey()
Definition: HUtilitySubwindow.h:255
#define SW_DELETE_FIELD
Subwindow has a close button.
Definition: HUtilitySubwindow.h:45
virtual int OnLButtonDown(HEventInfo &hevent)
float m_Bottom
Definition: HUtilitySubwindow.h:432
HC_KEY m_OuterKey
Definition: HUtilitySubwindow.h:426
float m_Magnification
Definition: HUtilitySubwindow.h:436
HPoint m_ptLast
Definition: HUtilitySubwindow.h:441
#define SW_MAGNIFIER_FIELD
Subwindow has a magnifier slider.
Definition: HUtilitySubwindow.h:46
float m_Left
Definition: HUtilitySubwindow.h:430
#define SW_DRAG_FIELD
Subwindow allows the scene to be moved inside the window.
Definition: HUtilitySubwindow.h:44
int m_Type
Definition: HUtilitySubwindow.h:435
HPoint m_Pointer
Definition: HUtilitySubwindow.h:439