#include "wx/validate.h" // for wxDefaultValidator (always include it)
+#if wxUSE_PALETTE
+ #include "wx/dcclient.h"
+ #include "wx/palette.h"
+#endif // wxUSE_PALETTE
+
#if wxUSE_ACCEL
#include "wx/accel.h"
#endif // wxUSE_ACCEL
int maxW = -1, int maxH = -1,
int incW = -1, int incH = -1 );
- int GetMinWidth() const { return m_minWidth; }
- int GetMinHeight() const { return m_minHeight; }
+ virtual int GetMinWidth() const { return m_minWidth; }
+ virtual int GetMinHeight() const { return m_minHeight; }
int GetMaxWidth() const { return m_maxWidth; }
int GetMaxHeight() const { return m_maxHeight; }
// platform-specific APIs
virtual WXWidget GetHandle() const = 0;
+#if wxUSE_PALETTE
+ // Store the palette used by DCs in wxWindow so that the dcs can share
+ // a palette. And we can respond to palette messages.
+ wxPalette GetPalette() const { return m_palette; }
+
+ // When palette is changed tell the DC to set the system palette to the
+ // new one.
+ void SetPalette(const wxPalette& pal);
+
+ // return true if we have a specific palette
+ bool HasCustomPalette() const { return m_hasCustomPalette; }
+
+ // return the first parent window with a custom palette or NULL
+ wxWindow *GetAncestorWithCustomPalette() const;
+#endif // wxUSE_PALETTE
+
protected:
// the window id - a number which uniquely identifies a window among
// its siblings unless it is -1
wxString m_windowName;
bool m_themeEnabled;
+#ifdef wxUSE_PALETTE
+ wxPalette m_palette;
+ bool m_hasCustomPalette;
+#endif // wxUSE_PALETTE
+
protected:
+
// common part of all ctors: it is not virtual because it is called from
// ctor
void InitBase();
// a toolbar that it manages itself).
virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags);
+
private:
+
// contains the last id generated by NewControlId
static int ms_lastControlId;
#define sm_classwxWindowGTK sm_classwxWindow
#endif // wxUniv
#include "wx/gtk/window.h"
+#elif defined(__WXX11__)
+ #ifdef __WXUNIVERSAL__
+ #define wxWindowNative wxWindowX11
+ #else // !wxUniv
+ #define wxWindowX11 wxWindow
+ #define sm_classwxWindowX11 sm_classwxWindow
+ #endif // wxUniv
+ #include "wx/x11/window.h"
#elif defined(__WXMGL__)
#ifdef __WXUNIVERSAL__
#define wxWindowNative wxWindowMGL