]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/fdrepdlg.cpp
Improved handling of anchors in wxHTML: scroll to better position (patch #11406).
[wxWidgets.git] / src / generic / fdrepdlg.cpp
index 8ab4c47a9f84114e3b208ac1679162117be8e4b9..f9dd9b24d6a08598926544a2cb20ca4774106b65 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Markus Greither and Vadim Zeitlin
 // Modified by:
 // Created:     05/25/01
-// RCS-ID:
+// RCS-ID:      $Id$
 // Copyright:   (c) wxWidgets team
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // declarations
 // ============================================================================
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "genericfdrepdlg.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -41,6 +37,7 @@
     #include "wx/radiobox.h"
     #include "wx/stattext.h"
     #include "wx/textctrl.h"
+    #include "wx/settings.h"
 #endif
 
 #include "wx/fdrepdlg.h"
@@ -90,17 +87,22 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
                                         const wxString& title,
                                         int style)
 {
-    if ( !wxDialog::Create(parent, -1, title,
+    parent = GetParentForModalDialog(parent);
+
+    if ( !wxDialog::Create(parent, wxID_ANY, title,
                            wxDefaultPosition, wxDefaultSize,
-                           wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | style) )
+                           wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER
+                           | style) )
     {
-        return FALSE;
+        return false;
     }
 
     SetData(data);
 
-    wxCHECK_MSG( m_FindReplaceData, FALSE,
-                 _T("can't create dialog without data") );
+    wxCHECK_MSG( m_FindReplaceData, false,
+                 wxT("can't create dialog without data") );
+
+    bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
 
     wxBoxSizer *leftsizer = new wxBoxSizer( wxVERTICAL );
 
@@ -108,27 +110,27 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
     wxFlexGridSizer *sizer2Col = new wxFlexGridSizer(3);
     sizer2Col->AddGrowableCol(2);
 
-    sizer2Col->Add(new wxStaticText(this, -1, _("Search for:"),
-                                    wxDefaultPosition, wxSize(80, -1)),
+    sizer2Col->Add(new wxStaticText(this, wxID_ANY, _("Search for:"),
+                                    wxDefaultPosition, wxSize(80, wxDefaultCoord)),
                                     0,
                                     wxALIGN_CENTRE_VERTICAL | wxALIGN_RIGHT);
 
     sizer2Col->Add(10, 0);
 
-    m_textFind = new wxTextCtrl(this, -1, m_FindReplaceData->GetFindString());
+    m_textFind = new wxTextCtrl(this, wxID_ANY, m_FindReplaceData->GetFindString());
     sizer2Col->Add(m_textFind, 1, wxALIGN_CENTRE_VERTICAL | wxEXPAND);
 
     if ( style & wxFR_REPLACEDIALOG )
     {
-        sizer2Col->Add(new wxStaticText(this, -1, _("Replace with:"),
-                                        wxDefaultPosition, wxSize(80, -1)),
+        sizer2Col->Add(new wxStaticText(this, wxID_ANY, _("Replace with:"),
+                                        wxDefaultPosition, wxSize(80, wxDefaultCoord)),
                                         0,
                                         wxALIGN_CENTRE_VERTICAL |
                                         wxALIGN_RIGHT | wxTOP, 5);
 
-        sizer2Col->Add(10, 0);
+        sizer2Col->Add(isPda ? 2 : 10, 0);
 
-        m_textRepl = new wxTextCtrl(this, -1,
+        m_textRepl = new wxTextCtrl(this, wxID_ANY,
                                     m_FindReplaceData->GetReplaceString());
         sizer2Col->Add(m_textRepl, 1,
                        wxALIGN_CENTRE_VERTICAL | wxEXPAND | wxTOP, 5);
@@ -136,32 +138,42 @@ 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);
 
-    m_chkWord = new wxCheckBox(this, -1, _("Whole word"));
+    m_chkWord = new wxCheckBox(this, wxID_ANY, _("Whole word"));
     chksizer->Add(m_chkWord, 0, wxALL, 3);
 
-    m_chkCase = new wxCheckBox(this, -1, _("Match case"));
+    m_chkCase = new wxCheckBox(this, wxID_ANY, _("Match case"));
     chksizer->Add(m_chkCase, 0, wxALL, 3);
 
     optsizer->Add(chksizer, 0, wxALL, 10);
 
     static const wxString searchDirections[] = {_("Up"), _("Down")};
-    m_radioDir = new wxRadioBox(this, -1, _("Search direction"),
+    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, _("&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, _("&Cancel")), 0, wxALL, 3);
+    bttnsizer->Add(new wxButton(this, wxID_CANCEL), 0, wxALL, 3);
 
     if ( style & wxFR_REPLACEDIALOG )
     {
@@ -174,29 +186,29 @@ 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();
 
     if ( flags & wxFR_MATCHCASE )
-        m_chkCase->SetValue(TRUE);
+        m_chkCase->SetValue(true);
 
     if ( flags & wxFR_WHOLEWORD )
-        m_chkWord->SetValue(TRUE);
+        m_chkWord->SetValue(true);
 
     m_radioDir->SetSelection( flags & wxFR_DOWN );
 
     if ( style & wxFR_NOMATCHCASE )
-        m_chkCase->Enable(FALSE);
+        m_chkCase->Enable(false);
 
     if ( style & wxFR_NOWHOLEWORD )
-        m_chkWord->Enable(FALSE);
+        m_chkWord->Enable(false);
 
     if ( style & wxFR_NOUPDOWN)
-        m_radioDir->Enable(FALSE);
+        m_radioDir->Enable(false);
 
-    SetAutoLayout( TRUE );
+    SetAutoLayout( true );
     SetSizer( topsizer );
 
     topsizer->SetSizeHints( this );
@@ -206,7 +218,7 @@ bool wxGenericFindReplaceDialog::Create(wxWindow *parent,
 
     m_textFind->SetFocus();
 
-    return TRUE;
+    return true;
 }
 
 // ----------------------------------------------------------------------------
@@ -264,7 +276,7 @@ void wxGenericFindReplaceDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
 {
     SendEvent(wxEVT_COMMAND_FIND_CLOSE);
 
-    Show(FALSE);
+    Show(false);
 }
 
 void wxGenericFindReplaceDialog::OnUpdateFindUI(wxUpdateUIEvent &event)
@@ -279,4 +291,3 @@ void wxGenericFindReplaceDialog::OnCloseWindow(wxCloseEvent &)
 }
 
 #endif // wxUSE_FINDREPLDLG
-