#include "wx/list.h"
#include "wx/region.h"
#include "wx/accel.h"
+#include "wx/intl.h"
#define wxKEY_SHIFT 1
#define wxKEY_CTRL 2
class WXDLLEXPORT wxColourMap;
class WXDLLEXPORT wxFont;
class WXDLLEXPORT wxMenu;
-class WXDLLEXPORT wxRectangle;
+class WXDLLEXPORT wxRect;
class WXDLLEXPORT wxBitmap;
class WXDLLEXPORT wxSizer;
class WXDLLEXPORT wxList;
// Accept files for dragging
virtual void DragAcceptFiles(bool accept);
+ // tooltips
+ // create a tooltip with this text
+ void SetToolTip(const wxString& tip);
+
+ // TODO
+#if wxUSE_TOOLTIPS
+ // pointer may be NULL to remove the tooltip
+ void SetToolTip(wxToolTip *tooltip);
+ // get the current tooltip (may return NULL if none)
+ wxToolTip* GetToolTip() const { return m_tooltip; }
+#endif
+
// Update region access
virtual wxRegion& GetUpdateRegion() const;
virtual bool IsExposed(int x, int y, int w, int h) const;
virtual bool PopupMenu(wxMenu *menu, int x, int y);
// Send the window a refresh event
- virtual void Refresh(bool eraseBack = TRUE, const wxRectangle *rect = NULL);
+ virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL);
// New functions that will replace the above.
virtual void SetScrollbar(int orient, int pos, int thumbVisible,
int range, bool refresh = TRUE);
+ // Helper functions for Motif
+ void CreateScrollbar(int orientation);
+ void DestroyScrollbar(int orientation);
+
virtual void SetScrollPos(int orient, int pos, bool refresh = TRUE);
virtual int GetScrollPos(int orient) const;
virtual int GetScrollRange(int orient) const;
virtual int GetScrollThumb(int orient) const;
- virtual void ScrollWindow(int dx, int dy, const wxRectangle *rect = NULL);
+ virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
// Caret manipulation
virtual void CreateCaret(int w, int h);
inline wxWindow *GetParent() const;
inline void SetParent(wxWindow *p) ;
inline wxWindow *GetGrandParent() const;
- inline wxList *GetChildren() const;
+ inline wxList& GetChildren() const;
// Reparents this window to have the new parent.
virtual bool Reparent(wxWindow* parent);
// Set/get the window's font
virtual void SetFont(const wxFont& f);
- inline virtual wxFont *GetFont() const;
+ inline virtual wxFont& GetFont() const;
// Set/get the window's validator
void SetValidator(const wxValidator& validator);
void OnEraseBackground(wxEraseEvent& event);
void OnChar(wxKeyEvent& event);
+ void OnKeyDown(wxKeyEvent& event);
+ void OnKeyUp(wxKeyEvent& event);
void OnPaint(wxPaintEvent& event);
void OnIdle(wxIdleEvent& event);
public:
/// Motif-specific
+ bool m_needsRefresh; // Do we need to repaint the backing store?
bool m_canAddEventHandler;
bool m_button1Pressed;
bool m_button2Pressed;
// For double-click detection
long m_lastTS; // last timestamp
int m_lastButton; // last pressed button
- wxList m_updateRects; // List of wxRectangles representing damaged region
+ wxList m_updateRects; // List of wxRects representing damaged region
bool m_isShown;
protected:
WXWidget m_mainWidget;
inline wxWindow *wxWindow::GetParent() const { return m_windowParent; }
inline void wxWindow::SetParent(wxWindow *p) { m_windowParent = p; }
inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : (wxWindow*) NULL); }
-inline wxList *wxWindow::GetChildren() const { return m_children; }
-inline wxFont *wxWindow::GetFont() const { return (wxFont *) & m_windowFont; }
+inline wxList& wxWindow::GetChildren() const { return (wxList&) * m_children; }
+inline wxFont& wxWindow::GetFont() const { return (wxFont&) m_windowFont; }
inline wxString wxWindow::GetName() const { return m_windowName; }
inline void wxWindow::SetName(const wxString& name) { m_windowName = name; }
inline long wxWindow::GetWindowStyleFlag() const { return m_windowStyle; }
WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows;
+// A little class to switch off size optimization while an instance of the object
+// exists
+class WXDLLEXPORT wxNoOptimize: public wxObject
+{
+public:
+ wxNoOptimize();
+ ~wxNoOptimize();
+
+ static bool CanOptimize();
+
+protected:
+ static int m_count;
+};
+
#endif
// _WX_WINDOW_H_