18 #ifndef _H_HUtilitySubwindow_H
19 #define _H_HUtilitySubwindow_H
29 #include "HEventManager.h"
32 #define SUBWINDOW_NOTYPE 0
33 #define SUBWINDOW_MAGNIFIER 1
34 #define SUBWINDOW_SNAPSHOT 2
35 #define SUBWINDOW_POINTER 3
38 #define SW_ACTION_NOACTION 0
39 #define SW_ACTION_MOVE 1
40 #define SW_ACTION_SIZING 2
41 #define SW_ACTION_MAGNIFYING 3
42 #define SW_ACTION_POINTERMOVE 4
43 #define SW_ACTION_DRAGGING 5
46 #define SW_SIZE_FIELD 2
47 #define SW_MOVE_FIELD 4
48 #define SW_DRAG_FIELD 8
49 #define SW_DELETE_FIELD 16
50 #define SW_MAGNIFIER_FIELD 32
51 #define SW_BACKGROUND_BOX 64
58 class MVO_API
HSubwindow :
public HObject,
public HBaseOperator,
public HUpdateListener,
public HFitWorldListener,
public HObjectManipulationListener
93 virtual void Insert(
float left,
float right,
float bottom,
float top,
int type =
SUBWINDOW_NOTYPE,
long appearance =
100 virtual void Reset();
106 virtual bool IsActive();
112 virtual void GetFromKey(HC_KEY key);
118 virtual bool IsSubwindow(HC_KEY key);
127 virtual bool FindSubwindow(
HBaseView *view,
HPoint pos,
bool &pointerselected);
134 virtual HC_KEY FindSubwindowFromSegment(HC_KEY key);
141 virtual void GetPosition(
float &x,
float &y);
148 virtual void SetPosition(
float x,
float y);
154 virtual HC_KEY GetWindowKey();
161 virtual void GetSize(
float &x,
float &y);
168 virtual void SetSize(
float deltax,
float deltay);
175 virtual void MakeCameraSnapshot(
HBaseView *view);
182 virtual void ConvertFromSubwindowToView(
HPoint &in_point,
HPoint &out_point);
189 virtual void ConvertFromViewToSubwindow(
HPoint const & in_point,
HPoint & out_point);
205 virtual void GetPointerPosition(
float &x,
float &y);
212 virtual void SetPointerPosition(
float x,
float y);
221 virtual void SetSize(
float left,
float right,
float bottom,
float top);
232 virtual void ComputeCoordinates(
HBaseView *view,
const char *in_system,
HPoint &from,
const char *out_system,
HPoint &to);
247 virtual void SyncViewToWindow(
HBaseView *view);
264 virtual const char *
GetName();
268 static const char * GetStaticName();
291 virtual int CameraChangedEvent(
HBaseView *view);
298 virtual int PreFitWorldEvent(
HBaseView *view);
306 virtual int PostFitWorldEvent(
HBaseView *view);
326 virtual int SetupHandlesEvent(
HBaseView *view, HC_KEY key,
bool complex);
343 virtual int ObjectScaledEvent(
HBaseView *view, HC_KEY key,
HPoint &scale);
350 void GetParameters();
356 bool IsInSizeArea(
HPoint &point);
362 bool IsInMagnifyArea(
HPoint &point);
372 void BuildMagnifyController(
float pos);
396 bool IsInCloseArea(
HPoint &point);
402 bool IsInDragArea(
HPoint &point);
413 bool IsInMoveArea(
HPoint &point);
419 void ChangeMagnification(
HBaseView *view,
float magnification);
428 void MakeScaleKeyframe();
virtual int OnLButtonDownAndMove(HEventInfo &hevent)
virtual const char * GetName()
The HObject is the base class for generic MVO objects.
Definition: HEventManager.h:121
long m_Appearance
Definition: HUtilitySubwindow.h:442
virtual int OnLButtonUp(HEventInfo &hevent)
The HSubwindow class encapsulates interactive floating subwindows.
Definition: HUtilitySubwindow.h:63
#define SW_BACKGROUND_BOX
Subwindow has a shadow.
Definition: HUtilitySubwindow.h:51
HC_KEY m_WindowKey
Definition: HUtilitySubwindow.h:431
#define SW_BORDER
Subwindow has borders.
Definition: HUtilitySubwindow.h:45
#define SW_SIZE_FIELD
Subwindow has a resize area.
Definition: HUtilitySubwindow.h:46
virtual int GetType()
Definition: HUtilitySubwindow.h:253
#define SW_MOVE_FIELD
Subwindow can be moved.
Definition: HUtilitySubwindow.h:47
float m_Top
Definition: HUtilitySubwindow.h:437
The HBaseOperator class serves as a base for classes which handle user input and operate on the scene...
Definition: HBaseOperator.h:65
#define SUBWINDOW_NOTYPE
The basic window type.
Definition: HUtilitySubwindow.h:32
float m_OldMagnification
Definition: HUtilitySubwindow.h:441
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:126
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:337
int m_Action
Definition: HUtilitySubwindow.h:444
float m_Right
Definition: HUtilitySubwindow.h:435
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:214
virtual HC_KEY GetKey()
Definition: HUtilitySubwindow.h:259
#define SW_DELETE_FIELD
Subwindow has a close button.
Definition: HUtilitySubwindow.h:49
virtual int OnLButtonDown(HEventInfo &hevent)
float m_Bottom
Definition: HUtilitySubwindow.h:436
HC_KEY m_OuterKey
Definition: HUtilitySubwindow.h:430
float m_Magnification
Definition: HUtilitySubwindow.h:440
HPoint m_ptLast
Definition: HUtilitySubwindow.h:445
#define SW_MAGNIFIER_FIELD
Subwindow has a magnifier slider.
Definition: HUtilitySubwindow.h:50
float m_Left
Definition: HUtilitySubwindow.h:434
#define SW_DRAG_FIELD
Subwindow allows the scene to be moved inside the window.
Definition: HUtilitySubwindow.h:48
int m_Type
Definition: HUtilitySubwindow.h:439
HPoint m_Pointer
Definition: HUtilitySubwindow.h:443