]> git.saurik.com Git - wxWidgets.git/commitdiff
Moved wxWindow::SetSizeHints implementation to wxTopLevelWindow,
authorMattia Barbon <mbarbon@cpan.org>
Sun, 30 Mar 2003 19:34:51 +0000 (19:34 +0000)
committerMattia Barbon <mbarbon@cpan.org>
Sun, 30 Mar 2003 19:34:51 +0000 (19:34 +0000)
where it belongs, verified that it works for wxDialog, too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/motif/toplevel.h
include/wx/motif/window.h
src/motif/toplevel.cpp
src/motif/window.cpp

index 61c26d82e8be8b17c06f7d5b3405662a37f8967c..359b51178b9be6625fbf5ec77ebc527e27a9f7e2 100644 (file)
@@ -56,6 +56,10 @@ public:
     virtual wxString GetTitle() const { return m_title; }
     virtual void SetTitle( const wxString& title ) { m_title = title; }
 
+    virtual void SetSizeHints( int minW, int minH,
+                               int maxW = -1, int maxH = -1,
+                               int incW = -1, int incH = -1 );
+
     WXWidget GetShellWidget() const;
 protected:
     // common part of all constructors
index 27e20b37b83d8523c44c6afa94585f8201d698f9..d0cb75935eee135ddf1a800509d76d1ea661edbd 100644 (file)
@@ -92,9 +92,6 @@ public:
     virtual void ScrollWindow( int dx, int dy,
         const wxRect* rect = (wxRect *) NULL );
     
-    virtual void SetSizeHints(int minW, int minH,
-        int maxW = -1, int maxH = -1,
-        int incW = -1, int incH = -1);
 #if wxUSE_DRAG_AND_DROP
     virtual void SetDropTarget( wxDropTarget *dropTarget );
 #endif // wxUSE_DRAG_AND_DROP
index 031a3c23dd4970059678c0156c87de83a5d9e482..9968142e4146c101ba4cef6008d759aeff63560e 100644 (file)
@@ -317,6 +317,25 @@ bool wxTopLevelWindowMotif::IsMaximized() const
     return FALSE;
 }
 
+void wxTopLevelWindowMotif::SetSizeHints( int minW, int minH,
+                                          int maxW, int maxH,
+                                          int incW, int incH )
+{
+    wxTopLevelWindowBase::SetSizeHints( minW, minH, maxW, maxH, incW, incH );
+
+    int count = 0;
+    Arg args[6];
+
+    if( minW > -1 ) { XtSetArg( args[count], XmNminWidth,  minW ); ++count; }
+    if( minH > -1 ) { XtSetArg( args[count], XmNminHeight, minH ); ++count; }
+    if( maxW > -1 ) { XtSetArg( args[count], XmNmaxWidth,  maxW ); ++count; }
+    if( maxH > -1 ) { XtSetArg( args[count], XmNmaxHeight, maxH ); ++count; }
+    if( incW > -1 ) { XtSetArg( args[count], XmNwidthInc,  incW ); ++count; }
+    if( incH > -1 ) { XtSetArg( args[count], XmNheightInc, incH ); ++count; }
+
+    XtSetValues( (Widget)GetShellWidget(), args, count ); 
+}
+
 // ---------------------------------------------------------------------------
 // Callback definition
 // ---------------------------------------------------------------------------
