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.10 - (show annotations) (download) (as text)
Tue Oct 24 05:58:20 2006 UTC (17 years, 4 months ago) by maloninc
Branch: MAIN
Changes since 1.9: +2 -2 lines
File MIME type: text/x-c++src
fixed crash of readAll, and remove strip command from makefile

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 EVT_TIMER(wxID_ANY, mnFrameController::readAll)
30 END_EVENT_TABLE()
31
32 mnFrameController::mnFrameController(mnFrame* inframe)
33 {
34 frame = inframe;
35
36 wxTimer* timer = new wxTimer(this);
37 timer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
38 }
39
40 void mnFrameController::readAll(wxTimerEvent& event)
41 {
42 int count = 0;
43 mnNotePanel* panel;
44 mnNotePanelController* controller;
45
46 count = frame->getNotebook()->GetPageCount();
47 for(int i = 0; i < count; i++)
48 {
49 panel = (mnNotePanel*)frame->getNotebook()->GetPage(i);
50 controller = panel->getController();
51 controller->readAll();
52 }
53 }
54
55 void mnFrameController::handleConfig(wxCommandEvent& event)
56 {
57 wxLogMessage(wxT("Config..."));
58 }
59
60 void mnFrameController::handleSearch(wxCommandEvent& event)
61 {
62 frame->getNotePanel()->getController()->handleSearch(event);
63 }
64
65 void mnFrameController::handleNew(wxCommandEvent& event)
66 {
67 frame->getNotePanel()->getController()->handleNew(event);
68 }
69
70 void mnFrameController::handleRemove(wxCommandEvent& event)
71 {
72 frame->getNotePanel()->getController()->handleRemove(event);
73 }
74
75 void mnFrameController::handleEdit(wxCommandEvent& event)
76 {
77 frame->getNotePanel()->getController()->handleEdit(event);
78 }
79
80 void mnFrameController::handleHighlight(wxCommandEvent& event)
81 {
82 frame->getNotePanel()->getController()->handleHighlight(event);
83 }
84
85 void mnFrameController::handleTreeExpand(wxCommandEvent& event)
86 {
87 frame->getNotePanel()->getController()->handleTreeExpand(event);
88 }
89
90 void mnFrameController::handleTreeCollapse(wxCommandEvent& event)
91 {
92 frame->getNotePanel()->getController()->handleTreeCollapse(event);
93 }
94
95 void mnFrameController::handleTreeClear(wxCommandEvent& event)
96 {
97 frame->getNotePanel()->getController()->handleTreeClear(event);
98 }
99
100 void mnFrameController::handleGroup(wxCommandEvent& event)
101 {
102 frame->getNotePanel()->getController()->handleGroup(event);
103 }
104
105 void mnFrameController::handleOpenDocsDir(wxCommandEvent& event)
106 {
107 frame->getNotePanel()->getController()->handleOpenDocsDir(event);
108 }
109
110 void mnFrameController::handleClose(wxCloseEvent& event)
111 {
112 frame->Destroy();
113 }
114
115 void mnFrameController::handleExit(wxCommandEvent& event)
116 {
117 frame->Close();
118 }
119
120
121 void mnFrameController::handleAbout(wxCommandEvent& event)
122 {
123 wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);
124 }
125
126 void mnFrameController::handleAddDir(wxCommandEvent& event)
127 {
128 wxDirDialog* dlg;
129 wxString gotDirName;
130 wxString* dirName = new wxString();
131
132 dlg = new wxDirDialog(frame);
133 if(dlg->ShowModal() == wxID_OK) {
134 gotDirName = dlg->GetPath();
135 if(isExistConfig(&gotDirName) == false){
136 frame->addNotePanel(&gotDirName);
137 }
138 else {
139 wxMessageBox(wxT("It already exist in MalonNote"), wxT("Already exist"), wxOK|wxICON_INFORMATION);
140 return;
141 }
142 }
143 updateConfig();
144 }
145
146 void mnFrameController::handleRemoveDir(wxCommandEvent& event)
147 {
148 frame->removeSelectedNotePanel();
149 updateConfig();
150 }
151
152 void mnFrameController::updateConfig()
153 {
154 wxString confKey;
155 wxNotebook* notebook;
156 mnNotePanel* panel;
157
158 wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
159 config->DeleteAll();
160 delete config;
161 config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
162 notebook = frame->getNotebook();
163 int count = notebook->GetPageCount();
164 for(int i = 0; i < count; i++) {
165 panel = (mnNotePanel*)notebook->GetPage(i);
166 const wxString* dataDir = panel->getController()->getWikiDataDir();
167
168 if(i == 0){
169 config->Write(wxT(CONF_WIKI_DIR), dataDir->c_str());
170 }
171 else{
172 confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
173 config->Write(confKey.c_str(), dataDir->c_str());
174 }
175 }
176 delete config;
177 }
178
179 bool mnFrameController::isExistConfig(wxString* dir)
180 {
181 wxString* dirName = new wxString();
182 wxString gotDirName;
183 wxDirDialog* dlg;
184 wxString confKey;
185
186 wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
187 for(int i = 0; ;i++) {
188 if(i == 0) {
189 confKey.sprintf(wxT(CONF_WIKI_DIR));
190 }
191 else {
192 confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
193 }
194 if(config->Read(confKey.c_str(), dirName)) {
195 if(*dir == *dirName) return true; /* Exist */
196 }
197 else {
198 break;
199 }
200 }
201
202 delete dirName;
203 delete config;
204
205 return false;
206 }
207
208
209 void mnFrameController::handlePageChange(wxNotebookEvent& event)
210 {
211 wxNotebook* notebook;
212 mnNotePanel* panel;
213
214 notebook = frame->getNotebook();
215 panel = (mnNotePanel*)notebook->GetPage(event.GetSelection());
216 const wxString* dataDir = panel->getController()->getWikiDataDir();
217
218 frame->GetStatusBar()->SetStatusText(*dataDir);
219 }

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