annotate src/iklist.cpp @ 0:520044113ef0 draft

beta release.
author pyon <pyon@macmini>
date Sat, 21 Aug 2021 13:03:13 +0900
parents
children c0f76f8e67fa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
1 // Filename : iklist.cpp
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
2 // Last Change: 2021-08-20 金 12:48:51.
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
3 //
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
4 #include <wx/textfile.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
5 #include <wx/utils.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
6 #include <wx/dir.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
7 #include <wx/filefn.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
8 #include <wx/wfstream.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
9 #include <wx/txtstrm.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
10 #include <wx/fs_zip.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
11 #include <wx/filesys.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
12 #include <wx/msgdlg.h>
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
13
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
14 #include "iklist.h"
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
15
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
16 ///////////////////////////////////////////////////////////////////////////
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
17
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
18 MainFrame::MainFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
19 : wxFrame(parent, id, title, pos, size, style)
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
20 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
21 CreateControls();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
22 LoadConfig();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
23
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
24 // Connect Events
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
25 m_searchCtrl->Connect(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEventHandler(MainFrame::OnCancel), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
26 m_searchCtrl->Connect(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEventHandler(MainFrame::OnSearch), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
27 m_searchCtrl->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MainFrame::OnSearch), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
28 m_textCtrl->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MainFrame::OnTextEnter), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
29 m_button->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MainFrame::OnClick), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
30 m_choiceCity->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MainFrame::OnCityChoice), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
31 m_choiceKind->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MainFrame::OnKindChoice), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
32 m_dataViewListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(MainFrame::OnListItemActivated), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
33 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
34
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
35 MainFrame::~MainFrame()
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
36 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
37 // Clean TempFile
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
38 wxString tmpdir, filename;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
39 wxGetEnv(wxT("TEMP"), &tmpdir);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
40 wxDir dir(tmpdir);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
41 dir.IsOpened();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
42 bool cont = dir.GetFirst(&filename, wxT("iklist-*"), wxDIR_FILES);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
43 while (cont) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
44 wxRemoveFile(tmpdir + wxFILE_SEP_PATH + filename);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
45 cont = dir.GetNext(&filename);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
46 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
47
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
48 // Disconnect Events
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
49 m_searchCtrl->Disconnect(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEventHandler(MainFrame::OnCancel), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
50 m_searchCtrl->Disconnect(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEventHandler(MainFrame::OnSearch), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
51 m_searchCtrl->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MainFrame::OnSearch), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
52 m_textCtrl->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MainFrame::OnTextEnter), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
53 m_button->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MainFrame::OnClick), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
54 m_choiceCity->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MainFrame::OnCityChoice), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
55 m_choiceKind->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MainFrame::OnKindChoice), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
56 m_dataViewListCtrl->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(MainFrame::OnListItemActivated), NULL, this);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
57 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
58
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
59 // Event Handlers
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
60 void MainFrame::OnSearch(wxCommandEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
61 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
62 SetList();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
63 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
64
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
65 void MainFrame::OnCancel(wxCommandEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
66 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
67 m_searchCtrl->Clear();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
68 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
69
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
70 void MainFrame::OnTextEnter(wxCommandEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
71 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
72 CheckPassword();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
73 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
74
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
75 void MainFrame::OnClick(wxCommandEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
76 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
77 CheckPassword();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
78 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
79
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
80 void MainFrame::OnCityChoice(wxCommandEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
81 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
82 SetList();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
83 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
84
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
85 void MainFrame::OnKindChoice(wxCommandEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
86 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
87 SetList();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
88 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
89
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
90 void MainFrame::OnListItemActivated(wxDataViewEvent& WXUNUSED(event))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
91 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
92 int n = m_dataViewListCtrl->GetSelectedRow();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
93 wxString index = m_dataViewListCtrl->GetTextValue(n, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
94 wxString pdf = MakePDF(index);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
95
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
96 wxString cmd = wxT("cmd /c start ") + pdf;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
97 wxArrayString output, error;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
98 wxExecute(cmd, output, error, wxEXEC_HIDE_CONSOLE);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
99 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
100
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
101 // Functions
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
102 void MainFrame::SetList()
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
103 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
104 wxString kw = m_searchCtrl->GetValue();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
105 wxString city = m_choiceCity->GetString(m_choiceCity->GetSelection());
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
106 wxString kind = m_choiceKind->GetString(m_choiceKind->GetSelection());
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
107
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
108 m_dataViewListCtrl->DeleteAllItems();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
109 wxVector<wxVariant> data;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
110 for (int i = 0; i < m_data.GetCount(); i++) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
111 wxArrayString str = wxSplit(m_data[i], ':');
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
112
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
113 data.push_back(wxVariant(wxString::Format(wxT("%04d"), i + 1))); // ID
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
114 data.push_back(wxVariant(str[0])); // Name
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
115 data.push_back(wxVariant(str[1])); // City
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
116 data.push_back(wxVariant(str[2])); // Kind
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
117
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
118 unsigned int flag = 0;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
119 if (!kw.IsEmpty() && str[0].Find(kw) == wxNOT_FOUND) flag |= 1;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
120 if (!city.IsEmpty() && str[1].IsSameAs(city)) flag |= 2;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
121 if (!kind.IsEmpty() && str[2].IsSameAs(kind)) flag |= 4;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
122 if (flag != 0)
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
123 m_dataViewListCtrl->AppendItem(data);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
124
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
125 data.clear();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
126 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
127 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
128
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
129 wxString MainFrame::MakePDF(wxString index)
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
130 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
131 wxString file = SearchFile(wxT("data03"), index);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
132 wxFileInputStream si1(file);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
133 file = SearchFile(wxT("data04"), index);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
134 wxFileInputStream si2(file);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
135 file = SearchFile(wxT("data08"), index);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
136 wxFileInputStream si3(file);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
137
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
138 wxString tmpdir;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
139 wxGetEnv(wxT("TEMP"), &tmpdir);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
140 wxString pdf = tmpdir + "/iklist-" + index + ".pdf";
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
141 wxFileOutputStream so(pdf);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
142 so << si1 << si2 << si3; // use chunk buffer to copy if file is big.
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
143
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
144 return pdf;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
145 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
146
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
147 wxString MainFrame::SearchFile(wxString directory, wxString index)
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
148 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
149 wxDir dir(directory);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
150 if (!dir.IsOpened())
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
151 return wxEmptyString;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
152
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
153 wxString filename;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
154 bool cont = dir.GetFirst(&filename, wxEmptyString, wxDIR_FILES);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
155 while (cont) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
156 if (filename.Mid(8, 4).IsSameAs(index, false))
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
157 break;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
158 cont = dir.GetNext(&filename);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
159 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
160 return directory + wxT("/") + filename;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
161 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
162
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
163 void MainFrame::CreateControls()
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
164 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
165 this->SetIcon(wxIcon(wxT("sample")));
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
166 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
167 this->SetBackgroundColour(wxColour(130, 170, 210));
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
168
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
169 wxBoxSizer* bSizerTop = new wxBoxSizer(wxVERTICAL);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
170
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
171 //--
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
172 wxBoxSizer* bSizerWord = new wxBoxSizer(wxHORIZONTAL);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
173
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
174 m_staticTextWord = new wxStaticText(this, wxID_ANY, wxT("パスワード:"), wxDefaultPosition, wxDefaultSize, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
175 bSizerWord->Add(m_staticTextWord, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
176
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
177 m_searchCtrl = new wxSearchCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(0, -1), 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
178 #ifndef __WXMAC__
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
179 m_searchCtrl->ShowSearchButton(true);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
180 #endif
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
181 m_searchCtrl->ShowCancelButton(true);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
182
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
183 bSizerWord->Add(m_searchCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
184
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
185 m_textCtrl = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, -1), wxTE_PASSWORD|wxTE_PROCESS_ENTER);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
186 bSizerWord->Add(m_textCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
187 m_textCtrl->SetFocus();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
188
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
189 m_button = new wxButton(this, wxID_ANY, wxT("OK"), wxDefaultPosition, wxSize(60, -1), 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
190 bSizerWord->Add(m_button, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
191
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
192 bSizerTop->Add(bSizerWord, 0, wxEXPAND, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
193
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
194 //--
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
195 wxBoxSizer* bSizerFilter = new wxBoxSizer(wxHORIZONTAL);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
196
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
197 m_staticTextFilter = new wxStaticText(this, wxID_ANY, wxT("フィルター:"), wxDefaultPosition, wxDefaultSize, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
198 bSizerFilter->Add(m_staticTextFilter, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
199
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
200 m_staticTextCity = new wxStaticText(this, wxID_ANY, wxT("市町村"), wxDefaultPosition, wxDefaultSize, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
201 bSizerFilter->Add(m_staticTextCity, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
202
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
203 wxArrayString m_choiceCityChoices;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
204 m_choiceCity = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceCityChoices, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
205 m_choiceCity->SetSelection(0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
206 bSizerFilter->Add(m_choiceCity, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
207
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
208 m_staticTextKind = new wxStaticText(this, wxID_ANY, wxT("区分"), wxDefaultPosition, wxDefaultSize, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
209 bSizerFilter->Add(m_staticTextKind, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
210
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
211 wxArrayString m_choiceKindChoices;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
212 m_choiceKind = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceKindChoices, 0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
213 m_choiceKind->SetSelection(0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
214 bSizerFilter->Add(m_choiceKind, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
215
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
216 bSizerTop->Add(bSizerFilter, 0, wxEXPAND, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
217
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
218 //--
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
219 m_dataViewListCtrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_VERT_RULES|wxDV_ROW_LINES);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
220 m_dataViewListColumnID = m_dataViewListCtrl->AppendTextColumn(wxT("ID"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
221 m_dataViewListColumnName = m_dataViewListCtrl->AppendTextColumn(wxT(" 名称"), wxDATAVIEW_CELL_INERT, 280, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
222 m_dataViewListColumnCity = m_dataViewListCtrl->AppendTextColumn(wxT("市町村"), wxDATAVIEW_CELL_INERT, -1, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
223 m_dataViewListColumnKind = m_dataViewListCtrl->AppendTextColumn(wxT(" 区分"), wxDATAVIEW_CELL_INERT, -1, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
224 bSizerTop->Add(m_dataViewListCtrl, 1, wxALL|wxEXPAND, 5);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
225
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
226 this->SetSizer(bSizerTop);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
227 this->Layout();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
228
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
229 this->Centre(wxBOTH);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
230 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
231
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
232 void MainFrame::LoadConfig()
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
233 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
234 wxFileSystem::AddHandler(new wxZipFSHandler);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
235 wxFileSystem* fs = new wxFileSystem;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
236 wxString archive = wxT("iklist.lib");
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
237
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
238 // Load Password
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
239 wxString pwfn = wxT("p8wypswd5c0x");
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
240 wxFSFile* pwfile = fs->OpenFile(archive + wxT("#zip:") + pwfn);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
241 if (pwfile) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
242 wxInputStream *zstream = pwfile->GetStream();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
243 wxTextInputStream tstream(*zstream);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
244 m_pswd = tstream.ReadLine();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
245 delete pwfile;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
246 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
247
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
248 // Load List
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
249 wxString listfn = wxT("q534list8mor");
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
250 wxFSFile* listfile = fs->OpenFile(archive + wxT("#zip:") + listfn);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
251 if (listfile) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
252 wxInputStream *zstream = listfile->GetStream();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
253 wxTextInputStream tstream(*zstream);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
254 for (int i = 0; i < 541; i++) { //#########################
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
255 //while (!zstream->Eof()) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
256 m_data.Add(tstream.ReadLine());
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
257 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
258 delete listfile;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
259 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
260
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
261 // Set Filter
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
262 wxArrayString filter1, filter2;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
263 filter1.Add(wxEmptyString);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
264 filter2.Add(wxEmptyString);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
265 for (int i = 0; i < m_data.GetCount(); i++) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
266 wxArrayString str = wxSplit(m_data[i], ':');
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
267 bool flag1, flag2;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
268 for (int j = 0; j < filter1.GetCount(); j++) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
269 if (filter1[j].IsSameAs(str[1])) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
270 flag1 = false;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
271 } else {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
272 flag1 = true;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
273 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
274 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
275 if (flag1) filter1.Add(str[1]);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
276
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
277 for (int j = 0; j < filter2.GetCount(); j++) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
278 if (filter2[j].IsSameAs(str[2])) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
279 flag2 = false;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
280 } else {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
281 flag2 = true;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
282 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
283 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
284 if (flag2) filter2.Add(str[2]);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
285 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
286
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
287 for (int i = 0; i < filter1.GetCount(); i++) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
288 m_choiceCity->Append(filter1[i]);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
289 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
290 m_choiceCity->SetSelection(0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
291 for (int i = 0; i < filter2.GetCount(); i++) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
292 m_choiceKind->Append(filter2[i]);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
293 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
294 m_choiceKind->SetSelection(0);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
295
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
296 delete fs;
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
297 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
298
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
299 void MainFrame::CheckPassword()
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
300 {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
301 if (m_textCtrl->GetValue().IsSameAs(m_pswd, true)) {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
302 m_staticTextWord->SetLabel(wxT("キーワード:"));
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
303 m_searchCtrl->SetSize(200, -1);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
304 m_textCtrl->SetSize(0, -1);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
305 m_textCtrl->Hide();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
306 m_button->SetSize(0, -1);
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
307 m_button->Hide();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
308 SetList();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
309 } else {
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
310 m_textCtrl->SetBackgroundColour(wxColour(255, 160, 160));
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
311 m_textCtrl->SelectAll();
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
312 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
313 }
520044113ef0 beta release.
pyon <pyon@macmini>
parents:
diff changeset
314