source: filezilla/trunk/fuentes/src/interface/conditionaldialog.cpp @ 130

Last change on this file since 130 was 130, checked in by jrpelegrina, 3 years ago

First release to xenial

File size: 2.5 KB
Line 
1#include <filezilla.h>
2#include "conditionaldialog.h"
3#include "filezillaapp.h"
4#include "wrapengine.h"
5#include "Options.h"
6
7BEGIN_EVENT_TABLE(CConditionalDialog, wxDialog)
8EVT_BUTTON(wxID_ANY, CConditionalDialog::OnButton)
9END_EVENT_TABLE()
10
11CConditionalDialog::CConditionalDialog(wxWindow* parent, enum DialogType type, enum Modes mode, bool checked /*=false*/)
12        : wxDialog(parent, wxID_ANY, _T(""), wxDefaultPosition), m_type(type)
13{
14        wxSizer* pVertSizer = new wxBoxSizer(wxVERTICAL);
15
16        wxSizer* pMainSizer = new wxBoxSizer(wxHORIZONTAL);
17        pVertSizer->Add(pMainSizer);
18
19        pMainSizer->AddSpacer(5);
20        wxSizer* pSizer = new wxBoxSizer(wxVERTICAL);
21        pMainSizer->Add(pSizer, 0, wxALL, 5);
22        m_pTextSizer = new wxFlexGridSizer(1, 5, 6);
23        pSizer->Add(m_pTextSizer, 0, wxTOP, 5);
24
25        wxCheckBox *pCheckBox = new wxCheckBox(this, wxID_HIGHEST + 1, _("&Don't show this dialog again."));
26        pCheckBox->SetValue(checked);
27        pSizer->Add(pCheckBox, 0, wxTOP | wxBOTTOM, 5);
28
29        wxStdDialogButtonSizer* buttons = new wxStdDialogButtonSizer();
30        pVertSizer->Add(buttons, 0, wxGROW | wxALL, 5);
31
32        if (mode == ok) {
33                pMainSizer->Prepend(new wxStaticBitmap(this, wxID_ANY, wxArtProvider::GetBitmap(wxART_INFORMATION)), 0, wxLEFT | wxBOTTOM | wxTOP, 10);
34
35                wxButton* ok = new wxButton(this, wxID_OK);
36                ok->SetDefault();
37                buttons->AddButton(ok);
38                SetEscapeId(wxID_OK);
39        }
40        else {
41                pMainSizer->Prepend(new wxStaticBitmap(this, wxID_ANY, wxArtProvider::GetBitmap(wxART_QUESTION)), 0, wxLEFT | wxBOTTOM | wxTOP, 10);
42
43                wxButton* yes = new wxButton(this, wxID_YES);
44                yes->SetDefault();
45                buttons->AddButton(yes);
46
47                buttons->AddButton(new wxButton(this, wxID_NO));
48                SetEscapeId(wxID_NO);
49        }
50        buttons->Realize();
51
52        SetSizer(pVertSizer);
53}
54
55bool CConditionalDialog::Run()
56{
57        wxString dialogs = COptions::Get()->GetOption(OPTION_ONETIME_DIALOGS);
58        if (dialogs.Len() > (unsigned int)m_type && dialogs[m_type] == '1')
59                return true;
60
61        Fit();
62        wxGetApp().GetWrapEngine()->WrapRecursive(this, 3);
63
64        CenterOnParent();
65
66        int id = ShowModal();
67
68        if (wxDynamicCast(FindWindow(wxID_HIGHEST + 1), wxCheckBox)->GetValue())
69        {
70                while (dialogs.Len() <= (unsigned int)m_type)
71                        dialogs += _T("0");
72                dialogs[m_type] = '1';
73                COptions::Get()->SetOption(OPTION_ONETIME_DIALOGS, dialogs);
74        }
75
76        if (id == wxID_OK || id == wxID_YES)
77                return true;
78
79        return false;
80}
81
82void CConditionalDialog::AddText(const wxString& text)
83{
84        m_pTextSizer->Add(new wxStaticText(this, wxID_ANY, text));
85}
86
87void CConditionalDialog::OnButton(wxCommandEvent& event)
88{
89        EndDialog(event.GetId());
90}
Note: See TracBrowser for help on using the repository browser.