]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/fdrepdlg.cpp
check for NULL pointer in OnMeasureItem() as well as in OnDrawItem()
[wxWidgets.git] / src / generic / fdrepdlg.cpp
index bb7c60a979cbbd72cc697b68f306fe55ab4d1bb2..787cf1cb5ff7e95d401b7703476060e4e0f5b1db 100644 (file)
@@ -44,6 +44,7 @@
 #endif
 
 #include "wx/fdrepdlg.h"
+#include "wx/settings.h"
 
 // ----------------------------------------------------------------------------
 // constants
@@ -92,7 +93,11 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
 {
     if ( !wxDialog::Create(parent, wxID_ANY, title,
                            wxDefaultPosition, wxDefaultSize,
-                           wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | style) )
+                           wxDEFAULT_DIALOG_STYLE
+#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
+                           | wxRESIZE_BORDER
+#endif                           
+                           | style) )
     {
         return false;
     }
@@ -102,6 +107,8 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
     wxCHECK_MSG( m_FindReplaceData, false,
                  _T("can't create dialog without data") );
 
+    bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
+    
     wxBoxSizer *leftsizer = new wxBoxSizer( wxVERTICAL );
 
     // 3 columns because there is a spacer in the middle
@@ -126,7 +133,7 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
                                         wxALIGN_CENTRE_VERTICAL |
                                         wxALIGN_RIGHT | wxTOP, 5);
 
-        sizer2Col->Add(10, 0);
+        sizer2Col->Add(isPda ? 2 : 10, 0);
 
         m_textRepl = new wxTextCtrl(this, wxID_ANY,
                                     m_FindReplaceData->GetReplaceString());
@@ -136,7 +143,7 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
 
     leftsizer->Add(sizer2Col, 0, wxEXPAND | wxALL, 5);
 
-    wxBoxSizer *optsizer = new wxBoxSizer( wxHORIZONTAL );
+    wxBoxSizer *optsizer = new wxBoxSizer( isPda ? wxVERTICAL : wxHORIZONTAL );
 
     wxBoxSizer *chksizer = new wxBoxSizer( wxVERTICAL);
 
@@ -149,19 +156,29 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
     optsizer->Add(chksizer, 0, wxALL, 10);
 
     static const wxString searchDirections[] = {_("Up"), _("Down")};
+    int majorDimension = 0;
+    int rbStyle ;
+    if (isPda)
+        rbStyle = wxRA_SPECIFY_ROWS;
+    else
+        rbStyle = wxRA_SPECIFY_COLS;
+    
     m_radioDir = new wxRadioBox(this, wxID_ANY, _("Search direction"),
                                 wxDefaultPosition, wxDefaultSize,
-                                WXSIZEOF(searchDirections), searchDirections);
+                                WXSIZEOF(searchDirections), searchDirections,
+                                majorDimension, rbStyle);
 
-    optsizer->Add(m_radioDir, 0, wxALL, 10);
+    optsizer->Add(m_radioDir, 0, wxALL, isPda ? 5 : 10);
 
     leftsizer->Add(optsizer);
 
     wxBoxSizer *bttnsizer = new wxBoxSizer(wxVERTICAL);
 
-    bttnsizer->Add(new wxButton(this, wxID_FIND, wxSTOCK_FIND), 0, wxALL, 3);
+    wxButton* btn = new wxButton(this, wxID_FIND);
+    btn->SetDefault();
+    bttnsizer->Add(btn, 0, wxALL, 3);
 
-    bttnsizer->Add(new wxButton(this, wxID_CANCEL, wxSTOCK_CANCEL), 0, wxALL, 3);
+    bttnsizer->Add(new wxButton(this, wxID_CANCEL), 0, wxALL, 3);
 
     if ( style & wxFR_REPLACEDIALOG )
     {
@@ -174,8 +191,8 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
 
     wxBoxSizer *topsizer = new wxBoxSizer( wxHORIZONTAL );
 
-    topsizer->Add(leftsizer, 1, wxALL, 5);
-    topsizer->Add(bttnsizer, 0, wxALL, 5);
+    topsizer->Add(leftsizer, 1, wxALL, isPda ? 0 : 5);
+    topsizer->Add(bttnsizer, 0, wxALL, isPda ? 0 : 5);
 
     int flags = m_FindReplaceData->GetFlags();
 
@@ -199,10 +216,12 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
     SetAutoLayout( true );
     SetSizer( topsizer );
 
+#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
     topsizer->SetSizeHints( this );
     topsizer->Fit( this );
 
     Centre( wxBOTH );
+#endif
 
     m_textFind->SetFocus();