]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
reverted revision 1.6 -- Mattia obviously knows better than I do...
[wxWidgets.git] / include / wx / window.h
index 905327ad1ac2562ed5e82822ae3490c668bd0ae7..6d6edb28f37291045bacb55eb5b3b4b98b6c3b2d 100644 (file)
 
 #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
@@ -403,6 +408,13 @@ public:
     void PushEventHandler( wxEvtHandler *handler );
     wxEvtHandler *PopEventHandler( bool deleteHandler = FALSE );
 
+        // find the given handler in the event handler chain and remove (but
+        // not delete) it from the event handler chain, return TRUE if it was
+        // found and FALSE otherwise (this also results in an assert failure so
+        // this function should only be called when the handler is supposed to
+        // be there)
+    bool RemoveEventHandler(wxEvtHandler *handler);
+
     // validators
     // ----------
 
@@ -754,6 +766,22 @@ public:
         // 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
@@ -837,7 +865,13 @@ protected:
     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();
@@ -928,7 +962,13 @@ protected:
     // a toolbar that it manages itself).
     virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags);
 
+#ifdef __WXPM__
+    // extra OS/2 layout processing
+    virtual void OS2Layout(int width, int height) { };
+#endif
+
 private:
+
     // contains the last id generated by NewControlId
     static int ms_lastControlId;
 
@@ -963,6 +1003,14 @@ private:
         #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