Develop and Download Open Source Software

Browse CVS Repository

Contents of /malonnote/mnFrame.cpp

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


Revision 1.1.1.1 - (show annotations) (download) (as text) (vendor branch)
Thu Jul 28 03:25:05 2005 UTC (18 years, 7 months ago) by maloninc
Branch: vendor
CVS Tags: rel-0_9_1, dev-0_9_1-0002-merged-01, dev-0_9_1-root, dev-0_9-0001-merged-01, start, release-0_9_1, dev-0_9_1-0000, dev-0_9_1-0003, dev-0_9_1-0002, rel-0_9, dev-0_9_1, dev-1_0-0001, dev-0_9_1-merged-02, dev-1_0-0002-textctrl, release-09, dev-0_9-merged-02
Branch point for: dev-0_9_1-0001
Changes since 1.1: +0 -0 lines
File MIME type: text/x-c++src
Init

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