]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
Don't duplicate event sending code in wxGTK wxListBox.
[wxWidgets.git] / include / wx / window.h
index 33a7ae01b2549bac17aa85de4739ee6fa85a09a7..2260f8fe3de1fafcd85dde19aff943123c540427 100644 (file)
@@ -803,6 +803,13 @@ public:
     bool ProcessWindowEvent(wxEvent& event)
         { return GetEventHandler()->ProcessEvent(event); }
 
+        // Call GetEventHandler()->ProcessEventLocally(): this should be used
+        // instead of calling ProcessEventLocally() directly on the window
+        // itself as this wouldn't take any pushed event handlers into account
+        // correctly
+    bool ProcessWindowEventLocally(wxEvent& event)
+        { return GetEventHandler()->ProcessEventLocally(event); }
+
         // Process an event by calling GetEventHandler()->ProcessEvent() and
         // handling any exceptions thrown by event handlers. It's mostly useful
         // when processing wx events when called from C code (e.g. in GTK+
@@ -830,6 +837,7 @@ protected:
     //       The same holds for all other wxEvtHandler functions.
 
     using wxEvtHandler::ProcessEvent;
+    using wxEvtHandler::ProcessEventLocally;
 #if wxUSE_THREADS
     using wxEvtHandler::ProcessThreadEvent;
 #endif
@@ -886,16 +894,16 @@ public:
     // dialog units translations
     // -------------------------
 
-    wxPoint ConvertPixelsToDialog( const wxPoint& pt );
-    wxPoint ConvertDialogToPixels( const wxPoint& pt );
-    wxSize ConvertPixelsToDialog( const wxSize& sz )
+    wxPoint ConvertPixelsToDialog( const wxPoint& pt ) const;
+    wxPoint ConvertDialogToPixels( const wxPoint& pt ) const;
+    wxSize ConvertPixelsToDialog( const wxSize& sz ) const
     {
         wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y)));
 
         return wxSize(pt.x, pt.y);
     }
 
-    wxSize ConvertDialogToPixels( const wxSize& sz )
+    wxSize ConvertDialogToPixels( const wxSize& sz ) const
     {
         wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y)));
 
@@ -1139,7 +1147,8 @@ public:
 
     // simply return the id of the selected item or wxID_NONE without
     // generating any events
-    int GetPopupMenuSelectionFromUser(wxMenu& menu, const wxPoint& pos)
+    int GetPopupMenuSelectionFromUser(wxMenu& menu,
+                                      const wxPoint& pos = wxDefaultPosition)
         { return DoGetPopupMenuSelectionFromUser(menu, pos.x, pos.y); }
     int GetPopupMenuSelectionFromUser(wxMenu& menu, int x, int y)
         { return DoGetPopupMenuSelectionFromUser(menu, x, y); }
@@ -1411,6 +1420,12 @@ public:
     // used only by Windows
     virtual bool CanApplyThemeBorder() const { return true; }
 
+    // returns the main window of composite control; this is the window
+    // that FindFocus returns if the focus is in one of composite control's
+    // windows
+    virtual wxWindow *GetMainWindowOfCompositeControl()
+        { return (wxWindow*)this; }
+
 protected:
     // helper for the derived class Create() methods: the first overload, with
     // validator parameter, should be used for child windows while the second
@@ -1458,12 +1473,6 @@ protected:
     // to true
     void SendDestroyEvent();
 
-    // returns the main window of composite control; this is the window
-    // that FindFocus returns if the focus is in one of composite control's
-    // windows
-    virtual wxWindow *GetMainWindowOfCompositeControl()
-        { return (wxWindow*)this; }
-
     // this method should be implemented to use operating system specific code
     // to really enable/disable the widget, it will only be called when we
     // really need to enable/disable window and so no additional checks on the
@@ -1671,14 +1680,10 @@ protected:
     // of the left and the right border in the x component of the returned size
     // and the sum of the heights of the top and bottom borders in the y one
     //
-    // NB: this is new/temporary API only implemented by wxMSW and wxUniv so
-    //     far and subject to change, don't use
-    virtual wxSize DoGetBorderSize() const
-    {
-        wxFAIL_MSG( "must be overridden if called" );
-
-        return wxDefaultSize;
-    }
+    // NB: this is currently only implemented properly for wxMSW, wxGTK and
+    //     wxUniv and doesn't behave correctly in the presence of scrollbars in
+    //     the other ports
+    virtual wxSize DoGetBorderSize() const;
 
     // move the window to the specified location and resize it: this is called
     // from both DoSetSize() and DoSetClientSize() and would usually just
@@ -1741,6 +1746,8 @@ private:
     // explicitly disabled with SetAutoLayout(false)
     void InternalOnSize(wxSizeEvent& event);
 
+    // base for dialog unit conversion, i.e. average character size
+    wxSize GetDlgUnitBase() const;
 
     // the stack of windows which have captured the mouse
     static struct WXDLLIMPEXP_FWD_CORE wxWindowNext *ms_winCaptureNext;