Develop and Download Open Source Software

Browse CVS Repository

Annotation of /malonnote/mnFrame.cpp

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


Revision 1.1 - (hide annotations) (download) (as text)
Thu Jul 28 03:25:05 2005 UTC (18 years, 8 months ago) by maloninc
Branch: MAIN
Branch point for: vendor
File MIME type: text/x-c++src
Initial revision

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 "mnFrame.h"
6    
7    
8     mnFrame::mnFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
9     wxFrame(parent, id, title, pos, size, wxDEFAULT_FRAME_STYLE)
10     {
11     // begin wxGlade: mnFrame::mnFrame
12     splitWindow = new wxSplitterWindow(this, -1, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_BORDER);
13     rightPanel = new wxPanel(splitWindow, -1);
14     leftPanel = new wxPanel(splitWindow, -1);
15     panel = new wxPanel(this, -1);
16     searchLaebl = new wxStaticText(panel, -1, wxT("Search"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
17     searchTextCtrl = new wxTextCtrl(this, ID_SearchTextCtrl, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER);
18     searchTree = new wxTreeCtrl(leftPanel, ID_SearchTree, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_DEFAULT_STYLE|wxSUNKEN_BORDER|wxTR_EDIT_LABELS);
19     wikiPlainTextCtrl = new wxTextCtrl(rightPanel, ID_PlainTextCtrl, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxHSCROLL|wxTE_AUTO_URL);
20    
21     // begin add by hand
22     menuBar = new wxMenuBar();
23     SetMenuBar(menuBar);
24    
25     // File menu
26     wxMenu* tmp_menu_1 = new wxMenu();
27     tmp_menu_1->Append(ID_MenuFileNew, _("New\tCtrl+N"), wxT(""), wxITEM_NORMAL);
28     tmp_menu_1->Append(ID_MenuFileRemove, _("Remove\tCtrl+R"), wxT(""), wxITEM_NORMAL);
29     tmp_menu_1->Append(ID_MenuFileConfig, _("Configure..."), wxT(""), wxITEM_NORMAL);
30     tmp_menu_1->Append(ID_MenuFileExit, _("Quit\tCtrl+Q"), wxT(""), wxITEM_NORMAL);
31     menuBar->Append(tmp_menu_1, _("&File"));
32    
33     // Help menu
34     wxMenu* tmp_menu_2 = new wxMenu();
35     tmp_menu_2->Append(wxID_ABOUT, _("&About"), wxT(""), wxITEM_NORMAL);
36     menuBar->Append(tmp_menu_2, _("&Help"));
37    
38     #ifdef __WXMSW__
39     wxIcon icon(wxT(APP_ICON_NAME), wxBITMAP_TYPE_ICO_RESOURCE);
40     SetIcon(icon);
41     #endif
42     // end add by hand
43    
44     set_properties();
45     do_layout();
46     // end wxGlade
47    
48     /* create search tree */
49     searchItemRoot = searchTree->AddRoot(wxT(LABEL_ITEM_TREE), -1, -1, NULL);
50     newItemRoot = searchTree->AppendItem(searchItemRoot, wxT(LABEL_NEW_ITEM), -1, -1, NULL);
51     }
52    
53    
54     void mnFrame::set_properties()
55     {
56     // begin wxGlade: mnFrame::set_properties
57     SetTitle(wxT("Malon Note"));
58     SetSize(wxSize(900, 572));
59     searchTextCtrl->SetFocus();
60     // end wxGlade
61     }
62    
63    
64     void mnFrame::do_layout()
65     {
66     // begin wxGlade: mnFrame::do_layout
67     wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
68     wxGridSizer* rightPanelSizer = new wxGridSizer(1, 1, 0, 0);
69     wxBoxSizer* leftPanelSizer = new wxBoxSizer(wxHORIZONTAL);
70     wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL);
71     wxBoxSizer* labelSizer = new wxBoxSizer(wxHORIZONTAL);
72     labelSizer->Add(searchLaebl, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
73     panel->SetAutoLayout(true);
74     panel->SetSizer(labelSizer);
75     labelSizer->Fit(panel);
76     labelSizer->SetSizeHints(panel);
77     topSizer->Add(panel, 0, wxEXPAND, 0);
78     topSizer->Add(searchTextCtrl, 1, wxTOP|wxBOTTOM|wxEXPAND|wxFIXED_MINSIZE, 1);
79     mainSizer->Add(topSizer, 0, wxEXPAND, 0);
80     leftPanelSizer->Add(searchTree, 1, wxEXPAND, 0);
81     leftPanel->SetAutoLayout(true);
82     leftPanel->SetSizer(leftPanelSizer);
83     leftPanelSizer->Fit(leftPanel);
84     leftPanelSizer->SetSizeHints(leftPanel);
85     rightPanelSizer->Add(wikiPlainTextCtrl, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
86     rightPanel->SetAutoLayout(true);
87     rightPanel->SetSizer(rightPanelSizer);
88     rightPanelSizer->Fit(rightPanel);
89     rightPanelSizer->SetSizeHints(rightPanel);
90     splitWindow->SplitVertically(leftPanel, rightPanel, 250);
91     mainSizer->Add(splitWindow, 1, wxEXPAND, 0);
92     SetAutoLayout(true);
93     SetSizer(mainSizer);
94     Layout();
95     // end wxGlade
96    
97     searchTree->Expand(searchItemRoot);
98     searchTree->Expand(newItemRoot);
99     }
100    
101     void mnFrame::showSearchResult(mnModel* wiki)
102     {
103     const wxArrayString* searchStrList;
104     WikiList* wikiList;
105     WikiList::Node* node;
106     int i;
107    
108     searchTree->DeleteChildren(searchItemRoot);
109     newItemRoot = searchTree->AppendItem(searchItemRoot, wxT(LABEL_NEW_ITEM), -1, -1, NULL);
110    
111     searchStrList = wiki->getSearchStrList();
112     for(i = 0; i < searchStrList->Count(); i++) {
113     wxString& searchStr = searchStrList->Item(i);
114    
115     wikiList = wiki->search(searchStr.mb_str());
116     addSearchResult(&searchStr, wikiList);
117     }
118    
119     searchTree->ScrollTo(searchItemRoot);
120     }
121    
122     void mnFrame::addSearchResult(wxString* searchStr, WikiList* wikiList)
123     {
124     wxTreeItemId searchItem;
125     WikiList::Node* node;
126     WikiData* data;
127     const wxString* subject;
128    
129     searchItem = searchTree->AppendItem(searchItemRoot, *searchStr, -1, -1, NULL);
130     node = wikiList->GetFirst();
131     while(node) {
132     data = node->GetData();
133     subject = data->getSubject();
134     searchTree->AppendItem(searchItem, *subject, -1, -1, (wxTreeItemData*)data);
135     node = node->GetNext();
136     }
137     searchTree->Expand(searchItemRoot);
138     searchTree->Expand(searchItem);
139     }
140    
141     void mnFrame::showSelectedItemText(wxTreeEvent& event)
142     {
143     wxTreeItemData* item = searchTree->GetItemData(event.GetItem());
144     if(item == NULL) {
145     wikiPlainTextCtrl->Clear();
146     return;
147     }
148    
149     const wxString* fileName = ((WikiData*)(item))->getFileName();
150     const wxString* appendTxt = ((WikiData*)(item))->getText();
151    
152     wikiPlainTextCtrl->Clear();
153     wikiPlainTextCtrl->AppendText(*appendTxt);
154     wikiPlainTextCtrl->SetInsertionPoint(0);
155     }
156    
157     void mnFrame::showNewItem(WikiData* data)
158     {
159     wxTreeItemId itemId;
160    
161     itemId = searchTree->AppendItem(newItemRoot, *(data->getSubject()), -1, -1, (wxTreeItemData*)data);
162     searchTree->Expand(searchItemRoot);
163     searchTree->Expand(newItemRoot);
164     searchTree->SelectItem(itemId);
165     }
166    
167     wxTreeItemData* mnFrame::getSelectedItem()
168     {
169     return searchTree->GetItemData(searchTree->GetSelection());
170     }
171    
172     wxString mnFrame::getSelectedLabel()
173     {
174     return searchTree->GetItemText(searchTree->GetSelection());
175     }
176    
177     wxString mnFrame::getPlainText()
178     {
179     return wikiPlainTextCtrl->GetValue();
180     }
181    
182     bool mnFrame::isEditableTreeLabel(wxTreeItemId id)
183     {
184     return !(searchTree->GetItemParent(id) == searchItemRoot || id == searchItemRoot);
185     }
186    
187     bool mnFrame::isNewItem(wxTreeItemId id)
188     {
189     return (searchTree->GetItemParent(id) == newItemRoot);
190     }
191    

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