1
0
forked from cheng/wallet
wallet/samples/dialogs/frame.h
Cheng d59729f396
Never really figured out why my code was breaking
fixed it by looking for funny things that deviated from
the sameples,  and doing various recommended safe things,
and found a few sql errors, and one by one the crashes
went away.

The new wxWidgets just seems less tolerant of little careless
stuff that is not right.
2023-10-18 20:23:56 +10:00

299 lines
7.8 KiB
C++

#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
};