]> git.saurik.com Git - wxWidgets.git/commitdiff
Rewrite GTK section of wxStdDialogButtonSizer using wxSizerFlags.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 30 Aug 2010 21:48:06 +0000 (21:48 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 30 Aug 2010 21:48:06 +0000 (21:48 +0000)
Using wxSizerFlags makes the code shorter and more understandable but
otherwise there are no real changes in behaviour except for a minor fix to one
of the border which was wrong before.

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

src/common/sizer.cpp

index 518ccce91fa034e619f9c5c48cbf0572005c3d24..fdf018eae760f3132d2a1deb0c94b79db8ad31e2 100644 (file)
@@ -2567,46 +2567,51 @@ void wxStdDialogButtonSizer::Realize()
         // Extra space around and at the right
         Add(12, 40);
 #elif defined(__WXGTK20__)
-        Add(0, 0, 0, wxLEFT, 9);
+        // http://library.gnome.org/devel/hig-book/stable/windows-alert.html.en
+        // describes the margins and the buttons order but basically it is
+        //
+        //      [Help]                  [Alternative] [Cancel] [Affirmative]
+        //
+        // in general case but, somewhat confusingly, the native message box
+        // uses "No Yes Cancel" with these particular buttons so do we as well.
+
+        // Flags ensuring that margins between the buttons are 6 pixels.
+        const wxSizerFlags
+            flagsBtn = wxSizerFlags().Centre().Border(wxLEFT | wxRIGHT, 3);
+
+        // Margin around the entire sizer button should be 12.
+        AddSpacer(9);
+
         if (m_buttonHelp)
-            Add((wxWindow*)m_buttonHelp, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, 3);
+            Add(m_buttonHelp, flagsBtn);
 
         // extra whitespace between help and cancel/ok buttons
-        Add(0, 0, 1, wxEXPAND, 0);
+        AddStretchSpacer();
 
-        if (m_buttonNegative){
-            Add((wxWindow*)m_buttonNegative, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, 3);
-        }
+        if (m_buttonNegative)
+            Add(m_buttonNegative, flagsBtn);
 
         if (m_buttonApply)
         {
-            // according to HIG, in explicit apply windows the order is:
-            // [ Help                     Apply   Cancel   OK ]
-
-            Add((wxWindow*)m_buttonApply,
-                0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, 3);
+            Add(m_buttonApply, flagsBtn);
 
             if (m_buttonCancel)
-                Add((wxWindow*)m_buttonCancel,
-                    0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, 3);
+                Add(m_buttonCancel, flagsBtn);
 
             if (m_buttonAffirmative)
-                Add((wxWindow*)m_buttonAffirmative,
-                     0, wxALIGN_CENTRE | wxLEFT, 6);
+                Add(m_buttonAffirmative, flagsBtn);
         }
-        else
+        else // No [Apply]
         {
-            // without an Apply button, have the buttons representing
-            // affirmative and negative close to each other.
-
             if (m_buttonAffirmative)
-                Add((wxWindow*)m_buttonAffirmative,
-                    0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, 3);
+                Add(m_buttonAffirmative, flagsBtn);
 
             if (m_buttonCancel)
-                Add((wxWindow*)m_buttonCancel, 0, wxALIGN_CENTRE | wxLEFT, 6);
+                Add(m_buttonCancel, flagsBtn);
         }
 
+        // Ensure that the right margin is 12 as well.
+        AddSpacer(9);
 #elif defined(__WXMSW__)
         // Windows