index 49f55797310258490af141d7c90b250258c16d50..17b3de81b2e22b1cf2aa9306ece6e576e291067d 100644 (file)
@@ -1334,7 +1334,7 @@ void wxWindow::DoSetSizeIntr(int x, int y, int width, int height,
     wxSize size(-1, -1);
     if ( width <= 0 )
     {
-        if ( sizeFlags & wxSIZE_AUTO_WIDTH && !fromCtor )
+        if ( ( sizeFlags & wxSIZE_AUTO_WIDTH ) && !fromCtor )
         {
             size = DoGetBestSize();
             width = size.x;
@@ -1347,7 +1347,7 @@ void wxWindow::DoSetSizeIntr(int x, int y, int width, int height,
 
     if ( height == -1 )
     {
-        if( sizeFlags & wxSIZE_AUTO_HEIGHT && !fromCtor )
+        if( ( sizeFlags & wxSIZE_AUTO_HEIGHT ) && !fromCtor )
         {
             if( size.x == -1 ) size = DoGetBestSize();
             height = size.y;
@@ -1438,36 +1438,6 @@ wxPoint wxWindow::GetClientAreaOrigin() const
     return wxPoint(0, 0);
 }
 
-void wxWindow::SetSizeHints(int minW, int minH, int maxW, int maxH, int incW, int incH)
-{
-    m_minWidth = minW;
-    m_minHeight = minH;
-    m_maxWidth = maxW;
-    m_maxHeight = maxH;
-
-    wxFrame *frame = wxDynamicCast(this, wxFrame);
-    if ( !frame )
-    {
-        // TODO what about dialogs?
-        return;
-    }
-
-    Widget widget = (Widget) frame->GetShellWidget();
-
-    if (minW > -1)
-        XtVaSetValues(widget, XmNminWidth, minW, NULL);
-    if (minH > -1)
-        XtVaSetValues(widget, XmNminHeight, minH, NULL);
-    if (maxW > -1)
-        XtVaSetValues(widget, XmNmaxWidth, maxW, NULL);
-    if (maxH > -1)
-        XtVaSetValues(widget, XmNmaxHeight, maxH, NULL);
-    if (incW > -1)
-        XtVaSetValues(widget, XmNwidthInc, incW, NULL);
-    if (incH > -1)
-        XtVaSetValues(widget, XmNheightInc, incH, NULL);
-}
-
 void wxWindow::DoMoveWindowIntr(int xx, int yy, int w, int h,
                                 int flags)
 {
@@ -1479,7 +1449,6 @@ void wxWindow::DoMoveWindowIntr(int xx, int yy, int w, int h,
             (Widget) m_scrolledWindow;
 
         bool managed = XtIsManaged(borderOrScrolled);
-
         if (managed)
             XtUnmanageChild (borderOrScrolled);
         XtVaSetValues(drawingArea, XmNresizePolicy, XmRESIZE_ANY, NULL);
@@ -2025,7 +1994,8 @@ WXWidget wxWindow::GetLabelWidget() const
 
 // All widgets should have this as their resize proc.
 // OnSize sent to wxWindow via client data.
-void wxWidgetResizeProc(Widget w, XConfigureEvent *WXUNUSED(event), String WXUNUSED(args)[], int *WXUNUSED(num_args))
+void wxWidgetResizeProc(Widget w, XConfigureEvent *WXUNUSED(event),
+                        String WXUNUSED(args)[], int *WXUNUSED(num_args))
 {
     wxWindow *win = wxGetWindowFromTable(w);
     if (!win)
@@ -2290,8 +2260,8 @@ static void wxCanvasInputEvent(Widget drawingArea,
             if (wxTranslateKeyEvent (event, canvas, (Widget) 0, &local_event))
             {
                 // Implement wxFrame::OnCharHook by checking ancestor.
-                wxWindow *parent = canvas->GetParent();
-                while (parent && !parent->IsKindOf(CLASSINFO(wxFrame)))
+                wxWindow *parent = canvas;
+                while (parent && !parent->IsTopLevel())
                     parent = parent->GetParent();
 
                 if (parent)
@@ -2308,9 +2278,9 @@ static void wxCanvasInputEvent(Widget drawingArea,
                 // Only process OnChar if OnKeyDown didn't swallow it
                 if (!canvas->GetEventHandler()->ProcessEvent (event))
                 {
-                  event.SetEventType(wxEVT_CHAR);
-                  canvas->GetEventHandler()->ProcessEvent (event);
-        }
+                    event.SetEventType(wxEVT_CHAR);
+                    canvas->GetEventHandler()->ProcessEvent (event);
+                }
             }
             break;
         }