# HG changeset patch
# User pyon@macmini
# Date 1573342781 -32400
# Node ID 615a1502960210941e36e42e929523fb48ac9a40
first commit.
diff -r 000000000000 -r 615a15029602 LeSearcher.fbp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LeSearcher.fbp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,2519 @@
+
+
+
+
+
diff -r 000000000000 -r 615a15029602 Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,150 @@
+# Makefile for wxWidgets Application
+# Last Change: 2019-11-08 金 14:26:27.
+# by Takayuki Mutoh
+#
+
+PROGNAME = lesearcher
+
+### Variables ###
+CXX = g++
+#ARCH = 32
+ARCH = 64
+LOCAL = C:/msys64/home/CL0137/local$(ARCH)
+OBJDIR = ./obj$(ARCH)
+vpath %.cpp ./src
+vpath %.h ./include
+
+# For Microsoft Windows
+ifdef COMSPEC
+WXCXXFLAGS = -I$(LOCAL)/lib/wx/include/msw-unicode-static-3.1 -I$(LOCAL)/include/wx-3.1 -D_LARGEFILE_SOURCE=unknown -D__WXMSW__ -mthreads
+WXLIBS = -L$(LOCAL)/lib -Wl,--subsystem,windows -mwindows -lwx_mswu_xrc-3.1 -lwx_mswu_qa-3.1 -lwx_baseu_net-3.1 -lwx_mswu_html-3.1 -lwx_mswu_adv-3.1 -lwx_mswu_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu-3.1 -lwxtiff-3.1 -lwxjpeg-3.1 -lwxpng-3.1 -lwxregexu-3.1 -lwxscintilla-3.1 -lwxexpat-3.1 -lwxzlib-3.1 -lrpcrt4 -loleaut32 -lole32 -luuid -luxtheme -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lcomdlg32 -ladvapi32 -lversion -lwsock32 -lgdi32 -loleacc
+LIBS = $(WXLIBS) -static
+
+EXECUTABLE = $(PROGNAME).exe
+
+# For Apple OSX
+else
+WXCXXFLAGS = -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/lib/wx/include/osx_cocoa-unicode-3.1 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/include/wx-3.1 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__
+WXLIBS = -L/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.1/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -lwx_osx_cocoau_xrc-3.1 -lwx_osx_cocoau_html-3.1 -lwx_osx_cocoau_qa-3.1 -lwx_osx_cocoau_adv-3.1 -lwx_osx_cocoau_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu_net-3.1 -lwx_baseu-3.1
+LIBS = $(WXLIBS)
+
+EXECUTABLE = $(PROGNAME).app/Contents/PkgInfo
+
+endif
+
+CXXFLAGS = $(WXCXXFLAGS) -I./include -I./image
+
+
+OBJ = $(OBJDIR)/main.o \
+ $(OBJDIR)/search.o \
+ $(OBJDIR)/preview.o \
+ $(OBJDIR)/setting.o \
+ $(OBJDIR)/index.o \
+ $(OBJDIR)/update.o \
+ $(OBJDIR)/user.o \
+ $(OBJDIR)/bprint.o \
+ $(OBJDIR)/mmove.o
+ #$(OBJDIR)/appconf.o \
+ #$(OBJDIR)/util.o \
+
+ifdef COMSPEC
+OBJMSW = $(OBJ) $(OBJDIR)/sample_rc.o
+endif
+
+
+### Targets ###
+
+all: $(EXECUTABLE)
+ @ echo "----------------------------"
+ @ echo " making $(ARCH) bit program "
+ @ echo "----------------------------"
+
+$(PROGNAME): $(OBJ) $(OBJMSW)
+ $(call process-message, $(EXECUTABLE))
+ $(CXX) $^ -o $@ $(LIBS)
+
+$(OBJDIR)/main.o: main.cpp main.h search.h
+ $(call process-message, "main.o")
+ -mkdir -p $(OBJDIR)
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/search.o: search.cpp search.h
+ $(call process-message, "search.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/preview.o: preview.cpp preview.h
+ $(call process-message, "preview.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/setting.o: setting.cpp setting.h
+ $(call process-message, "setting.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/index.o: index.cpp index.h
+ $(call process-message, "index.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/update.o: update.cpp update.h
+ $(call process-message, "update.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/user.o: user.cpp user.h
+ $(call process-message, "user.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/bprint.o: bprint.cpp bprint.h
+ $(call process-message, "bprint.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/mmove.o: mmove.cpp mmove.h
+ $(call process-message, "mmove.o")
+ $(CXX) -c $< -o $@ $(CXXFLAGS)
+
+
+# for icon
+ifdef COMSPEC
+$(OBJDIR)/sample_rc.o: sample.rc
+ windres -i sample.rc -o $@ -I$(LOCAL)/include/wx-3.1
+endif
+
+$(EXECUTABLE): $(PROGNAME)
+ifdef COMSPEC
+ strip --strip-all $(EXECUTABLE)
+ ./$(PROGNAME).exe
+else
+ -mkdir -p $(PROGNAME).app/Contents
+ -mkdir -p $(PROGNAME).app/Contents/MacOS
+ -mkdir -p $(PROGNAME).app/Contents/Resources
+
+ sed -e "s/IDENTIFIER/$(PROGNAME)/" \
+ -e "s/EXECUTABLE/$(PROGNAME)/" \
+ -e "s/VERSION/0.0/" \
+ Info.plist.in > $(PROGNAME).app/Contents/Info.plist
+
+ echo "APPL????" > $(EXECUTABLE)
+
+ ln -f $(PROGNAME) $(PROGNAME).app/Contents/MacOS/$(PROGNAME)
+ cp -f wxmac.icns $(PROGNAME).app/Contents/Resources/wxmac.icns
+
+ open $(PROGNAME).app
+endif
+
+# for archive
+TARFILE=$(shell date "+del_%Y%m%d.tgz")
+tgz:
+ tar cvfz $(TARFILE) src include Makefile TODO app.conf
+
+# clean
+clean:
+ rm -f $(PROGNAME) $(PROGNAME).exe
+ rm -f $(OBJDIR)/*.o
+ rm -rf $(PROGNAME).app
+
+# user function
+define process-message
+ @ echo ""
+ @ echo "===> $1 <==="
+endef
+
+.PHONY: all tgz clean
+
diff -r 000000000000 -r 615a15029602 app.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app.conf Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,47 @@
+[Search]
+geometry=111x222+11+22
+
+[Preview]
+geometry=111x222+11+22
+printzoom=100
+
+[Index]
+geometry=111x222+11+22
+
+[Mask]
+;name:cm-no:barcode
+set1=111x222+11+22:112x222+11+22:113x222+11+22
+set2=111x222+11+22:112x222+11+22:113x222+11+22
+set3=111x222+11+22:112x222+11+22:113x222+11+22
+;;600dpi
+mask1=2180x90+1880+180
+mask2=1955x200+2545+180
+mask3=890x120+1970+330
+mask4=3910x1130+800+510
+
+[Marksheet]
+;name:hhsno:hhsno-mark
+set1=111x222+11+22:112x222+11+22:113x222+11+22
+set2=111x222+11+22:112x222+11+22:113x222+11+22
+set3=111x222+11+22:112x222+11+22:113x222+11+22
+;;600dpi
+hno=1200x200+2700+440
+name=1400x380+480+1040
+mhno=1200x1020+2700+620
+
+[UpdateDB]
+hhscsv=F:\\hhs.csv
+cmcsv=F:\\cm.csv
+
+[BatchPrint]
+geometry=111x222+11+22
+csv=F:\\hoge.csv
+
+[Net]
+server=192.168.21.5:80
+proxy=192.168.21.5:80
+
+[Ccn]
+ccn=pقP:pقQ:pقR:P:Q:R:用P:用Q:用R:ȂP:ȂQ:ȂR:ȂS:ȂT:ȂU
+sss=0000000031:0000000032:0000000033:0000000021:0000000022:0000000023:0000000041:0000000042:0000000043:0000000001:0000000002:0000000003:0000000004:0000000005:0000000006
+
diff -r 000000000000 -r 615a15029602 doc/TODO.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/TODO.txt Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,54 @@
+TODO List
+ Last Change: 2019-11-10 Sun 08:20:14.
+
+=======================================
+= クライアント側
+=======================================
+
+---------------------------------
+= le:seaarcher =
+---------------------------------
+<介護保険事務所 & 出先>
+* パスワード(id)は そのつどサーバで確認.
+* 対象のインデックスもそのつどサーバで取得.
+
+GET http://server:8080/search/userid:hhsno:date
+ > userid がバッドなら戻り値 ''
+ > n=00000000 でリスト & 氏名/住所(暗号化どうするか?)
+ n>00000000で画像(tif)
+
+* ユーザ/PC の権限により UpdateDB,Index,M&M,BPrint, UserMng のメニュー トグル
+GET http://server:8080/auth/userid
+ > 0. 管理者(7moon) 1,1,1,1, 1
+ > 1.事務所員(IPaddress) 0,1,1,1, 0
+ > 2. 調査員(userid) 0,0,0,0, 0
+
+<介護保険事務所のみ>
+* User Manager は双方向txt(utf8,圧縮なし)で送受信
+
+---------------------------------
+= merger & mover =
+---------------------------------
+<介護保険事務所のみ>
+* 審査会資料を残す tif 1ファイル
+ ビューワ作製必要
+* 申請書も tif 1ファイル
+ ビューワ作製必要
+
+* インデックス(差分)はtxtで送付,サーバで結合(ungzip & gzip)
+
+---------------------------------
+= index =
+---------------------------------
+<介護保険事務所のみ>
+* サーバで hhsdb と indexdb を紐付けし,gz にして送信
+
+ GET http://server:8080/index/
+
+=======================================
+= サーバ側 (Go)
+=======================================
+* userid をロード
+* index.gz をロード
+* hhsdb.gz をロード
+
diff -r 000000000000 -r 615a15029602 image/logo.png
Binary file image/logo.png has changed
diff -r 000000000000 -r 615a15029602 image/logo.xcf
Binary file image/logo.xcf has changed
diff -r 000000000000 -r 615a15029602 include/bprint.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/bprint.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,45 @@
+/* Filename : bprint.h
+ Last Change: 2019-11-08 金 14:19:58.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+#include
+
+class BPrintFrame : public wxFrame
+{
+ private:
+
+ protected:
+ enum
+ {
+ ID_BP_ADD = 1000,
+ ID_BP_DEL,
+ ID_BP_PRINT
+ };
+
+ wxDataViewListCtrl* m_dataViewListCtrl;
+ wxDataViewColumn* m_dataViewListColumnNo;
+ wxDataViewColumn* m_dataViewListColumnHhs;
+ wxDataViewColumn* m_dataViewListColumnName;
+ wxDataViewColumn* m_dataViewListColumnDir;
+ wxDataViewColumn* m_dataViewListColumnSet;
+ wxDataViewColumn* m_dataViewListColumnMask;
+ wxDataViewColumn* m_dataViewListColumnStat;
+ wxButton* m_buttonAdd;
+ wxButton* m_buttonDel;
+ wxButton* m_buttonPrint;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnAdd( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDelete( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnPrint( wxCommandEvent& event ) { event.Skip(); }
+
+ public:
+ BPrintFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("バッチ印刷"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~BPrintFrame();
+};
+
diff -r 000000000000 -r 615a15029602 include/index.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/index.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,21 @@
+/* Filename : index.h
+ Last Change: 2019-11-08 金 14:16:06.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+class IndexFrame : public wxFrame
+{
+ private:
+
+ protected:
+
+ public:
+ IndexFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("インデックス"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~IndexFrame();
+};
+
+
diff -r 000000000000 -r 615a15029602 include/main.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/main.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,25 @@
+/* Filename : main.h
+ Last Change: 2019-11-08 金 14:16:12.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+
+// private classes
+// Define a new application type, each program should derive a class from wxApp
+class MyApp : public wxApp
+{
+ DECLARE_CLASS( MyApp )
+ private:
+
+ public:
+ MyApp();
+ ~MyApp();
+
+ virtual bool OnInit();
+ virtual int OnExit();
+};
+
+DECLARE_APP( MyApp )
+
diff -r 000000000000 -r 615a15029602 include/mmove.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/mmove.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,21 @@
+/* Filename : mmover.h
+ Last Change: 2019-11-08 金 14:16:26.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+
+class MergeMoveFrame : public wxFrame
+{
+ private:
+
+ protected:
+
+ public:
+ MergeMoveFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("資料作成"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~MergeMoveFrame();
+};
+
diff -r 000000000000 -r 615a15029602 include/preview.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/preview.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,54 @@
+/* Filename : preview.h
+ Last Change: 2019-11-08 金 14:18:50.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+class PreviewFrame : public wxFrame
+{
+ private:
+
+ protected:
+ enum
+ {
+ ID_PRV_DATE = 1000,
+ ID_PRV_PRIV,
+ ID_PRV_NEXT,
+ ID_PRV_ZOOM,
+ ID_PRV_MASK,
+ ID_PRV_PRINT
+ };
+
+ wxScrolledWindow* m_scrolledWindowCanvas;
+ wxChoice* m_choiceDate;
+ wxButton* m_buttonPriv;
+ wxButton* m_buttonNext;
+ wxSlider* m_sliderZoom;
+ wxChoice* m_choiceMask;
+ wxChoice* m_choicePage;
+ wxSpinCtrl* m_spinCtrlPZoom;
+ wxButton* m_buttonPrint;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnPriv( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnNext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnScroll( wxScrollEvent& event ) { event.Skip(); }
+ virtual void OnMaskChoice( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnPageChoice( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnPrint( wxCommandEvent& event ) { event.Skip(); }
+
+ public:
+ PreviewFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("プレビュー"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,700 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~PreviewFrame();
+};
+
diff -r 000000000000 -r 615a15029602 include/search.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/search.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,71 @@
+/* Filename : search.h
+ Last Change: 2019-11-08 金 14:16:50.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+class SearcherFrame : public wxFrame
+{
+ private:
+
+ protected:
+ enum
+ {
+ ID_MN_UPDB = 1000,
+ ID_MN_USER,
+ ID_MN_SETTING,
+ ID_MN_VERSION,
+ ID_MN_KANA,
+ ID_MN_HIST,
+ ID_MN_INDEX,
+ ID_MN_BPRINT,
+ ID_MN_MRGMV
+ };
+
+ wxMenuBar* m_menubar;
+ wxMenu* m_menuFile;
+ wxMenu* m_menuTool;
+ wxStaticText* m_staticTextCommand;
+ wxSearchCtrl* m_searchCtrl;
+ wxStaticText* m_staticTextMessage;
+ wxTextCtrl* m_textCtrlMessage;
+ wxStaticText* m_staticTextResult;
+ wxDataViewListCtrl* m_dataViewListCtrlResult;
+ wxDataViewColumn* m_dataViewListColumnNo;
+ wxDataViewColumn* m_dataViewListColumnDate;
+ wxDataViewColumn* m_dataViewListColumnDir;
+ wxStaticBitmap* m_bitmapLogo;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnMenuVersion( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnText( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSearch( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDclickResult( wxDataViewEvent& event ) { event.Skip(); }
+
+ public:
+ SearcherFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Le Searcher"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 420,440 ), long style = wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxTAB_TRAVERSAL );
+ ~SearcherFrame();
+};
+
+
diff -r 000000000000 -r 615a15029602 include/setting.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/setting.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,20 @@
+/* Filename : setting.h
+ Last Change: 2019-11-08 金 14:17:07.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+
+
+class SettingFrame : public wxFrame
+{
+ private:
+
+ protected:
+
+ public:
+ SettingFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("設定"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~SettingFrame();
+};
diff -r 000000000000 -r 615a15029602 include/update.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/update.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,35 @@
+/* Filename : update.h
+ Last Change: 2019-11-08 金 14:19:19.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+#include
+
+class UpdateDBFrame : public wxFrame
+{
+ private:
+
+ protected:
+ enum
+ {
+ ID_UPDB = 1000
+ };
+
+ wxStaticText* m_staticTextHhs;
+ wxFilePickerCtrl* m_filePickerHhs;
+ wxStaticText* m_staticText5;
+ wxFilePickerCtrl* m_filePickerCM;
+ wxButton* m_buttonUpdate;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); }
+
+ public:
+ UpdateDBFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("DB更新"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 430,130 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~UpdateDBFrame();
+};
+
diff -r 000000000000 -r 615a15029602 include/user.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/user.h Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,42 @@
+/* Filename : user.h
+ Last Change: 2019-11-08 金 14:19:40.
+ by Takayuki Mutoh
+*/
+#pragma once
+
+#include
+#include
+#include
+#include
+
+class UserFrame : public wxFrame
+{
+ private:
+
+ protected:
+ enum
+ {
+ ID_USR_ADD = 1000,
+ ID_USR_DEL,
+ ID_USR_SAVE
+ };
+
+ wxDataViewListCtrl* m_dataViewListCtrlUser;
+ wxDataViewColumn* m_dataViewListColumnId;
+ wxDataViewColumn* m_dataViewListColumnGroup;
+ wxDataViewColumn* m_dataViewListColumnName;
+ wxButton* m_buttonAdd;
+ wxButton* m_buttonDel;
+ wxButton* m_buttonSave;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnAdd( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDelete( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSave( wxCommandEvent& event ) { event.Skip(); }
+
+ public:
+ UserFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("ユーザ管理"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 422,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+ ~UserFrame();
+};
+
+
diff -r 000000000000 -r 615a15029602 lsserver.go
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lsserver.go Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,189 @@
+/*
+ server.go : server-program.
+ Version : 0.1
+ Last Change: 2019-11-08 金 17:47:26.
+*/
+package main
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net/http"
+ "os"
+ "strconv"
+ "strings"
+)
+
+const (
+ version = "0.1"
+
+ userdb = "user.gz.txt"
+ hhsdb = "hhsdb.gz.txt"
+ indexdb = "indexdb.gz.txt"
+)
+
+var (
+ server string
+
+ userhash map[string]user
+ hhshash map[string]hhs
+)
+
+type user struct {
+ id string
+ group int
+ name string
+}
+
+type hhs struct {
+ no string
+ name string
+ kana string
+ addr string
+ birth string
+ sex string
+ dates []string
+}
+
+func (h *hhs) Info() string {
+ dates := ""
+ for _, d := range h.dates {
+ dates += ":" + d
+ }
+ s := []string{h.name, h.addr, dates}
+ return strings.Join(s, ",")
+}
+
+func init() {
+ server = "localhost:80"
+}
+
+func main() {
+ load_user()
+ load_hhs()
+ load_index()
+
+ // start Web-server
+ fmt.Println("Le:Searcher-Server start [", server, "] ( version", version, ")")
+ http.HandleFunc("/auth/", auth_handler)
+ http.HandleFunc("/search/", search_handler)
+ http.HandleFunc("/index/", index_handler)
+ log.Fatal(http.ListenAndServe(server, nil))
+}
+
+// DB-Load Functions
+func load_user() error {
+ // userid:n
+ userhash = make(map[string]user)
+
+ f, err := os.OpenFile(userdb, os.O_RDONLY, 0644)
+ if err != nil {
+ return err
+ }
+ scanner := bufio.NewScanner(f)
+ for scanner.Scan() {
+ s := strings.Split(scanner.Text(), ":")
+ g, _ := strconv.Atoi(s[1])
+ u := user{id: s[0], group: g, name: s[2]}
+ userhash[s[0]] = u
+ }
+ if err := scanner.Err(); err != nil {
+ fmt.Fprintln(os.Stderr, "reading userdb", err)
+ }
+ if err := f.Close(); err != nil {
+ return err
+ }
+ return nil
+}
+
+func load_hhs() error {
+ hhshash = make(map[string]hhs)
+
+ f, err := os.OpenFile(hhsdb, os.O_RDONLY, 0644)
+ if err != nil {
+ return err
+ }
+ scanner := bufio.NewScanner(f)
+ for scanner.Scan() {
+ s := strings.Split(scanner.Text(), ",")
+ h := hhs{no: s[0], name: s[1]}
+ hhshash[s[0]] = h
+ }
+ if err := scanner.Err(); err != nil {
+ fmt.Fprintln(os.Stderr, "reading hhsdb", err)
+ }
+ if err := f.Close(); err != nil {
+ return err
+ }
+ return nil
+}
+
+func load_index() error {
+ // hhsno:date
+ f, err := os.OpenFile(indexdb, os.O_RDONLY, 0644)
+ if err != nil {
+ return err
+ }
+ scanner := bufio.NewScanner(f)
+ for scanner.Scan() {
+ s := strings.Split(scanner.Text(), ":")
+ h := hhshash[s[0]]
+ h.dates = append(h.dates, s[1])
+ hhshash[s[0]] = h
+ }
+ if err := scanner.Err(); err != nil {
+ fmt.Fprintln(os.Stderr, "reading indexdb", err)
+ }
+ if err := f.Close(); err != nil {
+ return err
+ }
+ return nil
+}
+
+// HTTP Handlers
+func auth_handler(w http.ResponseWriter, r *http.Request) {
+ // Toggle Le:Searcher-Client menu
+ // userid : UpdateDB, Index, M&M, BPrint, UserMng
+ // 7moon : 1, 1, 1, 1, 1 => manager :0
+ // kaigo : 0, 1, 1, 1, 0 => staff :1 # acl by IPaddress
+ // chosha : 0, 0, 0, 0, 0 => chosa :2
+ fmt.Println("auth")
+
+ id := r.URL.Path[len("/auth/"):]
+ fmt.Println(id)
+ g := 0
+ switch g {
+ case 0:
+ w.Write([]byte("0"))
+ case 1:
+ w.Write([]byte("1"))
+ default:
+ w.Write([]byte("2"))
+ }
+}
+
+func search_handler(w http.ResponseWriter, r *http.Request) {
+ // /search/userid:hhsno:date
+ // n=00000000 -> name & address & dates
+ // n>00000000 -> tif image
+ fmt.Println("search")
+
+ p := r.URL.Path[len("/search/"):]
+ s := strings.Split(p, ":")
+ if false { // invalid user
+ http.NotFound(w, r)
+ return
+ }
+ if strings.Compare(s[1], "00000000") == 0 {
+ h := hhshash[s[1]]
+ w.Write([]byte(h.Info()))
+ return
+ }
+
+}
+
+func index_handler(w http.ResponseWriter, r *http.Request) {
+ fmt.Println("index")
+}
+
diff -r 000000000000 -r 615a15029602 sample.ico
Binary file sample.ico has changed
diff -r 000000000000 -r 615a15029602 sample.rc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sample.rc Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: samples/samples.rc
+// Purpose: a standard Win32 .rc file for the wxWindows samples
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 04.08.03
+// RCS-ID: $Id: sample.rc 22863 2003-08-14 14:08:53Z VS $
+// Copyright: (c) 2003 Vadim Zeitlin
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// this minimal resource file is all what is needed for most of the wxWindows
+// samples
+
+// note that the icon used by the Explorer (i.e. the programs icon) is the
+// first icon in the executable and the icons are sorted both by their order
+// (Win9x) and by alphabetically (!) (NT), so put this icon first and give it
+// a name starting with "a"
+aaaaaaaa ICON "sample.ico"
+
+// this icon is used with wxFrame::SetIcon()
+sample ICON "sample.ico"
+
+// set this to 1 if you don't want to use manifest resource (manifest resource
+// is needed to enable visual styles on Windows XP - see docs/msw/winxp.txt
+// for more information)
+#define wxUSE_NO_MANIFEST 0
+
+// this is not always needed but doesn't hurt (except making the executable
+// very slightly larger): this file contains the standard icons, cursors, ...
+#include "wx/msw/wx.rc"
+
diff -r 000000000000 -r 615a15029602 src/bprint.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/bprint.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,61 @@
+/* Filename : bprint.cpp
+ Last Change: 2019-11-08 金 14:22:36.
+ by Takayuki Mutoh
+*/
+#include "bprint.h"
+
+BPrintFrame::BPrintFrame(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(245, 195, 240));
+
+ wxGridBagSizer* gbSizer;
+ gbSizer = new wxGridBagSizer(0, 0);
+ gbSizer->SetFlexibleDirection(wxBOTH);
+ gbSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
+
+ m_dataViewListCtrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
+ m_dataViewListColumnNo = m_dataViewListCtrl->AppendTextColumn(wxT("No "), wxDATAVIEW_CELL_INERT, 40, static_cast(wxALIGN_RIGHT), wxDATAVIEW_COL_RESIZABLE);
+ m_dataViewListColumnHhs = m_dataViewListCtrl->AppendTextColumn(wxT("被保番"), wxDATAVIEW_CELL_INERT, 80, static_cast(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE);
+ m_dataViewListColumnName = m_dataViewListCtrl->AppendTextColumn(wxT(" 氏名"), wxDATAVIEW_CELL_INERT, 120, static_cast(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE);
+ m_dataViewListColumnDir = m_dataViewListCtrl->AppendTextColumn(wxT(" 場所"), wxDATAVIEW_CELL_INERT, 200, static_cast(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE);
+ m_dataViewListColumnSet = m_dataViewListCtrl->AppendTextColumn(wxT("設定"), wxDATAVIEW_CELL_INERT, 20, static_cast(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE);
+ m_dataViewListColumnMask = m_dataViewListCtrl->AppendToggleColumn(wxT("マスク"), wxDATAVIEW_CELL_INERT, 20, static_cast(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE);
+ m_dataViewListColumnStat = m_dataViewListCtrl->AppendProgressColumn(wxT("状態"), wxDATAVIEW_CELL_INERT, 80, static_cast(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE);
+ gbSizer->Add(m_dataViewListCtrl, wxGBPosition(0, 0), wxGBSpan(3, 1), wxALL|wxEXPAND, 5);
+
+ m_buttonAdd = new wxButton(this, ID_BP_ADD, wxT("追加"), wxDefaultPosition, wxDefaultSize, 0);
+ gbSizer->Add(m_buttonAdd, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_buttonDel = new wxButton(this, ID_BP_DEL, wxT("削除"), wxDefaultPosition, wxDefaultSize, 0);
+ gbSizer->Add(m_buttonDel, wxGBPosition(1, 1), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_buttonPrint = new wxButton(this, ID_BP_PRINT, wxT("印刷"), wxDefaultPosition, wxDefaultSize, 0);
+ gbSizer->Add(m_buttonPrint, wxGBPosition(2, 1), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+
+ gbSizer->AddGrowableCol(0);
+ gbSizer->AddGrowableRow(2);
+
+ this->SetSizer(gbSizer);
+ this->Layout();
+
+ this->Centre(wxBOTH);
+
+ // Connect Events
+ m_buttonAdd->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BPrintFrame::OnAdd), NULL, this);
+ m_buttonDel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BPrintFrame::OnDelete), NULL, this);
+ m_buttonPrint->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BPrintFrame::OnPrint), NULL, this);
+}
+
+BPrintFrame::~BPrintFrame()
+{
+ // Disconnect Events
+ m_buttonAdd->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BPrintFrame::OnAdd), NULL, this);
+ m_buttonDel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BPrintFrame::OnDelete), NULL, this);
+ m_buttonPrint->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BPrintFrame::OnPrint), NULL, this);
+
+}
+
+
diff -r 000000000000 -r 615a15029602 src/index.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/index.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,20 @@
+/* Filename : index.cpp
+ Last Change: 2019-11-08 金 14:22:42.
+ by Takayuki Mutoh
+*/
+#include "index.h"
+
+IndexFrame::IndexFrame(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->Centre(wxBOTH);
+}
+
+IndexFrame::~IndexFrame()
+{
+}
+
+
diff -r 000000000000 -r 615a15029602 src/main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,44 @@
+/* Filename : main.cpp
+ Last Change: 2019-11-08 金 13:50:16.
+ by Takayuki Mutoh
+*/
+
+#include "main.h"
+#include "search.h"
+
+IMPLEMENT_APP(MyApp)
+
+IMPLEMENT_CLASS(MyApp, wxApp)
+
+MyApp::MyApp()
+{
+}
+MyApp::~MyApp()
+{
+}
+
+bool MyApp::OnInit()
+{
+ if ( !wxApp::OnInit() ) return false;
+
+ wxImage::AddHandler( new wxJPEGHandler );
+ /*
+ wxImage::AddHandler( new wxPNGHandler );
+
+ AppConf appconf;
+ wxRect rect = appconf.LoadRect();
+ */
+ // Main Window
+ SearcherFrame *searchframe = new SearcherFrame(NULL, wxID_ANY, "Le Searcher", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE);
+ //MainFrame *mainframe = new MainFrame(NULL, wxID_ANY, "Le Searcher", wxPoint( rect.x, rect.y ), rect.GetSize(), wxDEFAULT_FRAME_STYLE );
+ searchframe->Show(true);
+ searchframe->Raise();
+
+ return true;
+}
+
+int MyApp::OnExit()
+{
+ return 0;
+}
+
diff -r 000000000000 -r 615a15029602 src/mmove.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/mmove.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,19 @@
+/* Filename : mmove.cpp
+ Last Change: 2019-11-08 金 14:22:28.
+ by Takayuki Mutoh
+*/
+#include "mmove.h"
+
+MergeMoveFrame::MergeMoveFrame(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->Centre(wxBOTH);
+}
+
+MergeMoveFrame::~MergeMoveFrame()
+{
+}
+
diff -r 000000000000 -r 615a15029602 src/preview.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/preview.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,99 @@
+/* Filename : preview.cpp
+ Last Change: 2019-11-08 金 14:25:42.
+ by Takayuki Mutoh
+*/
+#include "preview.h"
+
+PreviewFrame::PreviewFrame(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(180, 200, 140));
+
+ wxGridBagSizer* gbSizer;
+ gbSizer = new wxGridBagSizer(0, 0);
+ gbSizer->SetFlexibleDirection(wxBOTH);
+ gbSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
+
+ m_scrolledWindowCanvas = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL);
+ m_scrolledWindowCanvas->SetScrollRate(5, 5);
+ gbSizer->Add(m_scrolledWindowCanvas, wxGBPosition(0, 0), wxGBSpan(9, 1), wxEXPAND | wxALL, 5);
+
+ wxArrayString m_choiceDateChoices;
+ m_choiceDate = new wxChoice(this, ID_PRV_DATE, wxDefaultPosition, wxDefaultSize, m_choiceDateChoices, 0);
+ m_choiceDate->SetSelection(0);
+ gbSizer->Add(m_choiceDate, wxGBPosition(0, 1), wxGBSpan(1, 2), wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5);
+
+ m_buttonPriv = new wxButton(this, ID_PRV_PRIV, wxT("< 前へ"), wxDefaultPosition, wxSize(50,-1), 0);
+ gbSizer->Add(m_buttonPriv, wxGBPosition(1, 1), wxGBSpan(1, 1), wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_buttonNext = new wxButton(this, ID_PRV_NEXT, wxT("次へ >"), wxDefaultPosition, wxSize(50,-1), 0);
+ gbSizer->Add(m_buttonNext, wxGBPosition(1, 2), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_sliderZoom = new wxSlider(this, ID_PRV_ZOOM, 0, 0, 100, wxDefaultPosition, wxSize(100,-1), wxSL_HORIZONTAL);
+ gbSizer->Add(m_sliderZoom, wxGBPosition(2, 1), wxGBSpan(1, 2), wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
+
+ wxString m_choiceMaskChoices[] = { wxT("マスクしない"), wxT("マスクする") };
+ int m_choiceMaskNChoices = sizeof(m_choiceMaskChoices) / sizeof(wxString);
+ m_choiceMask = new wxChoice(this, ID_PRV_MASK, wxDefaultPosition, wxSize(100,-1), m_choiceMaskNChoices, m_choiceMaskChoices, 0);
+ m_choiceMask->SetSelection(0);
+ gbSizer->Add(m_choiceMask, wxGBPosition(4, 1), wxGBSpan(1, 2), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ wxString m_choicePageChoices[] = { wxT("すべて"), wxT("表示ページのみ") };
+ int m_choicePageNChoices = sizeof(m_choicePageChoices) / sizeof(wxString);
+ m_choicePage = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxSize(100,-1), m_choicePageNChoices, m_choicePageChoices, 0);
+ m_choicePage->SetSelection(0);
+ gbSizer->Add(m_choicePage, wxGBPosition(5, 1), wxGBSpan(1, 2), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_spinCtrlPZoom = new wxSpinCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(50,-1), wxSP_ARROW_KEYS, 50, 150, 100);
+ gbSizer->Add(m_spinCtrlPZoom, wxGBPosition(6, 1), wxGBSpan(1, 2), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_buttonPrint = new wxButton(this, ID_PRV_PRINT, wxT("印刷"), wxDefaultPosition, wxSize(100,-1), 0);
+ gbSizer->Add(m_buttonPrint, wxGBPosition(7, 1), wxGBSpan(1, 2), wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+
+ gbSizer->AddGrowableCol(0);
+ gbSizer->AddGrowableRow(3);
+
+ this->SetSizer(gbSizer);
+ this->Layout();
+
+ this->Centre(wxBOTH);
+
+ // Connect Events
+ m_buttonPriv->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PreviewFrame::OnPriv), NULL, this);
+ m_buttonNext->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PreviewFrame::OnNext), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_TOP, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_LINEUP, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_PAGEUP, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Connect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_choiceMask->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(PreviewFrame::OnMaskChoice), NULL, this);
+ m_choicePage->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(PreviewFrame::OnPageChoice), NULL, this);
+ m_buttonPrint->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PreviewFrame::OnPrint), NULL, this);
+}
+
+PreviewFrame::~PreviewFrame()
+{
+ // Disconnect Events
+ m_buttonPriv->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PreviewFrame::OnPriv), NULL, this);
+ m_buttonNext->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PreviewFrame::OnNext), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_TOP, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_LINEUP, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_PAGEUP, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_sliderZoom->Disconnect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(PreviewFrame::OnScroll), NULL, this);
+ m_choiceMask->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(PreviewFrame::OnMaskChoice), NULL, this);
+ m_choicePage->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(PreviewFrame::OnPageChoice), NULL, this);
+ m_buttonPrint->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PreviewFrame::OnPrint), NULL, this);
+
+}
+
diff -r 000000000000 -r 615a15029602 src/search.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/search.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,126 @@
+/* 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(wxALIGN_RIGHT), 0);
+ m_dataViewListColumnDate = m_dataViewListCtrlResult->AppendTextColumn(wxT("日付"), wxDATAVIEW_CELL_INERT, 80, static_cast(wxALIGN_CENTER), 0);
+ m_dataViewListColumnDir = m_dataViewListCtrlResult->AppendTextColumn(wxT("場所"), wxDATAVIEW_CELL_INERT, 200, static_cast(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);
+}
+
+
diff -r 000000000000 -r 615a15029602 src/setting.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/setting.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,18 @@
+/* Filename : setting.cpp
+ Last Change: 2019-11-08 金 14:23:14.
+ by Takayuki Mutoh
+*/
+#include "setting.h"
+
+SettingFrame::SettingFrame(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->Centre(wxBOTH);
+}
+
+SettingFrame::~SettingFrame()
+{
+}
+
diff -r 000000000000 -r 615a15029602 src/update.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/update.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,50 @@
+/* Filename : update.cpp
+ Last Change: 2019-11-08 金 14:23:08.
+ by Takayuki Mutoh
+*/
+#include "update.h"
+
+UpdateDBFrame::UpdateDBFrame(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(170, 170, 200));
+
+ wxFlexGridSizer* fgSizer;
+ fgSizer = new wxFlexGridSizer(0, 2, 0, 0);
+ fgSizer->SetFlexibleDirection(wxBOTH);
+ fgSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
+
+ m_staticTextHhs = new wxStaticText(this, wxID_ANY, wxT("被保険者CSV"), wxDefaultPosition, wxDefaultSize, 0);
+ fgSizer->Add(m_staticTextHhs, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5);
+
+ m_filePickerHhs = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxSize(300,-1), wxFLP_CHANGE_DIR|wxFLP_FILE_MUST_EXIST|wxFLP_SMALL|wxFLP_USE_TEXTCTRL);
+ fgSizer->Add(m_filePickerHhs, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ m_staticText5 = new wxStaticText(this, wxID_ANY, wxT("居宅介護支援CSV"), wxDefaultPosition, wxDefaultSize, 0);
+ fgSizer->Add(m_staticText5, 0, wxALL|wxALIGN_RIGHT, 5);
+
+ m_filePickerCM = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxSize(300,-1), wxFLP_CHANGE_DIR|wxFLP_SMALL|wxFLP_USE_TEXTCTRL);
+ fgSizer->Add(m_filePickerCM, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+ fgSizer->Add(0, 0, 1, wxEXPAND, 5);
+
+ m_buttonUpdate = new wxButton(this, ID_UPDB, wxT("更新処理"), wxDefaultPosition, wxDefaultSize, 0);
+ fgSizer->Add(m_buttonUpdate, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
+
+
+ this->SetSizer(fgSizer);
+ this->Layout();
+
+ this->Centre(wxBOTH);
+
+ // Connect Events
+ m_buttonUpdate->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UpdateDBFrame::OnUpdate), NULL, this);
+}
+
+UpdateDBFrame::~UpdateDBFrame()
+{
+ // Disconnect Events
+ m_buttonUpdate->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UpdateDBFrame::OnUpdate), NULL, this);
+
+}
diff -r 000000000000 -r 615a15029602 src/user.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/user.cpp Sun Nov 10 08:39:41 2019 +0900
@@ -0,0 +1,57 @@
+/* Filename : user.cpp
+ Last Change: 2019-11-08 金 14:22:49.
+ by Takayuki Mutoh
+*/
+#include "user.h"
+
+UserFrame::UserFrame(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(170, 200, 250));
+
+ wxGridBagSizer* gbSizer;
+ gbSizer = new wxGridBagSizer(0, 0);
+ gbSizer->SetFlexibleDirection(wxBOTH);
+ gbSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
+
+ m_dataViewListCtrlUser = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_HORIZ_RULES|wxDV_NO_HEADER|wxDV_ROW_LINES|wxDV_SINGLE);
+ m_dataViewListColumnId = m_dataViewListCtrlUser->AppendTextColumn(wxT(" ID"), wxDATAVIEW_CELL_INERT, 80, static_cast(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE);
+ m_dataViewListColumnGroup = m_dataViewListCtrlUser->AppendTextColumn(wxT("グループ"), wxDATAVIEW_CELL_INERT, 60, static_cast(wxALIGN_CENTER_HORIZONTAL), wxDATAVIEW_COL_SORTABLE);
+ m_dataViewListColumnName = m_dataViewListCtrlUser->AppendTextColumn(wxT(" 氏名"), wxDATAVIEW_CELL_INERT, 120, static_cast(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE);
+ gbSizer->Add(m_dataViewListCtrlUser, wxGBPosition(0, 0), wxGBSpan(3, 1), wxALL|wxEXPAND, 5);
+
+ m_buttonAdd = new wxButton(this, ID_USR_ADD, wxT("追加"), wxDefaultPosition, wxDefaultSize, 0);
+ gbSizer->Add(m_buttonAdd, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALL, 5);
+
+ m_buttonDel = new wxButton(this, ID_USR_DEL, wxT("削除"), wxDefaultPosition, wxDefaultSize, 0);
+ gbSizer->Add(m_buttonDel, wxGBPosition(1, 1), wxGBSpan(1, 1), wxALL, 5);
+
+ m_buttonSave = new wxButton(this, ID_USR_SAVE, wxT("保存"), wxDefaultPosition, wxDefaultSize, 0);
+ gbSizer->Add(m_buttonSave, wxGBPosition(2, 1), wxGBSpan(1, 1), wxALL, 5);
+
+
+ gbSizer->AddGrowableCol(0);
+ gbSizer->AddGrowableRow(1);
+
+ this->SetSizer(gbSizer);
+ this->Layout();
+
+ this->Centre(wxBOTH);
+
+ // Connect Events
+ m_buttonAdd->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UserFrame::OnAdd), NULL, this);
+ m_buttonDel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UserFrame::OnDelete), NULL, this);
+ m_buttonSave->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UserFrame::OnSave), NULL, this);
+}
+
+UserFrame::~UserFrame()
+{
+ // Disconnect Events
+ m_buttonAdd->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UserFrame::OnAdd), NULL, this);
+ m_buttonDel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UserFrame::OnDelete), NULL, this);
+ m_buttonSave->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(UserFrame::OnSave), NULL, this);
+
+}
+
+