view src/search.cpp @ 0:615a15029602 default tip

first commit.
author pyon@macmini
date Sun, 10 Nov 2019 08:39:41 +0900
parents
children
line wrap: on
line source

/* Filename   : search.cpp
   Last Change: 2019-11-08 金 14:23:23.
                     by Takayuki Mutoh
*/
#include "search.h"

SearcherFrame::SearcherFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) 
	: wxFrame(parent, id, title, pos, size, style)
{
	this->SetSizeHints(wxDefaultSize, wxDefaultSize);
	this->SetBackgroundColour(wxColour(225, 225, 225));

	m_menubar = new wxMenuBar(0);
	m_menuFile = new wxMenu();
	wxMenuItem* m_menuItemUpdateDB;
	m_menuItemUpdateDB = new wxMenuItem(m_menuFile, ID_MN_UPDB, wxString(wxT("データベース更新")) , wxEmptyString, wxITEM_NORMAL);
	m_menuFile->Append(m_menuItemUpdateDB);
	m_menuItemUpdateDB->Enable(false);

	wxMenuItem* m_menuItemUser;
	m_menuItemUser = new wxMenuItem(m_menuFile, ID_MN_USER, wxString(wxT("ユーザ管理")) , wxEmptyString, wxITEM_NORMAL);
	m_menuFile->Append(m_menuItemUser);
	m_menuItemUser->Enable(false);

	wxMenuItem* m_menuItemSetting;
	m_menuItemSetting = new wxMenuItem(m_menuFile, ID_MN_SETTING, wxString(wxT("設定")) , wxEmptyString, wxITEM_NORMAL);
	m_menuFile->Append(m_menuItemSetting);
	m_menuItemSetting->Enable(false);

	m_menuFile->AppendSeparator();

	wxMenuItem* m_menuItemVersion;
	m_menuItemVersion = new wxMenuItem(m_menuFile, ID_MN_VERSION, wxString(wxT("バージョン")) , wxEmptyString, wxITEM_NORMAL);
	m_menuFile->Append(m_menuItemVersion);

	m_menubar->Append(m_menuFile, wxT("ファイル"));

	m_menuTool = new wxMenu();
	wxMenuItem* m_menuItemKana;
	m_menuItemKana = new wxMenuItem(m_menuTool, ID_MN_KANA, wxString(wxT("カナ検索")) + wxT('\t') + wxT("ALT-k"), wxEmptyString, wxITEM_NORMAL);
	m_menuTool->Append(m_menuItemKana);
	m_menuItemKana->Enable(false);

	wxMenuItem* m_menuItemHist;
	m_menuItemHist = new wxMenuItem(m_menuTool, ID_MN_HIST, wxString(wxT("検索履歴")) + wxT('\t') + wxT("ALT-H"), wxEmptyString, wxITEM_NORMAL);
	m_menuTool->Append(m_menuItemHist);
	m_menuItemHist->Enable(false);

	m_menuTool->AppendSeparator();

	wxMenuItem* m_menuItemIndex;
	m_menuItemIndex = new wxMenuItem(m_menuTool, ID_MN_INDEX, wxString(wxT("インデックス")) , wxEmptyString, wxITEM_NORMAL);
	m_menuTool->Append(m_menuItemIndex);
	m_menuItemIndex->Enable(false);

	wxMenuItem* m_menuItemBPrint;
	m_menuItemBPrint = new wxMenuItem(m_menuTool, ID_MN_BPRINT, wxString(wxT("バッチ印刷")) , wxEmptyString, wxITEM_NORMAL);
	m_menuTool->Append(m_menuItemBPrint);
	m_menuItemBPrint->Enable(false);

	wxMenuItem* m_menuItemMergeMove;
	m_menuItemMergeMove = new wxMenuItem(m_menuTool, ID_MN_MRGMV, wxString(wxT("資料作成")) , wxEmptyString, wxITEM_NORMAL);
	m_menuTool->Append(m_menuItemMergeMove);
	m_menuItemMergeMove->Enable(false);

	m_menubar->Append(m_menuTool, wxT("ツール"));

	this->SetMenuBar(m_menubar);

	wxGridBagSizer* gbSizer;
	gbSizer = new wxGridBagSizer(0, 0);
	gbSizer->SetFlexibleDirection(wxBOTH);
	gbSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);

	m_staticTextCommand = new wxStaticText(this, wxID_ANY, wxT("コマンド?"), wxDefaultPosition, wxDefaultSize, 0);
	gbSizer->Add(m_staticTextCommand, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5);

	m_searchCtrl = new wxSearchCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
	#ifndef __WXMAC__
	m_searchCtrl->ShowSearchButton(true);
	#endif
	m_searchCtrl->ShowCancelButton(false);
	gbSizer->Add(m_searchCtrl, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL, 5);

	m_staticTextMessage = new wxStaticText(this, wxID_ANY, wxT("メッセージ"), wxDefaultPosition, wxDefaultSize, 0);
	gbSizer->Add(m_staticTextMessage, wxGBPosition(1, 0), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5);

	m_textCtrlMessage = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
	gbSizer->Add(m_textCtrlMessage, wxGBPosition(1, 1), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5);

	m_staticTextResult = new wxStaticText(this, wxID_ANY, wxT("検索結果"), wxDefaultPosition, wxDefaultSize, 0);
	gbSizer->Add(m_staticTextResult, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALL|wxALIGN_RIGHT, 5);

	m_dataViewListCtrlResult = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_HORIZ_RULES|wxDV_ROW_LINES|wxDV_SINGLE);
	m_dataViewListColumnNo   = m_dataViewListCtrlResult->AppendTextColumn(wxT("No  "), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_RIGHT), 0);
	m_dataViewListColumnDate = m_dataViewListCtrlResult->AppendTextColumn(wxT("日付"), wxDATAVIEW_CELL_INERT, 80, static_cast<wxAlignment>(wxALIGN_CENTER), 0);
	m_dataViewListColumnDir  = m_dataViewListCtrlResult->AppendTextColumn(wxT("場所"), wxDATAVIEW_CELL_INERT, 200, static_cast<wxAlignment>(wxALIGN_LEFT), 0);
	gbSizer->Add(m_dataViewListCtrlResult, wxGBPosition(2, 1), wxGBSpan(2, 1), wxALL|wxEXPAND, 5);

	m_bitmapLogo = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0);
	gbSizer->Add(m_bitmapLogo, wxGBPosition(3, 0), wxGBSpan(1, 1), wxALL|wxALIGN_BOTTOM, 5);

	gbSizer->AddGrowableCol(1);
	gbSizer->AddGrowableRow(2);

	this->SetSizer(gbSizer);
	this->Layout();

	this->Centre(wxBOTH);

	// Connect Events
	m_menuFile->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SearcherFrame::OnMenuVersion), this, m_menuItemVersion->GetId());
	m_searchCtrl->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(SearcherFrame::OnText), NULL, this);
	m_searchCtrl->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(SearcherFrame::OnSearch), NULL, this);
	m_dataViewListCtrlResult->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearcherFrame::OnDclickResult), NULL, this);
}

SearcherFrame::~SearcherFrame()
{
	// Disconnect Events
	m_searchCtrl->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(SearcherFrame::OnText), NULL, this);
	m_searchCtrl->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(SearcherFrame::OnSearch), NULL, this);
	m_dataViewListCtrlResult->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearcherFrame::OnDclickResult), NULL, this);
}