- // Motif-specific
-
- // CanvasXXXSiize functions
- void CanvasGetSize(int* width, int* height) const; // If have drawing area
- void CanvasGetClientSize(int *width, int *height) const;
- void CanvasGetPosition(int *x, int *y) const; // If have drawing area
- void CanvasSetClientSize(int width, int size);
- void CanvasSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO);
-
- void SetMainWindow(WXWindow w) { m_mainWidget = w; }
-
- bool CanAddEventHandler() const { return m_canAddEventHandler; }
- void SetCanAddEventHandler(bool flag) { m_canAddEventHandler = flag; }
-
-public:
- WXPixmap GetBackingPixmap() const { return m_backingPixmap; }
- void SetBackingPixmap(WXPixmap pixmap) { m_backingPixmap = pixmap; }
- int GetPixmapWidth() const { return m_pixmapWidth; }
- int GetPixmapHeight() const { return m_pixmapHeight; }
- void SetPixmapWidth(int w) { m_pixmapWidth = w; }
- void SetPixmapHeight(int h) { m_pixmapHeight = h; }
-
- // Change properties
- virtual void ChangeFont(bool keepOriginalSize = TRUE); // Change to the current font (often overridden)
-
- // Change background and foreground colour using current background colour
- // setting (Motif generates foreground based on background)
- virtual void ChangeBackgroundColour();
- // Change foreground colour using current foreground colour setting
- virtual void ChangeForegroundColour();
-
-protected:
- // Adds the widget to the hash table and adds event handlers.
- bool AttachWindow(wxWindow* parent, WXWindow mainWidget,
- int x, int y, int width, int height);
- bool DetachWindow(WXWindow widget);
-
- // How to implement accelerators. If we find a key event, translate to
- // wxWindows wxKeyEvent form. Find a widget for the window. Now find a
- // wxWindow for the widget. If there isn't one, go up the widget hierarchy
- // trying to find one. Once one is found, call ProcessAccelerator for the
- // window. If it returns TRUE (processed the event), skip the X event,
- // otherwise carry on up the wxWindows window hierarchy calling
- // ProcessAccelerator. If all return FALSE, process the X event as normal.
- // Eventually we can implement OnCharHook the same way, but concentrate on
- // accelerators for now. ProcessAccelerator must look at the current
- // accelerator table, and try to find what menu id or window (beneath it)
- // has this ID. Then construct an appropriate command
- // event and send it.
-public:
- virtual bool ProcessAccelerator(wxKeyEvent& event);
-
-protected:
- // scrolling stuff
- // ---------------
-
- // create/destroy window scrollbars
- void CreateScrollbar(wxOrientation orientation);
- void DestroyScrollbar(wxOrientation orientation);
-
- // get either hor or vert scrollbar widget
- WXWindow GetScrollbar(wxOrientation orient) const
- { return orient == wxHORIZONTAL ? m_hScrollBar : m_vScrollBar; }
-
- // set the scroll pos
- void SetInternalScrollPos(wxOrientation orient, int pos)
- {
- if ( orient == wxHORIZONTAL )
- m_scrollPosX = pos;
- else
- m_scrollPosY = pos;
- }
-
- // Motif-specific flags
- // --------------------
-
- bool m_needsRefresh:1; // repaint backing store?
- bool m_canAddEventHandler:1; // ???
- bool m_button1Pressed:1;
- bool m_button2Pressed:1;
- bool m_button3Pressed:1;
-