1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/generic/textdlgg.h
3 // Purpose:     wxTextEntryDialog class
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     01/02/97
7 // Copyright:   (c) Julian Smart
8 // Licence:     wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10 
11 #ifndef _WX_TEXTDLGG_H_
12 #define _WX_TEXTDLGG_H_
13 
14 #include "wx/defs.h"
15 
16 #if wxUSE_TEXTDLG
17 
18 #include "wx/dialog.h"
19 
20 #if wxUSE_VALIDATORS
21 #include "wx/valtext.h"
22 #include "wx/textctrl.h"
23 #endif
24 
25 class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
26 
27 extern WXDLLIMPEXP_DATA_CORE(const char) wxGetTextFromUserPromptStr[];
28 extern WXDLLIMPEXP_DATA_CORE(const char) wxGetPasswordFromUserPromptStr[];
29 
30 #define wxTextEntryDialogStyle (wxOK | wxCANCEL | wxCENTRE | wxWS_EX_VALIDATE_RECURSIVELY)
31 
32 // ----------------------------------------------------------------------------
33 // wxTextEntryDialog: a dialog with text control, [ok] and [cancel] buttons
34 // ----------------------------------------------------------------------------
35 
36 class WXDLLIMPEXP_CORE wxTextEntryDialog : public wxDialog
37 {
38 public:
wxTextEntryDialog()39     wxTextEntryDialog()
40     {
41         m_textctrl = NULL;
42     }
43 
44     wxTextEntryDialog(wxWindow *parent,
45                       const wxString& message,
46                       const wxString& caption = wxGetTextFromUserPromptStr,
47                       const wxString& value = wxEmptyString,
48                       long style = wxTextEntryDialogStyle,
49                       const wxPoint& pos = wxDefaultPosition)
50     {
51         Create(parent, message, caption, value, style, pos);
52     }
53 
54     bool Create(wxWindow *parent,
55                 const wxString& message,
56                 const wxString& caption = wxGetTextFromUserPromptStr,
57                 const wxString& value = wxEmptyString,
58                 long style = wxTextEntryDialogStyle,
59                 const wxPoint& pos = wxDefaultPosition);
60 
61     void SetValue(const wxString& val);
GetValue()62     wxString GetValue() const { return m_value; }
63 
64     void SetMaxLength(unsigned long len);
65 
66 #if wxUSE_VALIDATORS
67     void SetTextValidator( const wxTextValidator& validator );
68 #if WXWIN_COMPATIBILITY_2_8
69     wxDEPRECATED( void SetTextValidator( long style ) );
70 #endif
71     void SetTextValidator( wxTextValidatorStyle style = wxFILTER_NONE );
GetTextValidator()72     wxTextValidator* GetTextValidator() { return (wxTextValidator*)m_textctrl->GetValidator(); }
73 #endif // wxUSE_VALIDATORS
74 
75     virtual bool TransferDataToWindow();
76     virtual bool TransferDataFromWindow();
77 
78     // implementation only
79     void OnOK(wxCommandEvent& event);
80 
81 protected:
82     wxTextCtrl *m_textctrl;
83     wxString    m_value;
84     long        m_dialogStyle;
85 
86 private:
87     DECLARE_EVENT_TABLE()
88     DECLARE_DYNAMIC_CLASS(wxTextEntryDialog)
89     wxDECLARE_NO_COPY_CLASS(wxTextEntryDialog);
90 };
91 
92 // ----------------------------------------------------------------------------
93 // wxPasswordEntryDialog: dialog with password control, [ok] and [cancel]
94 // ----------------------------------------------------------------------------
95 
96 class WXDLLIMPEXP_CORE wxPasswordEntryDialog : public wxTextEntryDialog
97 {
98 public:
99     wxPasswordEntryDialog(wxWindow *parent,
100                       const wxString& message,
101                       const wxString& caption = wxGetPasswordFromUserPromptStr,
102                       const wxString& value = wxEmptyString,
103                       long style = wxTextEntryDialogStyle,
104                       const wxPoint& pos = wxDefaultPosition);
105 private:
106     DECLARE_DYNAMIC_CLASS(wxPasswordEntryDialog)
107     wxDECLARE_NO_COPY_CLASS(wxPasswordEntryDialog);
108 };
109 
110 // ----------------------------------------------------------------------------
111 // function to get a string from user
112 // ----------------------------------------------------------------------------
113 
114 WXDLLIMPEXP_CORE wxString
115     wxGetTextFromUser(const wxString& message,
116                     const wxString& caption = wxGetTextFromUserPromptStr,
117                     const wxString& default_value = wxEmptyString,
118                     wxWindow *parent = NULL,
119                     wxCoord x = wxDefaultCoord,
120                     wxCoord y = wxDefaultCoord,
121                     bool centre = true);
122 
123 WXDLLIMPEXP_CORE wxString
124     wxGetPasswordFromUser(const wxString& message,
125                         const wxString& caption = wxGetPasswordFromUserPromptStr,
126                         const wxString& default_value = wxEmptyString,
127                         wxWindow *parent = NULL,
128                         wxCoord x = wxDefaultCoord,
129                         wxCoord y = wxDefaultCoord,
130                         bool centre = true);
131 
132 #endif
133     // wxUSE_TEXTDLG
134 #endif // _WX_TEXTDLGG_H_
135