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.4 by maloninc, Thu Oct 6 05:29:01 2005 UTC revision 1.8 by maloninc, Tue Oct 24 04:45:10 2006 UTC
# Line 25  BEGIN_EVENT_TABLE(mnFrameController, wxE Line 25  BEGIN_EVENT_TABLE(mnFrameController, wxE
25          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
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            EVT_TIMER(wxID_ANY, mnFrameController::readAll)
30  END_EVENT_TABLE()  END_EVENT_TABLE()
31    
32  mnFrameController::mnFrameController(mnFrame* inframe)  mnFrameController::mnFrameController(mnFrame* inframe)
33  {  {
34          frame = inframe;          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)  void mnFrameController::handleConfig(wxCommandEvent& event)
# Line 112  void mnFrameController::handleAddDir(wxC Line 132  void mnFrameController::handleAddDir(wxC
132          dlg = new wxDirDialog(frame);          dlg = new wxDirDialog(frame);
133          if(dlg->ShowModal() == wxID_OK) {          if(dlg->ShowModal() == wxID_OK) {
134                  gotDirName = dlg->GetPath();                  gotDirName = dlg->GetPath();
135                  frame->addNotePanel(&gotDirName);                  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();          updateConfig();
144  }  }
# Line 131  void mnFrameController::updateConfig() Line 157  void mnFrameController::updateConfig()
157    
158          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
159          config->DeleteAll();          config->DeleteAll();
160            delete config;
161            config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
162          notebook = frame->getNotebook();          notebook = frame->getNotebook();
163          int count = notebook->GetPageCount();          int count = notebook->GetPageCount();
164          for(int i = 0; i < count; i++) {          for(int i = 0; i < count; i++) {
# Line 147  void mnFrameController::updateConfig() Line 175  void mnFrameController::updateConfig()
175          }          }
176          delete config;          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    }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.8

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