Develop and Download Open Source Software

Browse CVS Repository

Annotation of /malonnote/mnController.cpp

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


Revision 1.4 - (hide annotations) (download) (as text)
Sat Jul 30 10:55:16 2005 UTC (18 years, 7 months ago) by maloninc
Branch: MAIN
CVS Tags: dev-1_0-0006, dev-1_0-0005, dev-1_0-0004
Changes since 1.3: +13 -0 lines
File MIME type: text/x-c++src
Add WikiDataEntryDialog,but not implemented save-data

1 maloninc 1.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 "mnController.h"
6     #include <wx/config.h>
7    
8     BEGIN_EVENT_TABLE(mnController, wxEvtHandler)
9     EVT_TEXT_ENTER(ID_SearchTextCtrl, mnController::handleSearch)
10     EVT_TREE_SEL_CHANGED(ID_SearchTree, mnController::handleTreeItemSelect)
11     EVT_TREE_SEL_CHANGING(ID_SearchTree, mnController::handleTreeItemSelecting)
12     EVT_TREE_BEGIN_LABEL_EDIT(ID_SearchTree, mnController::handleBeginLabelEdit)
13     EVT_TREE_END_LABEL_EDIT(ID_SearchTree, mnController::handleEndLabelEdit)
14     EVT_MENU(ID_MenuFileNew, mnController::handleNewButton)
15     EVT_MENU(ID_MenuFileRemove, mnController::handleRemoveButton)
16 maloninc 1.4 EVT_MENU(ID_MenuFileEdit, mnController::handleEditButton)
17     EVT_MENU(ID_MenuFileSave, mnController::handleSaveButton)
18 maloninc 1.1 EVT_MENU(ID_MenuFileExit, mnController::handleExit)
19     EVT_MENU(ID_MenuFileConfig, mnController::handleConfig)
20     EVT_MENU(wxID_ABOUT, mnController::handleAbout)
21     EVT_CLOSE(mnController::handleClose)
22     END_EVENT_TABLE()
23    
24     mnController::mnController(mnFrame* inframe)
25     {
26     wxString* dirName = new wxString();
27     wxString gotDirName;
28     wxDirDialog* dlg;
29    
30     frame = inframe;
31     isEditing = FALSE;
32    
33     /* create wiki model */
34     wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
35     if(config->Read(wxT(CONF_WIKI_DIR), dirName) == FALSE) {
36     delete dirName;
37     dlg = new wxDirDialog(frame);
38     if(dlg->ShowModal() == wxID_OK) {
39     gotDirName = dlg->GetPath();
40     wiki = new mnModel(gotDirName.mb_str());
41     config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());
42     }
43     else {
44     frame->Close();
45     }
46     }
47     else {
48     wiki = new mnModel(dirName->mb_str());
49     }
50    
51     delete config;
52     }
53    
54     void mnController::handleConfig(wxCommandEvent& event)
55     {
56     wxDirDialog* dlg;
57     wxString gotDirName;
58     wxString* dirName = new wxString();
59    
60     saveData();
61    
62     wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
63    
64     if(config->Read(wxT(CONF_WIKI_DIR), dirName)) {
65     if(wxMessageBox(*dirName, wxT("Change data directory?"), wxYES_NO|wxICON_QUESTION) == wxNO){
66     delete config;
67     isEditing = FALSE;
68     return;
69     }
70     }
71    
72     dlg = new wxDirDialog(frame);
73     if(dlg->ShowModal() == wxID_OK) {
74     gotDirName = dlg->GetPath();
75     delete wiki;
76     wiki = new mnModel(gotDirName.mb_str());
77     config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());
78     }
79     delete config;
80    
81     frame->showSearchResult(wiki);
82     isEditing = FALSE;
83     }
84    
85     void mnController::handleSearch(wxCommandEvent& event)
86     {
87     wxString* str = new wxString(event.GetString());
88     WikiList* wikiList;
89     WikiList::Node* node;
90    
91     saveData();
92    
93     wikiList = wiki->search(str->mb_str());
94    
95     node = wikiList->GetFirst();
96     if(!node) {
97     wxLogMessage(wxT("Not Found! [%s]"), (const char*)str->c_str());
98     return;
99     }
100    
101     wiki->addSearchStr(str);
102     frame->showSearchResult(wiki);
103     isEditing = FALSE;
104     }
105    
106     void mnController::handleNewButton(wxCommandEvent& event)
107     {
108     if(isEditing) return;
109    
110     WikiData* wikiData = wiki->newWikiData();
111     frame->showNewItem(wikiData);
112     saveData();
113     isEditing = TRUE;
114     }
115    
116     void mnController::handleRemoveButton(wxCommandEvent& event)
117     {
118     wxTreeItemData* item = frame->getSelectedItem();
119    
120     if(item){
121     ((WikiData*)(item))->removeDataFile();
122     }
123     else {
124     wiki->removeSearchStr(frame->getSelectedLabel());
125     }
126     frame->showSearchResult(wiki);
127     isEditing = FALSE;
128     }
129    
130     void mnController::handleTreeItemSelect(wxTreeEvent& event)
131     {
132     frame->showSelectedItemText(event);
133     isEditing = FALSE;
134     }
135    
136    
137     void mnController::handleTreeItemSelecting(wxTreeEvent& event)
138     {
139     saveData();
140    
141     if(frame->isNewItem(event.GetOldItem())) {
142     frame->showSearchResult(wiki);
143     event.Veto();
144     }
145     }
146    
147     void mnController::handleBeginLabelEdit(wxTreeEvent& event)
148     {
149     if(!frame->isEditableTreeLabel(event.GetItem())) event.Veto();
150     }
151    
152     void mnController::handleEndLabelEdit(wxTreeEvent& event)
153     {
154     wxString newSubject = event.GetLabel();
155     wxTreeItemData* item = frame->getSelectedItem();
156    
157     saveData();
158    
159     if(item == NULL) return ;
160 maloninc 1.2
161 maloninc 1.1 if(newSubject.Len() == 0) {
162 maloninc 1.2 event.Veto();
163 maloninc 1.1 frame->showSearchResult(wiki);
164     return;
165     }
166    
167     ((WikiData*)(item))->modSubject(&newSubject);
168 maloninc 1.2 if(frame->isNewItem(event.GetItem())){
169     return;
170     }
171    
172     event.Veto();
173 maloninc 1.1 frame->showSearchResult(wiki);
174     }
175    
176     void mnController::handleClose(wxCloseEvent& event)
177     {
178     saveData();
179     frame->Destroy();
180     }
181    
182     void mnController::handleExit(wxCommandEvent& event)
183     {
184     frame->Close();
185     }
186    
187    
188     void mnController::handleAbout(wxCommandEvent& event)
189     {
190 maloninc 1.2 wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);
191 maloninc 1.1 }
192    
193    
194 maloninc 1.4 void mnController::handleEditButton(wxCommandEvent& event)
195     {
196     wxLogMessage(wxT("Edit"));
197     frame->showPlainTextCtrl();
198     }
199    
200     void mnController::handleSaveButton(wxCommandEvent& event)
201     {
202     wxLogMessage(wxT("Save"));
203     frame->hidePlainTextCtrl();
204     }
205 maloninc 1.1
206     void mnController::saveData()
207     {
208 maloninc 1.3 #if 0
209 maloninc 1.1 wxTreeItemData* item = frame->getSelectedItem();
210     wxString plainTextStr = frame->getPlainText();
211     if(item == NULL) return ;
212    
213     ((WikiData*)(item))->modText(&plainTextStr);
214     ((WikiData*)(item))->save();
215     //frame->showSearchResult(wiki);
216 maloninc 1.3 #endif
217 maloninc 1.1 }

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