1 /* 2 Copyright (C) 1996 Scott W. Sadler 3 All rights reserved. 4 */ 5 6 /* 7 XsMDICanvas.h 8 9 History 10 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) 11 Created 12 */ 13 14 #ifndef XSMDICANVAS_H 15 #define XSMDICANVAS_H 16 17 // Includes 18 19 #include "XsComponent.h" 20 21 // Forward declarations 22 23 class XsMDIWindow; 24 25 // XsMDICanvas class 26 27 class XsMDICanvas : public XsComponent { 28 29 public: 30 31 // Constructor/Destructor 32 33 XsMDICanvas (const char *name, Widget parent); 34 virtual ~XsMDICanvas ( ); 35 36 // MDI Window manipulation 37 38 virtual void add (XsMDIWindow *win); // Add an MDI window 39 virtual void remove (XsMDIWindow *win); // Remove an MDI window 40 void removeAll ( ); // Remove all MDI windows 41 42 // Utilities 43 44 int numWindows ( ) const; // Number of MDI windows GetDrawingArea()45 Widget GetDrawingArea() const { return _drawArea; } 46 47 // Component methods 48 49 virtual void show ( ); 50 51 // Class name 52 53 virtual const char *className ( ) const; 54 55 protected: 56 57 // Component life-cycle 58 59 virtual void _componentDestroyed ( ); 60 61 // Geometry management 62 63 virtual void _placeWindow (XsMDIWindow *win); 64 65 // Canvas resize handler 66 67 virtual void _resize (XtPointer); 68 69 // Implementation 70 71 Widget _clipWin; 72 Widget _drawArea; 73 74 XsMDIWindow **_list; 75 int _num; 76 int _max; 77 int _place; 78 79 private: 80 81 // Callbacks 82 83 static void _clipResizeCallback (Widget, XtPointer, XtPointer); 84 static void _canvasResizeCallback (Widget, XtPointer, XtPointer); 85 86 // Resources 87 88 static String _resources[]; 89 }; 90 91 // Inline member functions 92 numWindows()93inline XsMDICanvas::numWindows ( ) const 94 { 95 return (_num); 96 } 97 98 #endif 99