Develop and Download Open Source Software

Browse CVS Repository

Diff of /malonnote/mnFrame.cpp

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

revision 1.1.1.1 by maloninc, Thu Jul 28 03:25:05 2005 UTC revision 1.29 by maloninc, Mon Jan 23 13:37:10 2006 UTC
# Line 1  Line 1 
1  // -*- C++ -*- generated by wxGlade 0.3.5.1 on Wed Jun 29 12:57:38 2005  #include <wx/wx.h>
2    #include <wx/regex.h>
3  #include "mnID.h"  #include <wx/tokenzr.h>
4    #include <wx/xrc/xmlres.h>
5  #include "mnDef.h"  #include "mnDef.h"
6  #include "mnFrame.h"  #include "mnFrame.h"
7    #include "mnNotePanel.h"
8    #include "mnNotePanelController.h"
9    
10    
11  mnFrame::mnFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):  mnFrame::mnFrame(wxWindow* parent)
     wxFrame(parent, id, title, pos, size, wxDEFAULT_FRAME_STYLE)  
12  {  {
13      // begin wxGlade: mnFrame::mnFrame          wxXmlResource::Get()->LoadFrame(this, parent, wxT("mnFrame"));
     splitWindow = new wxSplitterWindow(this, -1, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_BORDER);  
     rightPanel = new wxPanel(splitWindow, -1);  
     leftPanel = new wxPanel(splitWindow, -1);  
     panel = new wxPanel(this, -1);  
     searchLaebl = new wxStaticText(panel, -1, wxT("Search"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);  
     searchTextCtrl = new wxTextCtrl(this, ID_SearchTextCtrl, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER);  
     searchTree = new wxTreeCtrl(leftPanel, ID_SearchTree, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_DEFAULT_STYLE|wxSUNKEN_BORDER|wxTR_EDIT_LABELS);  
     wikiPlainTextCtrl = new wxTextCtrl(rightPanel, ID_PlainTextCtrl, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxHSCROLL|wxTE_AUTO_URL);  
   
     // begin add by hand  
     menuBar = new wxMenuBar();  
     SetMenuBar(menuBar);  
   
         // File menu  
     wxMenu* tmp_menu_1 = new wxMenu();  
     tmp_menu_1->Append(ID_MenuFileNew, _("New\tCtrl+N"), wxT(""), wxITEM_NORMAL);  
     tmp_menu_1->Append(ID_MenuFileRemove, _("Remove\tCtrl+R"), wxT(""), wxITEM_NORMAL);  
     tmp_menu_1->Append(ID_MenuFileConfig, _("Configure..."), wxT(""), wxITEM_NORMAL);  
     tmp_menu_1->Append(ID_MenuFileExit, _("Quit\tCtrl+Q"), wxT(""), wxITEM_NORMAL);  
         menuBar->Append(tmp_menu_1, _("&File"));  
   
         // Help menu  
     wxMenu* tmp_menu_2 = new wxMenu();  
     tmp_menu_2->Append(wxID_ABOUT, _("&About"), wxT(""), wxITEM_NORMAL);  
         menuBar->Append(tmp_menu_2, _("&Help"));  
14    
15  #ifdef __WXMSW__  #ifdef __WXMSW__
16      wxIcon icon(wxT(APP_ICON_NAME), wxBITMAP_TYPE_ICO_RESOURCE);      wxIcon icon(wxT(APP_ICON_NAME), wxBITMAP_TYPE_ICO_RESOURCE);
17      SetIcon(icon);      SetIcon(icon);
18  #endif  #endif
     // end add by hand  
19            
20      set_properties();          /* init members */
21      do_layout();          searchTextCtrl   = XRCCTRL(*this, "searchTextCtrl", wxTextCtrl);
22      // end wxGlade          noteBook         = XRCCTRL(*this, "noteBook", wxNotebook);
23    
24          /* create search tree */          CreateStatusBar();
         searchItemRoot = searchTree->AddRoot(wxT(LABEL_ITEM_TREE), -1, -1, NULL);  
         newItemRoot = searchTree->AppendItem(searchItemRoot, wxT(LABEL_NEW_ITEM), -1, -1, NULL);  
25  }  }
26    
27    void mnFrame::setFocusToSearchTextCtrl()
 void mnFrame::set_properties()  
28  {  {
29      // begin wxGlade: mnFrame::set_properties          searchTextCtrl->SetFocus();
     SetTitle(wxT("Malon Note"));  
     SetSize(wxSize(900, 572));  
     searchTextCtrl->SetFocus();  
     // end wxGlade  
 }  
   
   
 void mnFrame::do_layout()  
 {  
     // begin wxGlade: mnFrame::do_layout  
     wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);  
     wxGridSizer* rightPanelSizer = new wxGridSizer(1, 1, 0, 0);  
     wxBoxSizer* leftPanelSizer = new wxBoxSizer(wxHORIZONTAL);  
     wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL);  
     wxBoxSizer* labelSizer = new wxBoxSizer(wxHORIZONTAL);  
     labelSizer->Add(searchLaebl, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);  
     panel->SetAutoLayout(true);  
     panel->SetSizer(labelSizer);  
     labelSizer->Fit(panel);  
     labelSizer->SetSizeHints(panel);  
     topSizer->Add(panel, 0, wxEXPAND, 0);  
     topSizer->Add(searchTextCtrl, 1, wxTOP|wxBOTTOM|wxEXPAND|wxFIXED_MINSIZE, 1);  
     mainSizer->Add(topSizer, 0, wxEXPAND, 0);  
     leftPanelSizer->Add(searchTree, 1, wxEXPAND, 0);  
     leftPanel->SetAutoLayout(true);  
     leftPanel->SetSizer(leftPanelSizer);  
     leftPanelSizer->Fit(leftPanel);  
     leftPanelSizer->SetSizeHints(leftPanel);  
     rightPanelSizer->Add(wikiPlainTextCtrl, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);  
     rightPanel->SetAutoLayout(true);  
     rightPanel->SetSizer(rightPanelSizer);  
     rightPanelSizer->Fit(rightPanel);  
     rightPanelSizer->SetSizeHints(rightPanel);  
     splitWindow->SplitVertically(leftPanel, rightPanel, 250);  
     mainSizer->Add(splitWindow, 1, wxEXPAND, 0);  
     SetAutoLayout(true);  
     SetSizer(mainSizer);  
     Layout();  
     // end wxGlade  
   
         searchTree->Expand(searchItemRoot);  
         searchTree->Expand(newItemRoot);  
30  }  }
31    
32  void mnFrame::showSearchResult(mnModel* wiki)  void mnFrame::addNotePanel(wxString* dirName)
33  {  {
34          const wxArrayString*  searchStrList;          mnNotePanel* panel = new mnNotePanel(noteBook, dirName);
35          WikiList* wikiList;          wxFileName fileName(*dirName);
         WikiList::Node* node;  
         int i;  
36    
37          searchTree->DeleteChildren(searchItemRoot);          noteBook->AddPage(panel, fileName.GetName(), true);  // only filename as page title
         newItemRoot = searchTree->AppendItem(searchItemRoot, wxT(LABEL_NEW_ITEM), -1, -1, NULL);  
38    
39          searchStrList = wiki->getSearchStrList();          setFocusToSearchTextCtrl();
         for(i = 0; i < searchStrList->Count(); i++) {  
                 wxString& searchStr = searchStrList->Item(i);  
           
                 wikiList = wiki->search(searchStr.mb_str());  
                 addSearchResult(&searchStr, wikiList);  
         }  
   
         searchTree->ScrollTo(searchItemRoot);  
40  }  }
41    
42  void mnFrame::addSearchResult(wxString* searchStr, WikiList* wikiList)  void mnFrame::removeSelectedNotePanel()
43  {  {
44          wxTreeItemId    searchItem;          noteBook->DeletePage(noteBook->GetSelection());
         WikiList::Node* node;  
         WikiData*       data;  
         const wxString* subject;  
   
         searchItem = searchTree->AppendItem(searchItemRoot, *searchStr, -1, -1, NULL);  
         node = wikiList->GetFirst();  
         while(node) {  
                 data = node->GetData();  
                 subject = data->getSubject();  
                 searchTree->AppendItem(searchItem, *subject, -1, -1, (wxTreeItemData*)data);  
                 node = node->GetNext();  
         }  
         searchTree->Expand(searchItemRoot);  
         searchTree->Expand(searchItem);  
 }  
   
 void mnFrame::showSelectedItemText(wxTreeEvent& event)  
 {  
         wxTreeItemData* item    = searchTree->GetItemData(event.GetItem());  
         if(item == NULL) {  
                 wikiPlainTextCtrl->Clear();  
                 return;  
         }  
   
         const wxString* fileName = ((WikiData*)(item))->getFileName();  
         const wxString* appendTxt = ((WikiData*)(item))->getText();  
   
         wikiPlainTextCtrl->Clear();  
         wikiPlainTextCtrl->AppendText(*appendTxt);  
         wikiPlainTextCtrl->SetInsertionPoint(0);  
45  }  }
46    
47  void mnFrame::showNewItem(WikiData* data)  mnNotePanel* mnFrame::getNotePanel()
48  {  {
49          wxTreeItemId itemId;          int selection = noteBook->GetSelection();
50    
51          itemId = searchTree->AppendItem(newItemRoot, *(data->getSubject()), -1, -1, (wxTreeItemData*)data);          return (mnNotePanel*)noteBook->GetPage(selection);
         searchTree->Expand(searchItemRoot);  
         searchTree->Expand(newItemRoot);  
         searchTree->SelectItem(itemId);  
52  }  }
53    
54  wxTreeItemData* mnFrame::getSelectedItem()  wxNotebook* mnFrame::getNotebook()
55  {  {
56          return searchTree->GetItemData(searchTree->GetSelection());          return noteBook;
57  }  }
   
 wxString mnFrame::getSelectedLabel()  
 {  
         return searchTree->GetItemText(searchTree->GetSelection());  
 }  
   
 wxString mnFrame::getPlainText()  
 {  
         return wikiPlainTextCtrl->GetValue();  
 }  
   
 bool mnFrame::isEditableTreeLabel(wxTreeItemId id)  
 {  
         return !(searchTree->GetItemParent(id) == searchItemRoot || id == searchItemRoot);  
 }  
   
 bool mnFrame::isNewItem(wxTreeItemId id)  
 {  
         return (searchTree->GetItemParent(id) == newItemRoot);  
 }  
   

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.29

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