X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14f355c2b5c71fc7c3d680aea366582d2ac60f7b..c061373dc5ba0ed5e3670af0698154302f1fec2c:/src/generic/textdlgg.cpp?ds=inline diff --git a/src/generic/textdlgg.cpp b/src/generic/textdlgg.cpp index 6e0ab1e48d..276e745fb6 100644 --- a/src/generic/textdlgg.cpp +++ b/src/generic/textdlgg.cpp @@ -52,6 +52,20 @@ static const int wxID_TEXT = 3000; +// --------------------------------------------------------------------------- +// macros +// --------------------------------------------------------------------------- + +/* Macro for avoiding #ifdefs when value have to be different depending on size of + device we display on - take it from something like wxDesktopPolicy in the future + */ + +#if defined(__SMARTPHONE__) + #define wxLARGESMALL(large,small) small +#else + #define wxLARGESMALL(large,small) large +#endif + // ============================================================================ // implementation // ============================================================================ @@ -72,7 +86,7 @@ wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, const wxString& value, long style, const wxPoint& pos) - : wxDialog(parent, -1, caption, pos, wxDefaultSize, + : wxDialog(parent, wxID_ANY, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL), m_value(value) { @@ -84,13 +98,13 @@ wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); // 1) text message - topsizer->Add( CreateTextSizer( message ), 0, wxALL, 10 ); + topsizer->Add( CreateTextSizer( message ), 0, wxALL, wxLARGESMALL(10,0) ); // 2) text ctrl m_textctrl = new wxTextCtrl(this, wxID_TEXT, value, - wxDefaultPosition, wxSize(300, -1), + wxDefaultPosition, wxSize(300, wxDefaultCoord), style & ~wxTextEntryDialogStyle); - topsizer->Add( m_textctrl, 1, wxEXPAND | wxLEFT|wxRIGHT, 15 ); + topsizer->Add( m_textctrl, 1, wxEXPAND | wxLEFT|wxRIGHT, wxLARGESMALL(15,0) ); #if wxUSE_VALIDATORS wxTextValidator validator( wxFILTER_NONE, &m_value ); @@ -98,21 +112,31 @@ wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, #endif // wxUSE_VALIDATORS + // smart phones does not support or do not waste space for wxButtons +#ifdef __SMARTPHONE__ + + SetRightMenu(wxID_CANCEL, _("Cancel")); + +#else // __SMARTPHONE__/!__SMARTPHONE__ + #if wxUSE_STATLINE // 3) static line - topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); + topsizer->Add( new wxStaticLine( this, wxID_ANY ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); #endif // 4) buttons topsizer->Add( CreateButtonSizer( style ), 0, wxCENTRE | wxALL, 10 ); - SetAutoLayout( TRUE ); +#endif // !__SMARTPHONE__ + + SetAutoLayout( true ); SetSizer( topsizer ); topsizer->SetSizeHints( this ); topsizer->Fit( this ); - Centre( wxBOTH ); + if ( ( style & wxCENTRE ) == wxCENTRE ) + Centre( wxBOTH ); m_textctrl->SetSelection(-1, -1); m_textctrl->SetFocus(); @@ -123,7 +147,7 @@ wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, void wxTextEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) { #if wxUSE_VALIDATORS - if( Validate() && TransferDataFromWindow() ) + if( Validate() && TransferDataFromWindow() ) { EndModal( wxID_OK ); }