1
0
forked from cheng/wallet
wallet/samples/dialogs/frame.h

299 lines
7.8 KiB
C
Raw Normal View History

#pragma once
// Define a new frame type
class Frame : public wxFrame
{
int m_TipOfTheDayIndex;
int m_FileDialogFilterIndex;
std::string m_strLastUsedFile;
public:
bool m_showTipsAtStartup;
Frame(const wxString& title);
virtual ~Frame();
void StorePositionToConfig(void);
void RestorePositionFromConfig(const wxSize&);
#if wxUSE_MSGDLG
void MessageBox(wxCommandEvent& event);
void MessageBoxDialog(wxCommandEvent& event);
void MessageBoxDialogWindowModal(wxCommandEvent& event);
void MessageBoxDialogWindowModalClosed(wxWindowModalDialogEvent& event);
void MessageBoxInfo(wxCommandEvent& event);
void MessageBoxWindowModal(wxCommandEvent& event);
void MessageBoxWindowModalClosed(wxWindowModalDialogEvent& event);
#endif // wxUSE_MSGDLG
#if wxUSE_RICHMSGDLG
void RichMessageDialog(wxCommandEvent& event);
#endif // wxUSE_RICHMSGDLG
#if wxUSE_COLOURDLG
void ChooseColour(wxCommandEvent& event);
void GetColour(wxCommandEvent& event);
#endif // wxUSE_COLOURDLG
#if wxUSE_FONTDLG
void ChooseFont(wxCommandEvent& event);
#endif // wxUSE_FONTDLG
#if wxUSE_LOG_DIALOG
void LogDialog(wxCommandEvent& event);
#endif // wxUSE_LOG_DIALOG
#if wxUSE_INFOBAR
void InfoBarSimple(wxCommandEvent& event);
void InfoBarSimpleWrapped(wxCommandEvent& event);
void InfoBarAdvanced(wxCommandEvent& event);
#endif // wxUSE_INFOBAR
#if wxUSE_CHOICEDLG
void SingleChoice(wxCommandEvent& event);
void MultiChoice(wxCommandEvent& event);
#endif // wxUSE_CHOICEDLG
#if wxUSE_REARRANGECTRL
void Rearrange(wxCommandEvent& event);
#endif // wxUSE_REARRANGECTRL
#if wxUSE_ADDREMOVECTRL
void AddRemove(wxCommandEvent& event);
#endif // wxUSE_ADDREMOVECTRL
#if wxUSE_TEXTDLG
void LineEntry(wxCommandEvent& event);
void TextEntry(wxCommandEvent& event);
void PasswordEntry(wxCommandEvent& event);
#endif // wxUSE_TEXTDLG
#ifdef wxUSE_CREDENTIALDLG
void CredentialEntry(wxCommandEvent& event);
#endif // wxUSE_CREDENTIALDLG
#if wxUSE_NUMBERDLG
void NumericEntry(wxCommandEvent& event);
#endif // wxUSE_NUMBERDLG
#if wxUSE_FILEDLG
void OnFileOpen(wxCommandEvent& event);
void FileOpen2(wxCommandEvent& event);
void FilesOpen(wxCommandEvent& event);
void FilesOpenWindowModal(wxCommandEvent& event);
void FilesOpenWindowModalClosed(wxWindowModalDialogEvent& event);
void OnSaveNew(wxCommandEvent& event);
void FileSaveWindowModal(wxCommandEvent& event);
void FileSaveWindowModalClosed(wxWindowModalDialogEvent& event);
void MacToggleAlwaysShowTypes(wxCommandEvent& event);
#endif // wxUSE_FILEDLG
#if USE_FILEDLG_GENERIC
void FileOpenGeneric(wxCommandEvent& event);
void FilesOpenGeneric(wxCommandEvent& event);
void FileSaveGeneric(wxCommandEvent& event);
#endif // USE_FILEDLG_GENERIC
#if wxUSE_DIRDLG
void DirChoose(wxCommandEvent& event);
void DirChooseWindowModal(wxCommandEvent& event);
void DirChooseWindowModalClosed(wxWindowModalDialogEvent& event);
void DirChooseNew(wxCommandEvent& event);
void DirChooseMultiple(wxCommandEvent& event);
#endif // wxUSE_DIRDLG
#if USE_DIRDLG_GENERIC
void GenericDirChoose(wxCommandEvent& event);
#endif // USE_DIRDLG_GENERIC
#if wxUSE_STARTUP_TIPS
void ShowTip(wxCommandEvent& event);
#endif // wxUSE_STARTUP_TIPS
#if USE_MODAL_PRESENTATION
void ModalDlg(wxCommandEvent& event);
#endif // USE_MODAL_PRESENTATION
void ModelessDlg(wxCommandEvent& event);
void DlgCenteredScreen(wxCommandEvent& event);
void DlgCenteredParent(wxCommandEvent& event);
void MiniFrame(wxCommandEvent& event);
void DlgOnTop(wxCommandEvent& event);
#if wxUSE_PROGRESSDLG
void ShowProgress(wxCommandEvent& event);
#ifdef wxHAS_NATIVE_PROGRESSDIALOG
void ShowProgressGeneric(wxCommandEvent& event);
#endif // wxHAS_NATIVE_PROGRESSDIALOG
void DoShowProgress(wxGenericProgressDialog& dialog);
#endif // wxUSE_PROGRESSDLG
void ShowAppProgress(wxCommandEvent& event);
#if wxUSE_ABOUTDLG
void ShowSimpleAboutDialog(wxCommandEvent& event);
void ShowFancyAboutDialog(wxCommandEvent& event);
void ShowFullAboutDialog(wxCommandEvent& event);
void ShowCustomAboutDialog(wxCommandEvent& event);
#endif // wxUSE_ABOUTDLG
#if wxUSE_BUSYINFO
void ShowBusyInfo(wxCommandEvent& event);
void ShowRichBusyInfo(wxCommandEvent& event);
#endif // wxUSE_BUSYINFO
#if wxUSE_FINDREPLDLG
void ShowFindDialog(wxCommandEvent& event);
void ShowReplaceDialog(wxCommandEvent& event);
void OnFindDialog(wxFindDialogEvent& event);
#endif // wxUSE_FINDREPLDLG
#if USE_COLOURDLG_GENERIC
void ChooseColourGeneric(wxCommandEvent& event);
#endif // USE_COLOURDLG_GENERIC
#if USE_FONTDLG_GENERIC
void ChooseFontGeneric(wxCommandEvent& event);
#endif // USE_FONTDLG_GENERIC
void OnPropertySheet(wxCommandEvent& event);
void OnRequestUserAttention(wxCommandEvent& event);
#if wxUSE_NOTIFICATION_MESSAGE
void OnNotifMsg(wxCommandEvent& event);
#endif // wxUSE_NOTIFICATION_MESSAGE
#if wxUSE_RICHTOOLTIP
void OnRichTipDialog(wxCommandEvent& event);
#endif // wxUSE_RICHTOOLTIP
void OnStandardButtonsSizerDialog(wxCommandEvent& event);
void OnTestDefaultActionDialog(wxCommandEvent& event);
void OnModalHook(wxCommandEvent& event);
void OnSimulatedUnsaved(wxCommandEvent& event);
void OnExit(wxCommandEvent& event);
void OnClose(wxCloseEvent& event);
private:
#if wxUSE_COLOURDLG
void OnColourChanged(wxColourDialogEvent& event);
void DoApplyColour(const wxColour& colour);
#endif // wxUSE_COLOURDLG
#if wxUSE_DIRDLG
void DoDirChoose(int style);
#endif // wxUSE_DIRDLG
#if USE_MODAL_PRESENTATION
MyModelessDialog* m_dialog;
#endif // USE_MODAL_PRESENTATION
#if wxUSE_FINDREPLDLG
wxFindReplaceData m_findData;
wxFindReplaceDialog* m_dlgFind,
* m_dlgReplace;
#endif // wxUSE_FINDREPLDLG
wxColourData m_clrData;
// just a window which we use to show the effect of font/colours selection
wxWindow* m_canvas;
#if wxUSE_INFOBAR
void OnInfoBarRedo(wxCommandEvent& event);
wxInfoBar* m_infoBarSimple,
* m_infoBarAdvanced;
#endif // wxUSE_INFOBAR
#if USE_SETTINGS_DIALOG
SettingsData m_settingsData;
#endif // USE_SETTINGS_DIALOG
#if wxUSE_TIPWINDOW
void OnShowTip(wxCommandEvent& event);
void OnUpdateShowTipUI(wxUpdateUIEvent& event);
wxTipWindow* m_tipWindow;
#endif // wxUSE_TIPWINDOW
bool m_confirmExit;
wxDECLARE_EVENT_TABLE();
};
class MyCanvas : public wxScrolledWindow
{
public:
MyCanvas(wxWindow* parent) : wxScrolledWindow(parent, wxID_ANY)
{
SetForegroundColour(*wxBLACK);
SetBackgroundColour(*wxWHITE);
SetFont(*wxNORMAL_FONT);
}
private:
void OnPaint(wxPaintEvent& event);
wxDECLARE_EVENT_TABLE();
};
// Menu IDs
enum
{
DIALOGS_CHOOSE_COLOUR = wxID_HIGHEST,
DIALOGS_CHOOSE_COLOUR_ALPHA,
DIALOGS_GET_COLOUR,
DIALOGS_CHOOSE_FONT,
DIALOGS_MESSAGE_BOX,
DIALOGS_MESSAGE_DIALOG,
DIALOGS_MESSAGE_BOX_WXINFO,
DIALOGS_RICH_MESSAGE_DIALOG,
DIALOGS_SINGLE_CHOICE,
DIALOGS_MULTI_CHOICE,
DIALOGS_REARRANGE,
DIALOGS_ADDREMOVE,
DIALOGS_LINE_ENTRY,
DIALOGS_TEXT_ENTRY,
DIALOGS_PASSWORD_ENTRY,
DIALOGS_CREDENTIAL_ENTRY,
DIALOGS_FILE_OPEN,
DIALOGS_FILE_OPEN2,
DIALOGS_FILES_OPEN,
DIALOGS_FILE_SAVE,
DIALOGS_FILE_USE_CUSTOMIZER,
DIALOGS_FILE_USE_EXTRA_CONTROL_CREATOR,
DIALOGS_MAC_TOGGLE_ALWAYS_SHOW_TYPES,
DIALOGS_DIR_CHOOSE,
DIALOGS_DIRNEW_CHOOSE,
DIALOGS_DIRMULTIPLE_CHOOSE,
DIALOGS_TIP,
DIALOGS_NUM_ENTRY,
DIALOGS_LOG_DIALOG,
DIALOGS_INFOBAR_SIMPLE,
DIALOGS_INFOBAR_SIMPLE_WRAPPED,
DIALOGS_INFOBAR_ADVANCED,
DIALOGS_MODAL,
DIALOGS_MODELESS,
DIALOGS_CENTRE_SCREEN,
DIALOGS_CENTRE_PARENT,
DIALOGS_MINIFRAME,
DIALOGS_ONTOP,
DIALOGS_MODELESS_BTN,
DIALOGS_ABOUTDLG_SIMPLE,
DIALOGS_ABOUTDLG_FANCY,
DIALOGS_ABOUTDLG_FULL,
DIALOGS_ABOUTDLG_CUSTOM,
DIALOGS_BUSYINFO,
DIALOGS_BUSYINFO_RICH,
DIALOGS_FIND,
DIALOGS_REPLACE,
DIALOGS_REQUEST,
DIALOGS_NOTIFY_MSG,
DIALOGS_SHOW_TIP,
DIALOGS_RICHTIP_DIALOG,
DIALOGS_PROPERTY_SHEET,
DIALOGS_PROPERTY_SHEET_TOOLBOOK,
DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK,
DIALOGS_STANDARD_BUTTON_SIZER_DIALOG,
DIALOGS_TEST_DEFAULT_ACTION,
DIALOGS_MODAL_HOOK,
DIALOGS_SIMULATE_UNSAVED
};