📄 mdi.h
字号:
/////////////////////////////////////////////////////////////////////////////// Name: mdi.cpp// Purpose: MDI sample// Author: Julian Smart// Modified by:// Created: 04/01/98// RCS-ID: $Id: mdi.h,v 1.12 2004/04/26 04:25:13 wq1977 Exp $// Copyright: (c) Julian Smart and Markus Holzem// Licence: wxWindows license/////////////////////////////////////////////////////////////////////////////#ifndef __LILIMONEY_MDI_H__#define __LILIMONEY_MDI_H__#include "wx/toolbar.h"#include "wx/calctrl.h"#include "wx/dynarray.h"#include "moneybook.h"#define MAX_REC_SHOW 100// Define a new applicationclass MyApp : public wxApp{public: //! variable for internationalization wxLocale m_locale; bool OnInit();};class childvalueElem{ public: wxDouble value; int valuetype; childvalueElem(wxDouble avalue, int avaluetype) { value = avalue; valuetype = avaluetype; };};WX_DECLARE_LIST(childvalueElem,childvalueList);class MonthDataElem{public: wxDouble value; wxDateTime thedate; childvalueList children; MonthDataElem(wxDouble avalue, wxDateTime adate) { value = avalue; thedate = adate; }; ~MonthDataElem(){children.DeleteContents(TRUE);};};WX_DECLARE_LIST(MonthDataElem,MonthDataList);class ColourDescElem{public: wxBrush *color; wxString desc; ColourDescElem(wxBrush *acolor,wxString adesc) { color = acolor; desc = adesc; };};WX_DECLARE_LIST(ColourDescElem,ColourDescList);class MyCanvas : public wxScrolledWindow{public: wxChar title[100]; MonthDataList valuelist; ColourDescList mycolors; MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size); ~MyCanvas(){valuelist.DeleteContents(TRUE);mycolors.DeleteContents(TRUE);}; virtual void OnDraw(wxDC& dc); void DrawChild(wxDC& dc, wxCoord x, wxCoord y, wxCoord width, wxCoord height,MonthDataElem*pchild); void OnEvent(wxMouseEvent& event);private: DECLARE_EVENT_TABLE()};class MyChild: public wxMDIChildFrame{public: MyCanvas *canvas; MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); ~MyChild(); void OnActivate(wxActivateEvent& event); void OnRefresh(wxCommandEvent& event); void OnUpdateRefresh(wxUpdateUIEvent& event); void OnChangeTitle(wxCommandEvent& event); void OnChangePosition(wxCommandEvent& event); void OnChangeSize(wxCommandEvent& event); void OnQuit(wxCommandEvent& event); void OnSize(wxSizeEvent& event); void OnMove(wxMoveEvent& event); void OnClose(wxCloseEvent& event); DECLARE_EVENT_TABLE()};class MyGridFrame: public wxMDIChildFrame{ wxTextCtrl *m_text1,*m_text2,*m_text3; wxDouble totalValue;private: void ResetSize(wxSize clientSize);public: MyXmlNodeList gridobject; wxGrid *grid; bool EnableAutoModify; int colwidth[3]; int recheight; MyGridFrame(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); ~MyGridFrame(); void AddRecToGrid(xmlnodeGNode*nodedata,wxString s1,wxString s2,wxString s3); void AppendRecToGrid(xmlnodeGNode*nodedata, wxString s1,wxString s2,wxString s3); void OnSize(wxSizeEvent& event); void OnClose(wxCloseEvent& event); void OnQuit(wxCommandEvent& event); void OnKeyDown(wxKeyEvent& event); void OnCellRightClick( wxGridEvent& ev ); void OnCellValueChanged( wxGridEvent& ); void OnTabKeyPress(wxCommandEvent& event); void OnDownKeyPress(wxCommandEvent& event); void OnUpKeyPress(wxCommandEvent& event); void OnColSize(wxGridSizeEvent& ); void OnRowSize(wxGridSizeEvent& ); void UpdateUIBaseOnSize(); void UpdateStatusBar(); void OnDeleteRec(wxCommandEvent& WXUNUSED(event)); wxDouble GetTotalFromUi(); DECLARE_EVENT_TABLE()};typedef struct{ int recheight; int colswidth[3]; bool hintinmodify;}LiliMoneyConfigData;// Define a new frame#define MAX_COLOR_BRUSH_COUNT 24unsigned int colorbase[MAX_COLOR_BRUSH_COUNT][3]={ {128,0,0}, {255,0,0}, {128,128,0}, {255,255,0}, {0,128,0}, {0,255,0}, {0,128,128}, {0,255,255}, {0,0,128}, {0,0,255}, {128,0,128}, {255,0,255}, {128,128,64}, {255,255,128}, {0,64,64}, {0,255,128}, {0,128,255}, {128,255,255}, {0,64,128}, {128,128,255}, {128,0,255}, {255,0,128}, {128,64,0}, {255,128,64}};class MyStatusBar: public wxStatusBar{public: MyStatusBar(wxWindow* parent, wxWindowID id, long style = wxST_SIZEGRIP, const wxString& name = "statusBar") :wxStatusBar(parent,id,style,name) { ; }; void OnDbClick(wxMouseEvent& event);private: DECLARE_EVENT_TABLE()};class MyFrame : public wxMDIParentFrame{public: MoneyBook *moneybook; MyStatusBar *statusbar; wxTreeCtrl *textWindow; LiliMoneyConfigData stdata; wxBrush *gColorBrush[MAX_COLOR_BRUSH_COUNT]; MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); ~MyFrame(); void InitToolBar(wxToolBar* toolBar); void CreateMainMenu(wxFrame *parent); void OnSize(wxSizeEvent& event); void OnAbout(wxCommandEvent& event); void OnNewWindow(wxCommandEvent& event); void OnQuit(wxCommandEvent& event); void OnClose(wxCloseEvent& event); void OnTreeItemRightClick(wxTreeEvent& event); void OnTreeItemSelChanging(wxTreeEvent& event); void OnAddMoneyType(wxCommandEvent& event); void OnSetIncomingBase(wxCommandEvent& WXUNUSED(event)); void OnSetDefault(wxCommandEvent& WXUNUSED(event)); void UpdateStatusBar(void); bool GetAllConfig(LiliMoneyConfigData *pstdata); bool SetAllConfig(LiliMoneyConfigData *pstdata); void OnDeleteMoneyType(wxCommandEvent& WXUNUSED(event)); void OnCreateBrowserWin(wxCommandEvent& WXUNUSED(event)); void OnCreateCustomChart(wxCommandEvent& WXUNUSED(event)); void OnCreateChart(wxCommandEvent& WXUNUSED(event)); void OnCreateCustomBrowser(wxCommandEvent& WXUNUSED(event)); void CreateChart(wxTreeItemId baseitem, const char* title); void OnCalcHouseFee(wxCommandEvent& WXUNUSED(event)); void OnViewMonthOut(wxCommandEvent& WXUNUSED(event)); void CreateBrowserWindow(wxTreeItemId *pid = NULL, bool thisMonthOnly = TRUE, wxDateTime thedate = wxDateTime::Today()); void RecursionShowRec(xmlNodePtr pid, MyGridFrame *pFrame,bool showall = FALSE, bool thismonthonly=TRUE, wxDateTime thedate = wxDateTime::Today()); DECLARE_EVENT_TABLE()};// A custom modal dialogclass MyCalendarDialog : public wxDialog{public: wxCalendarCtrl *m_calendar; MyCalendarDialog(wxWindow *parent); void OnButton(wxCommandEvent& event);private: wxButton *m_btnFocused; DECLARE_EVENT_TABLE()};// A custom modal dialogclass MyCalcHouseFeeDialog: public wxDialog{public: MyCalcHouseFeeDialog(wxWindow *parent); void OnButton(wxCommandEvent& event); void SetValue(wxDouble TotalCnt, wxDouble MonthRate, long terms, long PayMethod);private: wxTextCtrl *m_TotalCount; wxTextCtrl *m_MonthRate; wxTextCtrl *m_Terms; wxRadioBox *m_PayMethord; wxButton *m_btnFocused; wxButton *m_btnSetDefault; DECLARE_EVENT_TABLE()};// menu items idsenum{ MDI_QUIT = 100, MDI_NEW_WINDOW, MDI_REFRESH, MDI_CHANGE_TITLE, MDI_CHANGE_POSITION, MDI_CHANGE_SIZE, MDI_CHILD_QUIT, MDI_ABOUT, TOOL_CALCHOUSEFEE, VIEW_MONTH_OUT, POPUP_CREATEBROWSERWIN, POPUP_ADDMONEYTYPE, POPUP_DELETETYPE, POPUP_SETASDEFAULT, POPUP_DELETEREC, POPUP_SETBASE, POPUP_CREATECUSTOMBROWSER, POPUP_CREATECHART, POPUP_CREATECUSTOMCHART, NORMAL_UP_ID, NORMAL_DOWN_ID, NORMAL_TAB_ID, MTEXT_1, MTEXT_2, MTEXT_3, TreeTest_Ctrl, Calendar_CalCtrl};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -