Develop and Download Open Source Software

Browse CVS Repository

Contents of /malonnote/mnFrameController.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations) (download) (as text)
Tue Oct 11 09:05:15 2005 UTC (18 years, 5 months ago) by maloninc
Branch: MAIN
CVS Tags: rel_1_7_1, dev_1_6-0004, dev_1_6-0003, dev_1_6-0002, dev_1_6-0001, dev_1_6-0005
Changes since 1.6: +2 -0 lines
File MIME type: text/x-c++src
fixed Makefile to include new.template package.
fixed config bug.

1 // -*- C++ -*- generated by wxGlade 0.3.5.1 on Wed Jun 29 12:57:38 2005
2
3 #include "mnID.h"
4 #include "mnDef.h"
5 #include "mnFrameController.h"
6 #include "mnNotePanelController.h"
7 #include <wx/config.h>
8 #include <wx/tokenzr.h>
9 #include <wx/utils.h>
10 #include <wx/xrc/xmlres.h>
11
12 BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)
13 EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)
14 EVT_MENU(XRCID("New"), mnFrameController::handleNew)
15 EVT_MENU(XRCID("Remove"), mnFrameController::handleRemove)
16 EVT_MENU(XRCID("Edit"), mnFrameController::handleEdit)
17 EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlight)
18 EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)
19 EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)
20 EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)
21 EVT_MENU(XRCID("Group"), mnFrameController::handleGroup)
22 EVT_MENU(XRCID("OpenDocsDir"), mnFrameController::handleOpenDocsDir)
23 EVT_MENU(XRCID("AddDir"), mnFrameController::handleAddDir)
24 EVT_MENU(XRCID("RemoveDir"), mnFrameController::handleRemoveDir)
25 EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
26 EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)
27 EVT_CLOSE(mnFrameController::handleClose)
28 EVT_NOTEBOOK_PAGE_CHANGED(XRCID("noteBook"), mnFrameController::handlePageChange)
29 END_EVENT_TABLE()
30
31 mnFrameController::mnFrameController(mnFrame* inframe)
32 {
33 frame = inframe;
34 }
35
36 void mnFrameController::handleConfig(wxCommandEvent& event)
37 {
38 wxLogMessage(wxT("Config..."));
39 }
40
41 void mnFrameController::handleSearch(wxCommandEvent& event)
42 {
43 frame->getNotePanel()->getController()->handleSearch(event);
44 }
45
46 void mnFrameController::handleNew(wxCommandEvent& event)
47 {
48 frame->getNotePanel()->getController()->handleNew(event);
49 }
50
51 void mnFrameController::handleRemove(wxCommandEvent& event)
52 {
53 frame->getNotePanel()->getController()->handleRemove(event);
54 }
55
56 void mnFrameController::handleEdit(wxCommandEvent& event)
57 {
58 frame->getNotePanel()->getController()->handleEdit(event);
59 }
60
61 void mnFrameController::handleHighlight(wxCommandEvent& event)
62 {
63 frame->getNotePanel()->getController()->handleHighlight(event);
64 }
65
66 void mnFrameController::handleTreeExpand(wxCommandEvent& event)
67 {
68 frame->getNotePanel()->getController()->handleTreeExpand(event);
69 }
70
71 void mnFrameController::handleTreeCollapse(wxCommandEvent& event)
72 {
73 frame->getNotePanel()->getController()->handleTreeCollapse(event);
74 }
75
76 void mnFrameController::handleTreeClear(wxCommandEvent& event)
77 {
78 frame->getNotePanel()->getController()->handleTreeClear(event);
79 }
80
81 void mnFrameController::handleGroup(wxCommandEvent& event)
82 {
83 frame->getNotePanel()->getController()->handleGroup(event);
84 }
85
86 void mnFrameController::handleOpenDocsDir(wxCommandEvent& event)
87 {
88 frame->getNotePanel()->getController()->handleOpenDocsDir(event);
89 }
90
91 void mnFrameController::handleClose(wxCloseEvent& event)
92 {
93 frame->Destroy();
94 }
95
96 void mnFrameController::handleExit(wxCommandEvent& event)
97 {
98 frame->Close();
99 }
100
101
102 void mnFrameController::handleAbout(wxCommandEvent& event)
103 {
104 wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);
105 }
106
107 void mnFrameController::handleAddDir(wxCommandEvent& event)
108 {
109 wxDirDialog* dlg;
110 wxString gotDirName;
111 wxString* dirName = new wxString();
112
113 dlg = new wxDirDialog(frame);
114 if(dlg->ShowModal() == wxID_OK) {
115 gotDirName = dlg->GetPath();
116 if(isExistConfig(&gotDirName) == false){
117 frame->addNotePanel(&gotDirName);
118 }
119 else {
120 wxMessageBox(wxT("It already exist in MalonNote"), wxT("Already exist"), wxOK|wxICON_INFORMATION);
121 return;
122 }
123 }
124 updateConfig();
125 }
126
127 void mnFrameController::handleRemoveDir(wxCommandEvent& event)
128 {
129 frame->removeSelectedNotePanel();
130 updateConfig();
131 }
132
133 void mnFrameController::updateConfig()
134 {
135 wxString confKey;
136 wxNotebook* notebook;
137 mnNotePanel* panel;
138
139 wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
140 config->DeleteAll();
141 delete config;
142 config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
143 notebook = frame->getNotebook();
144 int count = notebook->GetPageCount();
145 for(int i = 0; i < count; i++) {
146 panel = (mnNotePanel*)notebook->GetPage(i);
147 const wxString* dataDir = panel->getController()->getWikiDataDir();
148
149 if(i == 0){
150 config->Write(wxT(CONF_WIKI_DIR), dataDir->c_str());
151 }
152 else{
153 confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
154 config->Write(confKey.c_str(), dataDir->c_str());
155 }
156 }
157 delete config;
158 }
159
160 bool mnFrameController::isExistConfig(wxString* dir)
161 {
162 wxString* dirName = new wxString();
163 wxString gotDirName;
164 wxDirDialog* dlg;
165 wxString confKey;
166
167 wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
168 for(int i = 0; ;i++) {
169 if(i == 0) {
170 confKey.sprintf(wxT(CONF_WIKI_DIR));
171 }
172 else {
173 confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
174 }
175 if(config->Read(confKey.c_str(), dirName)) {
176 if(*dir == *dirName) return true; /* Exist */
177 }
178 else {
179 break;
180 }
181 }
182
183 delete dirName;
184 delete config;
185
186 return false;
187 }
188
189
190 void mnFrameController::handlePageChange(wxNotebookEvent& event)
191 {
192 wxNotebook* notebook;
193 mnNotePanel* panel;
194
195 notebook = frame->getNotebook();
196 panel = (mnNotePanel*)notebook->GetPage(event.GetSelection());
197 const wxString* dataDir = panel->getController()->getWikiDataDir();
198
199 frame->GetStatusBar()->SetStatusText(*dataDir);
200 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26