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.2 by maloninc, Wed Oct 5 04:55:48 2005 UTC revision 1.6 by maloninc, Fri Oct 7 12:49:26 2005 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  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 132  void mnFrameController::handleAbout(wxCo Line 106  void mnFrameController::handleAbout(wxCo
106    
107  void mnFrameController::handleAddDir(wxCommandEvent& event)  void mnFrameController::handleAddDir(wxCommandEvent& event)
108  {  {
 /*  
109          wxDirDialog* dlg;          wxDirDialog* dlg;
110          wxString gotDirName;          wxString gotDirName;
111          wxString* dirName = new wxString();          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;          wxString  confKey;
136            wxNotebook* notebook;
137            mnNotePanel* panel;
138    
139          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
140            config->DeleteAll();
141            notebook = frame->getNotebook();
142            int count = notebook->GetPageCount();
143            for(int i = 0; i < count; i++) {
144                    panel = (mnNotePanel*)notebook->GetPage(i);
145                    const wxString* dataDir = panel->getController()->getWikiDataDir();
146    
147          dlg = new wxDirDialog(frame);                  if(i == 0){
148          if(dlg->ShowModal() == wxID_OK) {                          config->Write(wxT(CONF_WIKI_DIR), dataDir->c_str());
149                  gotDirName = dlg->GetPath();                  }
150                  confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", numOfMemoDir);                  else{
151                  config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());                          confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
152                            config->Write(confKey.c_str(), dataDir->c_str());
153                    }
154          }          }
155          delete config;          delete config;
 */  
 /*  
  * frame->addNotePanel を最終的に呼び出せばよい  
  * その後、frame->noteBook内の情報をNotePanel毎に一つずつ取り出し  
  * 一つ目をCONF_WIKI_DIR, 二つ目からCONF_WIKI_DIR+1のように設定ファイルに  
  * 記録すればよい  
  * 記録前に以前の記録をすべて削除するために、DeleteAllを呼ぶこと  
  */  
156  }  }
157    
158  void mnFrameController::handleRemoveDir(wxCommandEvent& event)  bool mnFrameController::isExistConfig(wxString* dir)
159    {
160            wxString* dirName = new wxString();
161            wxString gotDirName;
162            wxDirDialog* dlg;
163            wxString confKey;
164    
165            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
166            for(int i = 0; ;i++) {
167                    if(i == 0) {
168                            confKey.sprintf(wxT(CONF_WIKI_DIR));
169                    }
170                    else {
171                            confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
172                    }
173                    if(config->Read(confKey.c_str(), dirName)) {
174                            if(*dir == *dirName) return true;    /* Exist */
175                    }
176                    else {
177                            break;
178                    }
179            }
180            
181            delete dirName;
182            delete config;
183    
184            return false;
185    }
186    
187    
188    void mnFrameController::handlePageChange(wxNotebookEvent& event)
189  {  {
190            wxNotebook* notebook;
191            mnNotePanel* panel;
192    
193            notebook = frame->getNotebook();
194            panel = (mnNotePanel*)notebook->GetPage(event.GetSelection());
195            const wxString* dataDir = panel->getController()->getWikiDataDir();
196    
197            frame->GetStatusBar()->SetStatusText(*dataDir);
198  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

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