1 /***********************************************************************/
2 /* Open Visualization Data Explorer                                    */
3 /* (C) Copyright IBM Corp. 1989,1999                                   */
4 /* ALL RIGHTS RESERVED                                                 */
5 /* This code licensed under the                                        */
6 /*    "IBM PUBLIC LICENSE - Open Visualization Data Explorer"          */
7 /***********************************************************************/
8 
9 #include <dxconfig.h>
10 #include "../base/defines.h"
11 
12 
13 
14 
15 #ifndef _VPERoot_h
16 #define _VPERoot_h
17 
18 #include "EditorWorkSpace.h"
19 #include "WorkSpaceRoot.h"
20 
21 extern "C" Boolean VPERoot_MoveWindowWP (XtPointer);
22 extern "C" Boolean VPERoot_ShowWindowWP (XtPointer);
23 
24 //
25 // Class name definition:
26 //
27 #define ClassVPERoot	"VPERoot"
28 
29 class PageSelector;
30 class UndoGrid;
31 
32 //
33 // EditorWorkSpace class definition:
34 //
35 class VPERoot : public EditorWorkSpace, public WorkSpaceRoot
36 {
37   private:
38 
39     PageSelector* selector;
40     XtWorkProcId  show_wpid;
41     XtWorkProcId  move_wpid;
42     EditorWorkSpace* to_be_shown;
43 
44 
45   protected:
46 
47     virtual WorkSpace *newPage (int width, int height);
48 
49     //
50     // D E F I N E    R O O T    P A G E    B E H A V I O R
51     // D E F I N E    R O O T    P A G E    B E H A V I O R
52     // (pure virtual from WorkSpaceRoot)
53     //
getObjectXYSize(int * w,int * h)54     virtual void getObjectXYSize (int* w, int* h) {
55 	this->EditorWorkSpace::getXYSize(w,h);
56     }
57 
getPlacementCount()58     virtual int getPlacementCount() {
59 	return this->EditorWorkSpace::getPlacementCount();
60     }
61 
setPlacementCount(int count)62     virtual void setPlacementCount(int count) {
63 	this->EditorWorkSpace::setPlacementCount(count);
64     }
65 
getLineDrawingEnabled()66     virtual boolean getLineDrawingEnabled() {
67 	return this->EditorWorkSpace::getLineDrawing();
68     }
69 
getOverlapEnabled()70     virtual boolean getOverlapEnabled() {
71 	return this->EditorWorkSpace::getOverlap();
72     }
73 
getWorkSpaceWidget()74     virtual Widget getWorkSpaceWidget() {
75 	return this->EditorWorkSpace::getRootWidget();
76     }
77 
setDimensions(int width,int height)78     virtual void setDimensions(int width, int height) {
79 	this->EditorWorkSpace::setWidthHeight (width, height);
80     }
81 
getWorkSpaceInfo()82     virtual WorkSpaceInfo* getWorkSpaceInfo() {
83 	return this->EditorWorkSpace::getInfo();
84     }
85 
86     friend Boolean VPERoot_MoveWindowWP (XtPointer);
87     friend Boolean VPERoot_ShowWindowWP (XtPointer);
88     friend class UndoGrid;
89 
90   public:
91 
92     //
93     // Constructor:
94     //
VPERoot(const char * name,Widget parent,WorkSpaceInfo * info,EditorWindow * editor,PageSelector * selector)95     VPERoot(const char *name, Widget parent,
96 	WorkSpaceInfo *info, EditorWindow *editor, PageSelector* selector) :
97 	EditorWorkSpace(name, parent, info, editor), WorkSpaceRoot() {
98 	this->selector = selector;
99 	this->move_wpid = NUL(XtWorkProcId);
100 	this->show_wpid = NUL(XtWorkProcId);
101 	this->to_be_shown = NUL(EditorWorkSpace*);
102     }
103 
104     //
105     // Destructor:
106     //
107     ~VPERoot();
108 
109     //
110     // D E F I N E    R O O T    P A G E    B E H A V I O R
111     // D E F I N E    R O O T    P A G E    B E H A V I O R
112     //
setCursor(int cursorType)113     virtual void setCursor(int cursorType) {
114 	this->EditorWorkSpace::setCursor(cursorType);
115 	this->WorkSpaceRoot::setPageCursor(cursorType);
116     }
117 
resetCursor()118     virtual void resetCursor() {
119 	this->EditorWorkSpace::resetCursor();
120 	this->WorkSpaceRoot::resetPageCursor();
121     }
122 
resize()123     virtual void resize() {
124 	this->WorkSpaceRoot::resizeWorkSpace();
125     }
126 
127     virtual void showWorkSpace (int);
showWorkSpace(WorkSpace * ws)128     virtual void showWorkSpace (WorkSpace* ws) {
129 	this->WorkSpaceRoot::showWorkSpace(ws);
130     }
131 
132     virtual void installInfo (WorkSpaceInfo* info);
133 
beginManyPlacements()134     virtual void beginManyPlacements () {
135 	this->EditorWorkSpace::beginManyPlacements();
136 	this->WorkSpaceRoot::beginManyPagePlacements();
137     }
138 
endManyPlacements()139     virtual void endManyPlacements () {
140 	this->EditorWorkSpace::endManyPlacements();
141 	this->WorkSpaceRoot::endManyPagePlacements();
142     }
143 
144     //
145     // Returns a pointer to the class name.
146     //
getClassName()147     const char* getClassName() { return ClassVPERoot; }
148     virtual boolean isA (Symbol classname);
149     boolean isA (const char* classname);
150 };
151 
152 
153 #endif // _VPERoot_h
154