source: filezilla/trunk/fuentes/src/interface/inputdialog.cpp @ 3185

Last change on this file since 3185 was 3185, checked in by jrpelegrina, 2 years ago

Update new version: 3.15.02

File size: 2.4 KB
Line 
1#include <filezilla.h>
2#include "inputdialog.h"
3
4BEGIN_EVENT_TABLE(CInputDialog, wxDialogEx)
5EVT_TEXT(XRCID("ID_STRING"), CInputDialog::OnValueChanged)
6EVT_TEXT(XRCID("ID_STRING_PW"), CInputDialog::OnValueChanged)
7EVT_BUTTON(XRCID("wxID_OK"), CInputDialog::OnOK)
8EVT_BUTTON(XRCID("wxID_CANCEL"), CInputDialog::OnCancel)
9END_EVENT_TABLE()
10
11CInputDialog::CInputDialog()
12        : m_allowEmpty()
13        , m_pTextCtrl()
14{
15}
16
17bool CInputDialog::Create(wxWindow* parent, const wxString& title, wxString text)
18{
19        m_allowEmpty = false;
20        SetParent(parent);
21
22        if (!Load(parent, _T("ID_INPUTDIALOG"))) {
23                return false;
24        }
25
26        SetTitle(title);
27
28        if (!XRCCTRL(*this, "wxID_OK", wxButton))
29                return false;
30
31        if (!XRCCTRL(*this, "wxID_CANCEL", wxButton))
32                return false;
33
34        m_pTextCtrl = XRCCTRL(*this, "ID_STRING", wxTextCtrl);
35        if (!m_pTextCtrl)
36                return false;
37
38        if (!XRCCTRL(*this, "ID_STRING_PW", wxTextCtrl))
39                return false;
40
41        wxStaticText* pText = XRCCTRL(*this, "ID_TEXT", wxStaticText);
42        if (!pText)
43                return false;
44
45        WrapRecursive(this, 2.0);
46        pText->SetLabel(text);
47
48        GetSizer()->Fit(this);
49        GetSizer()->SetSizeHints(this);
50
51        XRCCTRL(*this, "ID_STRING", wxTextCtrl)->SetFocus();
52
53        XRCCTRL(*this, "wxID_OK", wxButton)->Enable(false);
54
55        return true;
56}
57
58void CInputDialog::AllowEmpty(bool allowEmpty)
59{
60        m_allowEmpty = allowEmpty;
61        XRCCTRL(*this, "wxID_OK", wxButton)->Enable(m_allowEmpty ? true : (m_pTextCtrl->GetValue() != _T("")));
62}
63
64void CInputDialog::OnValueChanged(wxCommandEvent&)
65{
66        wxString value = m_pTextCtrl->GetValue();
67        XRCCTRL(*this, "wxID_OK", wxButton)->Enable(m_allowEmpty ? true : !value.empty());
68}
69
70void CInputDialog::SetValue(const wxString& value)
71{
72        m_pTextCtrl->SetValue(value);
73}
74
75wxString CInputDialog::GetValue() const
76{
77        return m_pTextCtrl->GetValue();
78}
79
80bool CInputDialog::SelectText(int start, int end)
81{
82#ifdef __WXGTK__
83        Show();
84#endif
85        m_pTextCtrl->SetFocus();
86        m_pTextCtrl->SetSelection(start, end);
87        return true;
88}
89
90void CInputDialog::OnOK(wxCommandEvent&)
91{
92        EndModal(wxID_OK);
93}
94
95void CInputDialog::OnCancel(wxCommandEvent&)
96{
97        EndModal(wxID_CANCEL);
98}
99
100bool CInputDialog::SetPasswordMode(bool password)
101{
102        if (password)
103        {
104                m_pTextCtrl = XRCCTRL(*this, "ID_STRING_PW", wxTextCtrl);
105                m_pTextCtrl->Show();
106                XRCCTRL(*this, "ID_STRING", wxTextCtrl)->Hide();
107        }
108        else
109        {
110                m_pTextCtrl = XRCCTRL(*this, "ID_STRING", wxTextCtrl);
111                m_pTextCtrl->Show();
112                XRCCTRL(*this, "ID_STRING_PW", wxTextCtrl)->Hide();
113        }
114        return true;
115}
Note: See TracBrowser for help on using the repository browser.