]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/progdlgg.cpp
replaced all int/size_t indices in wxControlWithItems API with unsigned int (committi...
[wxWidgets.git] / src / generic / progdlgg.cpp
index 72a85e1210976df94894b44b69298874e2222cbe..c261d63be45df5eac446c180fa214d1935fdad83 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "progdlgg.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
     #include "wx/event.h"
     #include "wx/gauge.h"
     #include "wx/intl.h"
-    #include "wx/settings.h"
     #include "wx/dcclient.h"
     #include "wx/timer.h"
 #endif
 
 #include "wx/generic/progdlgg.h"
+#include "wx/settings.h"
 
 // ---------------------------------------------------------------------------
 // macros
@@ -114,6 +110,8 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
     m_hasAbortButton = (style & wxPD_CAN_ABORT) != 0;
     m_hasSkipButton = (style & wxPD_CAN_SKIP) != 0;
 
+    bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
+
 #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
     // we have to remove the "Close" button from the title bar then as it is
     // confusing to have it - it doesn't work anyhow
@@ -143,7 +141,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
 
     wxClientDC dc(this);
     dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
-    long widthText;
+    long widthText = 0;
     dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL);
 
     wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
@@ -258,13 +256,16 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
 
     SetSizerAndFit(sizer);
 
-    sizeDlg.y += 2*LAYOUT_MARGIN;
+    if (!isPda)
+    {
+        sizeDlg.y += 2*LAYOUT_MARGIN;
 
-    // try to make the dialog not square but rectangular of reasonabel width
-    sizeDlg.x = (wxCoord)wxMax(widthText, 4*sizeDlg.y/3);
-    sizeDlg.x *= 3;
-    sizeDlg.x /= 2;
-    SetClientSize(sizeDlg);
+        // try to make the dialog not square but rectangular of reasonable width
+        sizeDlg.x = (wxCoord)wxMax(widthText, 4*sizeDlg.y/3);
+        sizeDlg.x *= 3;
+        sizeDlg.x /= 2;
+        SetClientSize(sizeDlg);
+    }
 
     Centre(wxCENTER_FRAME | wxBOTH);
 
@@ -422,7 +423,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip)
             EnableCloseButton();
 #endif // __WXMSW__
 
-            if ( !newmsg.empty() )
+            if ( newmsg.empty() )
             {
                 // also provide the finishing message if the application didn't
                 m_msg->SetLabel(_("Done."));