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.1.1.1.2.1 - (hide annotations) (download) (as text) (vendor branch)
Fri Jul 29 06:12:42 2005 UTC (18 years, 7 months ago) by maloninc
Branch: dev-0_9_1-0001
CVS Tags: rel-0_9_1, dev-0_9_1-0002-merged-01, dev-0_9_1-0003, dev-0_9_1-0002, dev-0_9_1-merged-02
Changes since 1.1.1.1: +8 -3 lines
File MIME type: text/x-c++src
0.9.1

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

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