]>
git.saurik.com Git - wxWidgets.git/blob - src/generic/textdlgg.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxTextEntryDialog
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 // ============================================================================
14 // ============================================================================
16 // ----------------------------------------------------------------------------
18 // ----------------------------------------------------------------------------
20 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
21 #pragma implementation "textdlgg.h"
24 // For compilers that support precompilation, includes "wx.h".
25 #include "wx/wxprec.h"
35 #include "wx/dialog.h"
36 #include "wx/button.h"
37 #include "wx/stattext.h"
38 #include "wx/textctrl.h"
44 #include "wx/statline.h"
47 #include "wx/generic/textdlgg.h"
49 // ----------------------------------------------------------------------------
51 // ----------------------------------------------------------------------------
53 static const int wxID_TEXT
= 3000;
55 // ---------------------------------------------------------------------------
57 // ---------------------------------------------------------------------------
59 /* Macro for avoiding #ifdefs when value have to be different depending on size of
60 device we display on - take it from something like wxDesktopPolicy in the future
63 #if defined(__SMARTPHONE__)
64 #define wxLARGESMALL(large,small) small
66 #define wxLARGESMALL(large,small) large
69 // ============================================================================
71 // ============================================================================
73 // ----------------------------------------------------------------------------
75 // ----------------------------------------------------------------------------
77 BEGIN_EVENT_TABLE(wxTextEntryDialog
, wxDialog
)
78 EVT_BUTTON(wxID_OK
, wxTextEntryDialog::OnOK
)
81 IMPLEMENT_CLASS(wxTextEntryDialog
, wxDialog
)
83 wxTextEntryDialog::wxTextEntryDialog(wxWindow
*parent
,
84 const wxString
& message
,
85 const wxString
& caption
,
86 const wxString
& value
,
89 : wxDialog(parent
, wxID_ANY
, caption
, pos
, wxDefaultSize
,
90 wxDEFAULT_DIALOG_STYLE
| wxDIALOG_MODAL
),
93 m_dialogStyle
= style
;
98 wxBoxSizer
*topsizer
= new wxBoxSizer( wxVERTICAL
);
102 topsizer
->Add( CreateTextSizer( message
), 0, wxALL
, wxLARGESMALL(10,0) );
106 m_textctrl
= new wxTextCtrl(this, wxID_TEXT
, value
,
107 wxDefaultPosition
, wxSize(300, wxDefaultCoord
),
108 style
& ~wxTextEntryDialogStyle
);
109 topsizer
->Add( m_textctrl
, style
& wxTE_MULTILINE
? 1 : 0, wxEXPAND
| wxLEFT
|wxRIGHT
, wxLARGESMALL(15,0) );
112 wxTextValidator
validator( wxFILTER_NONE
, &m_value
);
113 m_textctrl
->SetValidator( validator
);
117 // smart phones does not support or do not waste space for wxButtons
118 #ifdef __SMARTPHONE__
120 SetRightMenu(wxID_CANCEL
, _("Cancel"));
122 #else // __SMARTPHONE__/!__SMARTPHONE__
126 topsizer
->Add( new wxStaticLine( this, wxID_ANY
), 0, wxEXPAND
| wxLEFT
|wxRIGHT
|wxTOP
, 10 );
130 topsizer
->Add( CreateButtonSizer( style
), 0, wxEXPAND
| wxALL
, 10 );
132 #endif // !__SMARTPHONE__
134 SetAutoLayout( true );
135 SetSizer( topsizer
);
137 #if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
138 topsizer
->SetSizeHints( this );
139 topsizer
->Fit( this );
141 if ( style
& wxCENTRE
)
145 m_textctrl
->SetSelection(-1, -1);
146 m_textctrl
->SetFocus();
151 void wxTextEntryDialog::OnOK(wxCommandEvent
& WXUNUSED(event
) )
154 if( Validate() && TransferDataFromWindow() )
159 m_value
= m_textctrl
->GetValue();
166 void wxTextEntryDialog::SetValue(const wxString
& val
)
170 m_textctrl
->SetValue(val
);
174 void wxTextEntryDialog::SetTextValidator( long style
)
176 wxTextValidator
validator( style
, &m_value
);
177 m_textctrl
->SetValidator( validator
);
180 void wxTextEntryDialog::SetTextValidator( wxTextValidator
& validator
)
182 m_textctrl
->SetValidator( validator
);
188 // ----------------------------------------------------------------------------
189 // wxPasswordEntryDialog
190 // ----------------------------------------------------------------------------
192 IMPLEMENT_CLASS(wxPasswordEntryDialog
, wxTextEntryDialog
)
194 wxPasswordEntryDialog::wxPasswordEntryDialog(wxWindow
*parent
,
195 const wxString
& message
,
196 const wxString
& caption
,
197 const wxString
& value
,
200 : wxTextEntryDialog(parent
, message
, caption
, value
,
201 style
| wxTE_PASSWORD
, pos
)
203 // Only change from wxTextEntryDialog is the password style
206 #endif // wxUSE_TEXTDLG