]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/button.cpp
Get(Class)DefaultAttributes() for wxGTK controls
[wxWidgets.git] / src / univ / button.cpp
index b06789a25d7ee39caad11d32bd2c52fe0e05a8c9..fb7914d2a157c6bfe223b7503af937a7e36e2782 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "univbutton.h"
 #endif
 
@@ -34,6 +34,7 @@
     #include "wx/dcscreen.h"
     #include "wx/button.h"
     #include "wx/validate.h"
+    #include "wx/settings.h"
 #endif
 
 #include "wx/univ/renderer.h"
@@ -81,7 +82,7 @@ bool wxButton::Create(wxWindow *parent,
         style |= wxALIGN_CENTRE_HORIZONTAL | wxALIGN_CENTRE_VERTICAL;
     }
 
-    if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) )
+    if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
         return FALSE;
 
     SetLabel(label);
@@ -112,8 +113,11 @@ wxSize wxButtonBase::GetDefaultSize()
 
         // this corresponds more or less to wxMSW standard in Win32 theme (see
         // wxWin32Renderer::AdjustSize())
-        s_sizeBtn.x = 8*dc.GetCharWidth();
-        s_sizeBtn.y = (11*dc.GetCharHeight())/10 + 2;
+//        s_sizeBtn.x = 8*dc.GetCharWidth();
+//        s_sizeBtn.y = (11*dc.GetCharHeight())/10 + 2;
+        // Otto Wyss, Patch 664399
+        s_sizeBtn.x = dc.GetCharWidth()*10 + 2;
+        s_sizeBtn.y = dc.GetCharHeight()*11/10 + 2;
     }
 
     return s_sizeBtn;
@@ -135,17 +139,23 @@ wxSize wxButton::DoGetBestClientSize() const
         width += m_bitmap.GetWidth() + 2*m_marginBmpX;
     }
 
+    // The default size should not be adjusted, so the code is moved into the 
+    // renderer. This is conceptual wrong but currently the only solution.
+    // (Otto Wyss, Patch 664399)
+
+/*
     // for compatibility with other ports, the buttons default size is never
-    // less than the standard one
-#ifndef __WXX11__
-    if ( !(GetWindowStyle() & wxBU_EXACTFIT) )
+    // less than the standard one, but not when display not PDAs.
+    if (wxSystemSettings::GetScreenType() > wxSYS_SCREEN_PDA)
     {
-        wxSize szDef = GetDefaultSize();
-        if ( width < szDef.x )
-            width = szDef.x;
+        if ( !(GetWindowStyle() & wxBU_EXACTFIT) )
+        {
+            wxSize szDef = GetDefaultSize();
+            if ( width < szDef.x )
+                width = szDef.x;
+        }
     }
-#endif
-
+*/
     return wxSize(width, height);
 }
 
@@ -385,8 +395,8 @@ bool wxStdButtonInputHandler::HandleMouseMove(wxInputConsumer *consumer,
     return wxStdInputHandler::HandleMouseMove(consumer, event);
 }
 
-bool wxStdButtonInputHandler::HandleFocus(wxInputConsumer *consumer,
-                                          const wxFocusEvent& event)
+bool wxStdButtonInputHandler::HandleFocus(wxInputConsumer * WXUNUSED(consumer),
+                                          const wxFocusEvent& WXUNUSED(event))
 {
     // buttons change appearance when they get/lose focus, so return TRUE to
     // refresh
@@ -394,7 +404,7 @@ bool wxStdButtonInputHandler::HandleFocus(wxInputConsumer *consumer,
 }
 
 bool wxStdButtonInputHandler::HandleActivation(wxInputConsumer *consumer,
-                                               bool activated)
+                                               bool WXUNUSED(activated))
 {
     // the default button changes appearance when the app is [de]activated, so
     // return TRUE to refresh