Develop and Download Open Source Software

Browse CVS Repository

Diff of /malonnote/mnFrameController.cpp

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

revision 1.1 by maloninc, Tue Oct 4 12:45:02 2005 UTC revision 1.7 by maloninc, Tue Oct 11 09:05:15 2005 UTC
# Line 11  Line 11 
11    
12  BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)  BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)
13          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)
14  /*          EVT_MENU(XRCID("New"), mnFrameController::handleNew)
15          EVT_MENU(XRCID("New"), mnFrameController::handleNewButton)          EVT_MENU(XRCID("Remove"), mnFrameController::handleRemove)
16          EVT_MENU(XRCID("Remove"), mnFrameController::handleRemoveButton)          EVT_MENU(XRCID("Edit"), mnFrameController::handleEdit)
17          EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlightButton)          EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlight)
         EVT_MENU(XRCID("Edit"), mnFrameController::handleEditButton)  
         EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)  
         EVT_MENU(XRCID("Configure"), mnFrameController::handleConfig)  
         EVT_MENU(XRCID("Group"), mnFrameController::handleGroup)  
         EVT_MENU(XRCID("OpenDocsDir"), mnFrameController::handleOpenDocsDir)  
18          EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)          EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)
19          EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)          EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)
20          EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)          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)          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
         EVT_MENU(XRCID("Configure"), mnFrameController::handleConfig)  
26          EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)          EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)
27          EVT_CLOSE(mnFrameController::handleClose)          EVT_CLOSE(mnFrameController::handleClose)
28            EVT_NOTEBOOK_PAGE_CHANGED(XRCID("noteBook"), mnFrameController::handlePageChange)
29  END_EVENT_TABLE()  END_EVENT_TABLE()
30    
31  mnFrameController::mnFrameController(mnFrame* inframe)  mnFrameController::mnFrameController(mnFrame* inframe)
32  {  {
         wxString* dirName = new wxString();  
         wxString gotDirName;  
         wxDirDialog* dlg;  
   
33          frame = inframe;          frame = inframe;
   
         /* create wiki model */  
         wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));  
         if(config->Read(wxT(CONF_WIKI_DIR), dirName) == FALSE) {  
                 delete dirName;  
                 dlg = new wxDirDialog(frame);  
                 if(dlg->ShowModal() == wxID_OK) {  
                         gotDirName = dlg->GetPath();  
                         config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());  
                         frame->addNotePanel(&gotDirName);  
                 }  
                 else {  
                         frame->Close();  
                 }  
         }  
         else {  
                 frame->addNotePanel(dirName);  
   
                 wxString testDir(wxT("C:\\wiki_test"));  
                 frame->addNotePanel(&testDir);  
         }  
   
         delete config;  
34  }  }
35    
36  void mnFrameController::handleConfig(wxCommandEvent& event)  void mnFrameController::handleConfig(wxCommandEvent& event)
# Line 69  void mnFrameController::handleConfig(wxC Line 40  void mnFrameController::handleConfig(wxC
40    
41  void mnFrameController::handleSearch(wxCommandEvent& event)  void mnFrameController::handleSearch(wxCommandEvent& event)
42  {  {
         wxLogMessage(wxT("Search..., Call mnNotePanel's handleSearch which is selected."));  
43          frame->getNotePanel()->getController()->handleSearch(event);          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)  void mnFrameController::handleClose(wxCloseEvent& event)
92  {  {
# Line 90  void mnFrameController::handleAbout(wxCo Line 104  void mnFrameController::handleAbout(wxCo
104          wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);          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    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.7

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