diff --git a/Makefile.am b/Makefile.am index 0461fa1..55a7cab 100644 --- a/Makefile.am +++ b/Makefile.am @@ -113,6 +113,7 @@ libgts_la_SOURCES = \ sources/libcpp83gts_callback_and_action/gts_file_path.cpp \ sources/libcpp83gts_callback_and_action/gts_gui.cpp \ sources/libcpp83gts_callback_and_action/gts_master.cpp \ + sources/libcpp83gts_callback_and_action/gts_str_language.cpp \ sources/libcpp83gts_callback_and_action/cb_area_and_rot90.cpp \ sources/libcpp83gts_callback_and_action/cb_change_view.cpp \ sources/libcpp83gts_callback_and_action/cb_color_trace_view_area.cpp \ diff --git a/sources/libcpp83gts_callback_and_action/Makefile.vc b/sources/libcpp83gts_callback_and_action/Makefile.vc index 58f03b8..dc70f1b 100644 --- a/sources/libcpp83gts_callback_and_action/Makefile.vc +++ b/sources/libcpp83gts_callback_and_action/Makefile.vc @@ -26,6 +26,7 @@ SRCS =\ gts_file_path.cpp\ gts_gui.cpp\ gts_master.cpp\ +gts_str_language.cpp\ cb_area_and_rot90.cpp\ cb_change_view.cpp\ cb_color_trace_view_area.cpp\ diff --git a/sources/libcpp83gts_callback_and_action/Makefile_ja.vc b/sources/libcpp83gts_callback_and_action/Makefile_ja.vc new file mode 100644 index 0000000..5bdf295 --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/Makefile_ja.vc @@ -0,0 +1,88 @@ +.SUFFIXES: .obj .cpp +#---define-------------------------------------------------------------- +NAME = libcpp83gts_callback_and_action +OPTS = /W3 /MD /EHa /O2 /DWIN32 /wd4996 /source-charset:utf-8 +# /DWIN32 : for Use fltk in Windows +# /wd4996 : Stop warning message by MS-C old function +# /wd4819 // Stop warning message about Language Code ,Used to use vc2013 +# /source-charset:utf-8 // Use at vc2017 +INCS =\ +/I.\ +/I..\libcpp81gts_file_browser\ +/I..\libcpp72iip_erase_dot_noise\ +/I..\libcpp71iip_trace_by_hsv\ +/I..\libcpp64iip_rot90\ +/I..\libcpp56iip_opengl\ +/I..\libcpp55iip_scan\ +/I..\libcpp53iip_precision\ +/I..\libcpp52iip_rw\ +/I..\libcpp51iip_canvas\ +/I..\lib_util\ +/I..\libc12pri\ +/I$(DPATH_TWAIN)\ +/I$(DPATH_FLTK)\ +/I$(DPATH_GLEW)\include +SRCS =\ +gts_file_path.cpp\ +gts_gui_ja.cpp\ +gts_master.cpp\ +gts_str_language_ja.cpp\ +cb_area_and_rot90.cpp\ +cb_change_view.cpp\ +cb_color_trace_view_area.cpp\ +cb_config.cpp\ +cb_image.cpp\ +cb_number.cpp\ +cb_pixel_type_and_bright.cpp\ +cb_quit.cpp\ +cb_read_and_trace_and_preview.cpp\ +cb_scan_and_preview.cpp\ +cb_scan_and_save.cpp\ +cb_set_number_format.cpp\ +cb_trace_batch.cpp\ +cb_trace_files.cpp\ +cb_trace_params.cpp\ +dogascan_event.cpp\ +dogascan_print_window_headline.cpp\ +dogascan_scrollbar.cpp\ +fl_gl_cyclic_color_wheel.cpp\ +fl_gl_hsv_view.cpp\ +fl_gl_image_view.cpp\ +fltk_event.cpp\ +igs_lex_white_space_and_double_quote.cpp\ +ids_path_extensions.cpp\ +ids_path_fltk_native_browse.cpp\ +ids_path_level_from_files.cpp\ +iipg_color_trace.cpp\ +iipg_rot90.cpp\ +iipg_save.cpp\ +iipg_scan.cpp\ +iipg_view.cpp\ +memory_config_load.cpp\ +memory_config_save.cpp\ +memory_desktop_load.cpp\ +memory_desktop_save.cpp\ +wincom_native_browse_directory.cpp +TARG = $(NAME).lib +OBJS = $(SRCS:.cpp=.obj) +DPATH_3RD_PARTY = ..\..\thirdparty +DPATH_FLTK = $(DPATH_3RD_PARTY)\fltk\fltk-1.3.4-2 +DPATH_GLEW = $(DPATH_3RD_PARTY)\glew\glew-2.1.0 +DPATH_TWAIN = $(DPATH_3RD_PARTY)\twain\twain-2.3 +DPATH_APPL = ..\..\build +DPATH_LIBR = $(DPATH_APPL)\lib +DPATH_OBJE = $(DPATH_APPL)\obj\$(NAME) +CC_OPTIONS = $(CXXFLAGS) $(OPTS) $(INCS) +#---action-------------------------------------------------------------- +all: make_obj_dir $(TARG) +make_obj_dir: + if not exist $(DPATH_APPL) (mkdir $(DPATH_APPL)) + if not exist $(DPATH_LIBR) (mkdir $(DPATH_LIBR)) + if not exist $(DPATH_OBJE) (mkdir $(DPATH_OBJE)) +$(TARG): $(OBJS) + pushd $(DPATH_OBJE) & lib /wx $? /out:$@ & popd & move $(DPATH_OBJE)\$@ $(DPATH_LIBR)\$@ +.cpp.obj: + cl $(CC_OPTIONS) /c $< /Fo$(DPATH_OBJE)/$@ +clean_obj: + pushd $(DPATH_OBJE) & del $(OBJS) & popd + rmdir $(DPATH_OBJE) diff --git a/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.cpp b/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.cpp index 72a3aa3..0fb9328 100644 --- a/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.cpp @@ -2,6 +2,7 @@ #include // std::max(-) #include // rint(-) #include // fl_alert() +#include "gts_str_language.h" // gts_str:: #include "ids_path_level_from_files.h" #include "pri.h" #include "cb_area_and_rot90.h" @@ -107,20 +108,26 @@ void cb_area_and_rot90::cb_area_set_max( void ) void cb_area_and_rot90::cb_area_offset_cm_x( void ) { /* 先:横位置が大きすぎてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valout_scanner_size_cm_w->value() - < (cl_gts_gui.valinp_area_offset_cm_x->value() + - cl_gts_gui.valinp_area_size_cm_w->value()) + if ( cl_gts_gui.valout_scanner_size_cm_w->value() + < ( cl_gts_gui.valinp_area_offset_cm_x->value() + + cl_gts_gui.valinp_area_size_cm_w->value()) ) { - cl_gts_gui.valinp_area_offset_cm_x->value( - cl_gts_gui.valout_scanner_size_cm_w->value() - - cl_gts_gui.valinp_area_size_cm_w->value() - ); /* x_sizeが大きすぎる(誤値だが...)とマイナスになる */ - fl_alert( "Too Big X!" ); + cl_gts_gui.valinp_area_offset_cm_x->value( + cl_gts_gui.valout_scanner_size_cm_w->value() - + cl_gts_gui.valinp_area_size_cm_w->value() + ); /* x_sizeが大きすぎる(誤値だが...)とマイナスになる */ + fl_alert( +// "Too Big X!" + gts_str::area_and_rot90::offset_cm_x_big + ); } /* 後:横位置が小さくてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valinp_area_offset_cm_x->value() < 0.0) { - cl_gts_gui.valinp_area_offset_cm_x->value(0.0); - fl_alert( "Too Small X!" ); + if ( cl_gts_gui.valinp_area_offset_cm_x->value() < 0.0) { + cl_gts_gui.valinp_area_offset_cm_x->value(0.0); + fl_alert( +// "Too Small X!" + gts_str::area_and_rot90::offset_cm_x_small + ); } this->copy_value_to_opengl(); /* 表示ルーチンにArea設定 */ @@ -129,20 +136,26 @@ void cb_area_and_rot90::cb_area_offset_cm_x( void ) void cb_area_and_rot90::cb_area_offset_cm_y( void ) { /* 先:縦位置が大きすぎてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valout_scanner_size_cm_h->value() - < (cl_gts_gui.valinp_area_offset_cm_y->value() + - cl_gts_gui.valinp_area_size_cm_h->value()) + if ( cl_gts_gui.valout_scanner_size_cm_h->value() + < ( cl_gts_gui.valinp_area_offset_cm_y->value() + + cl_gts_gui.valinp_area_size_cm_h->value()) ) { - cl_gts_gui.valinp_area_offset_cm_y->value( - cl_gts_gui.valout_scanner_size_cm_h->value() - - cl_gts_gui.valinp_area_size_cm_h->value() - ); /* y_sizeが大きすぎる(誤値だが...)とマイナスになる */ - fl_alert( "Too Big Y!" ); + cl_gts_gui.valinp_area_offset_cm_y->value( + cl_gts_gui.valout_scanner_size_cm_h->value() - + cl_gts_gui.valinp_area_size_cm_h->value() + ); /* y_sizeが大きすぎる(誤値だが...)とマイナスになる */ + fl_alert( +// "Too Big Y!" + gts_str::area_and_rot90::offset_cm_y_big + ); } /* 後:縦位置が小さくてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valinp_area_offset_cm_y->value() < 0.0) { - cl_gts_gui.valinp_area_offset_cm_y->value(0.0); - fl_alert( "Too Small Y!" ); + if ( cl_gts_gui.valinp_area_offset_cm_y->value() < 0.0) { + cl_gts_gui.valinp_area_offset_cm_y->value(0.0); + fl_alert( +// "Too Small Y!" + gts_str::area_and_rot90::offset_cm_y_small + ); } this->copy_value_to_opengl(); /* 表示ルーチンにArea設定 */ @@ -152,20 +165,26 @@ void cb_area_and_rot90::cb_area_offset_cm_y( void ) void cb_area_and_rot90::cb_area_size_cm_w( void ) { /* 先:横位置が大きすぎてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valout_scanner_size_cm_w->value() - < (cl_gts_gui.valinp_area_offset_cm_x->value() + - cl_gts_gui.valinp_area_size_cm_w->value()) + if ( cl_gts_gui.valout_scanner_size_cm_w->value() + < ( cl_gts_gui.valinp_area_offset_cm_x->value() + + cl_gts_gui.valinp_area_size_cm_w->value()) ) { - cl_gts_gui.valinp_area_size_cm_w->value( - cl_gts_gui.valout_scanner_size_cm_w->value() - - cl_gts_gui.valinp_area_offset_cm_x->value() - ); /* x_sizeが大きすぎる(誤値だが...)とマイナスになる */ - fl_alert( "Too Big W!" ); + cl_gts_gui.valinp_area_size_cm_w->value( + cl_gts_gui.valout_scanner_size_cm_w->value() - + cl_gts_gui.valinp_area_offset_cm_x->value() + ); /* x_sizeが大きすぎる(誤値だが...)とマイナスになる */ + fl_alert( +// "Too Big W!" + gts_str::area_and_rot90::size_cm_w_big + ); } /* 後:横位置が小さくてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valinp_area_size_cm_w->value() < 0.0) { - cl_gts_gui.valinp_area_size_cm_w->value(0.0); - fl_alert( "Too Small W!" ); + if ( cl_gts_gui.valinp_area_size_cm_w->value() < 0.0) { + cl_gts_gui.valinp_area_size_cm_w->value(0.0); + fl_alert( +// "Too Small W!" + gts_str::area_and_rot90::size_cm_w_small + ); } /* cm幅値からpixel幅値を計算してGUIに表示 */ @@ -178,21 +197,27 @@ void cb_area_and_rot90::cb_area_size_cm_w( void ) void cb_area_and_rot90::cb_area_size_cm_h( void ) { /* 先:縦位置が大きすぎてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valout_scanner_size_cm_h->value() - < (cl_gts_gui.valinp_area_offset_cm_y->value() + - cl_gts_gui.valinp_area_size_cm_h->value()) + if ( cl_gts_gui.valout_scanner_size_cm_h->value() + < ( cl_gts_gui.valinp_area_offset_cm_y->value() + + cl_gts_gui.valinp_area_size_cm_h->value()) ) { - cl_gts_gui.valinp_area_size_cm_h->value( - cl_gts_gui.valout_scanner_size_cm_h->value() - - cl_gts_gui.valinp_area_offset_cm_y->value() - ); /* y_sizeが大きすぎる(誤値だが...)とマイナスになる */ - fl_alert( "Too Big H!" ); + cl_gts_gui.valinp_area_size_cm_h->value( + cl_gts_gui.valout_scanner_size_cm_h->value() - + cl_gts_gui.valinp_area_offset_cm_y->value() + ); /* y_sizeが大きすぎる(誤値だが...)とマイナスになる */ + fl_alert( +// "Too Big H!" + gts_str::area_and_rot90::size_cm_h_big + ); } /* 後:縦位置が小さくてはみ出す場合、範囲に収める */ - if (cl_gts_gui.valinp_area_size_cm_h->value() < 0.0) { - cl_gts_gui.valinp_area_size_cm_h->value(0.0); - fl_alert( "Too Small H!" ); + if ( cl_gts_gui.valinp_area_size_cm_h->value() < 0.0) { + cl_gts_gui.valinp_area_size_cm_h->value(0.0); + fl_alert( +// "Too Small H!" + gts_str::area_and_rot90::size_cm_h_small + ); } /* cm幅値からpixel幅値を計算してGUIに表示 */ @@ -224,7 +249,9 @@ void cb_area_and_rot90::cb_area_reso( void ) ( cl_gts_gui.valinp_area_reso->maximum() < cl_gts_gui.valinp_area_reso->value()) ) { - fl_alert( "Must be %g ... %g DPI" + fl_alert( +// "Must be %g ... %g DPI" + gts_str::area_and_rot90::dpi_out_of_range ,cl_gts_gui.valinp_area_reso->minimum() ,cl_gts_gui.valinp_area_reso->maximum() ); @@ -260,7 +287,10 @@ void cb_area_and_rot90::cb_area_reso( void ) && this->dpi_when_cropped_ != cl_gts_gui.valinp_area_reso->value() ) { differ_dpi_marking_(true); - fl_alert( "Crop again!" ); + fl_alert( +// "Crop again!" + gts_str::area_and_rot90::crop_again + ); } else { /* また一回もCropしてない、あるいは @@ -466,10 +496,15 @@ const bool cb_area_and_rot90::check_dpi_or_size_from_pixel_( void ) } /* AreaがScannerMax範囲外だとLimitかける... */ - switch (fl_choice("Not inside , Limit..." - ,"Cancel" - ,"Size" - ,"DPI" + switch (fl_choice( +// "Not inside , Limit..." + gts_str::area_and_rot90::not_inside_then_limit +// ,"Cancel" + ,gts_str::area_and_rot90::not_inside_then_limit_cancel +// ,"Size" + ,gts_str::area_and_rot90::not_inside_then_limit_size +// ,"DPI" + ,gts_str::area_and_rot90::not_inside_then_limit_dpi )) { case 0: /* Cancel */ return false; @@ -702,7 +737,10 @@ const std::string dnd_paste_( const std::string &dnd_str ) { /* 複数のファイルパスはエラー */ if (std::string::npos != dnd_str.find("\n")) { - return "Error : Need Only 1 Filepath"; + return +// "Error : Need Only 1 Filepath" + gts_str::config::need_only_1_filepath + ; } /* 必要な情報に変える */ @@ -717,12 +755,18 @@ const std::string dnd_paste_( const std::string &dnd_str ) if (ext == ".txt") { if (cl_gts_master.cl_memo_config.load_only_area_and_rot90( dnd_str ) == NG) { - return "Error : at loading area_and_rot90 in config"; + return +// "Error : at loading in config" + gts_str::config::loading_config_error + ; } } /* 拡張子が対応外エラー */ else { - return "Error : Need Extension .txt"; + return +// "Error : Need Extension .txt" + gts_str::config::need_ext_txt + ; } return std::string(); } @@ -769,7 +813,10 @@ void cb_area_and_rot90::cb_dialog_set_aspect_ratio( void cb_area_and_rot90::cb_valinp_area_aspect_ratio_w_( void ) { if (cl_gts_gui.valinp_area_aspect_ratio_h->value() <= 0.0) { - fl_alert( "Set H_Aspect_Ratio greater than zero!" ); + fl_alert( +// "Set H_Aspect_Ratio greater than zero!" + gts_str::area_and_rot90::bad_aspect_ratio_h + ); return; } cl_gts_gui.valinp_area_size_cm_w->value( @@ -783,7 +830,10 @@ void cb_area_and_rot90::cb_valinp_area_aspect_ratio_w_( void ) void cb_area_and_rot90::cb_valinp_area_aspect_ratio_h_( void ) { if (cl_gts_gui.valinp_area_aspect_ratio_w->value() <= 0.0) { - fl_alert( "Set W_Aspect_Ratio greater than zero!" ); + fl_alert( +// "Set W_Aspect_Ratio greater than zero!" + gts_str::area_and_rot90::bad_aspect_ratio_w + ); return; } cl_gts_gui.valinp_area_size_cm_h->value( @@ -803,7 +853,10 @@ void cb_area_and_rot90::cb_ok_aspect_ratio(void) this->cb_valinp_area_aspect_ratio_w_(); } else { - fl_alert( "Click H or W button!" ); + fl_alert( +// "Click H or W button!" + gts_str::area_and_rot90::click_h_or_w_button + ); } cl_gts_gui.window_set_aspect_ratio->hide(); diff --git a/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.h b/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.h index 67588dc..f72ba3a 100644 --- a/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.h +++ b/sources/libcpp83gts_callback_and_action/cb_area_and_rot90.h @@ -49,6 +49,13 @@ class cb_area_and_rot90 { Rot90 */ + enum enum_choice_rot90_type_value { + cw270_type_value // 0 (-90) + ,cw000_type_value // 1 (0) + ,cw090_type_value // 2 (90) + ,cw180_type_value // 3 (180) + }; + /* Scanの場合のみ、数値(Offset、Size),画像,表示Area、を回転する */ void cb_rotate_per_90_when_scan( void ); diff --git a/sources/libcpp83gts_callback_and_action/cb_change_view.cpp b/sources/libcpp83gts_callback_and_action/cb_change_view.cpp index 25d7a9e..f77e72a 100644 --- a/sources/libcpp83gts_callback_and_action/cb_change_view.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_change_view.cpp @@ -1,6 +1,7 @@ #include // fl_alert() #include "ptbl_returncode.h" #include "pri.h" +#include "gts_str_language.h" // gts_str:: #include "gts_gui.h" #include "gts_master.h" @@ -25,25 +26,37 @@ bool gts_master::check_change_wview( void ) { /* Crop実行時はなにもしない */ if (cl_gts_master.cl_ogl_view.get_crop_disp_sw() == ON) { - fl_alert("Not change ,when Crop mode"); + fl_alert( +// "Not change ,when Crop mode" + gts_str::change_view::not_change + ); return false; } /* データがないときはなにもしない */ if (NULL == this->cl_iip_ro90.get_clp_parent()) { - fl_alert("Need Image"); + fl_alert( +// "Need Image" + gts_str::change_view::no_image + ); return false; } /* データが、RGBフルカラーでないと実行しない */ if (this->cl_iip_ro90.get_l_channels() < 3L) { - fl_alert("Need RGB Image"); + fl_alert( +// "Need RGB Image" + gts_str::change_view::no_rgb_image + ); return false; } /* 表示準備 */ if (OK != this->_iipg_view_setup()) { - fl_alert("View setup Error"); + fl_alert( +// "View setup Error" + gts_str::change_view::view_setup_error + ); pri_funct_err_bttvr( "Error : this->_iipg_view_setup() returns NG" ); return false; diff --git a/sources/libcpp83gts_callback_and_action/cb_config.cpp b/sources/libcpp83gts_callback_and_action/cb_config.cpp index 6a11416..2adeaf7 100644 --- a/sources/libcpp83gts_callback_and_action/cb_config.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_config.cpp @@ -2,6 +2,7 @@ #include "FL/fl_ask.H" // fl_alert(-) #include "pri.h" #include "osapi_exist.h" +#include "gts_str_language.h" // gts_str:: #include "ids_path_level_from_files.h" #include "ids_path_fltk_native_browse.h" #include "cb_config.h" @@ -47,7 +48,8 @@ void cb_config::open( void ) /* NativeブラウザーOpenで開く */ int filter_current=0; const std::string fpath = ids::path::fltk_native_browse_open( - "Open Config" +// "Open Config" + gts_str::config::open ,this->dir_path_ ,"" //,this->open_file_name_ ,std::string("Text(Config)\t*")+this->ext_ @@ -61,39 +63,13 @@ void cb_config::open( void ) /* fpathを設定し、config情報を保存する */ this->loading_and_set_dpath_fname( fpath ); } -void cb_config::open_only_trace_parameters( void ) -{ - /* NativeブラウザーOpenで開く */ - int filter_current=0; - const std::string fpath = ids::path::fltk_native_browse_open( - "Open Config only Trace Parameters" - ,this->dir_path_ - ,"" //,this->open_file_name_ - ,std::string("Text(Config)\t*")+this->ext_ - ,filter_current - ).at(0); - /* Cancel */ - if (fpath.empty()) { - return; - } - - /* config情報を保存する */ - if (OK != cl_gts_master.cl_memo_config.load_only_trace_parameters( - fpath - )) { - pri_funct_err_bttvr( - "Error : cl_gts_master.cl_memo_config.load_only_trace_parameters(%s) returns NG" - , fpath.c_str() - ); - return; - } -} void cb_config::open_only_area_and_rot90( void ) { /* NativeブラウザーOpenで開く */ int filter_current=0; const std::string fpath = ids::path::fltk_native_browse_open( - "Open Config only Area and Rot90" +// "Open Config only Area and Rot90" + gts_str::config::open_only_area_and_rot90 ,this->dir_path_ ,"" //,this->open_file_name_ ,std::string("Text(Config)\t*")+this->ext_ @@ -120,7 +96,8 @@ void cb_config::open_only_pixel_type_and_bright( void ) /* NativeブラウザーOpenで開く */ int filter_current=0; const std::string fpath = ids::path::fltk_native_browse_open( - "Open Config only Pixel Type and Bright" +// "Open Config only Pixel Type and Bright" + gts_str::config::open_only_pixel_type_and_bright ,this->dir_path_ ,"" //,this->open_file_name_ ,std::string("Text(Config)\t*")+this->ext_ @@ -148,7 +125,8 @@ void cb_config::open_only_trace_params( void ) /* NativeブラウザーOpenで開く */ int filter_current=0; const std::string fpath = ids::path::fltk_native_browse_open( - "Open Config only Trace Params" +// "Open Config only Trace Params" + gts_str::config::open_only_trace_params ,this->dir_path_ ,"" //,this->open_file_name_ ,std::string("Text(Config)\t*")+this->ext_ @@ -179,7 +157,8 @@ void cb_config::save_as( void ) std::string fpath; if (this->save_as_set_scan_images_path_sw) { fpath = ids::path::fltk_native_browse_save( - "Save Config As" +// "Save Config As" + gts_str::config::save_as ,cl_gts_gui.filinp_scan_save_dir_path->value() ,cl_gts_gui.strinp_scan_save_file_head->value() ,std::string("Text(Config)\t*")+this->ext_ @@ -187,7 +166,8 @@ void cb_config::save_as( void ) ).at(0); } else { fpath = ids::path::fltk_native_browse_save( - "Save Config As" +// "Save Config As" + gts_str::config::save_as ,this->dir_path_ ,this->save_file_name_ ,std::string("Text(Config)\t*")+this->ext_ @@ -215,7 +195,10 @@ void cb_config::save_as( void ) 拡張子を別途付加してそのファイルが存在するなら上書き確認する */ if ( add_ext_sw && osapi::exist_utf8_mbs(fpath) ) { - if (0 == fl_ask( "Overwrite \"%s\"?" ,fpath.c_str() )) { + if (0 == fl_ask( +// "Overwrite \"%s\"?" + gts_str::config::ask_overwrite + ,fpath.c_str() )) { return; } } @@ -243,7 +226,10 @@ void cb_config::save( void ) { /* まだconfigファイルをOpenもSaveAsもしていない */ if ( this->dir_path_.empty() || this->save_file_name_.empty() ) { - fl_alert("Use \'Save Config As\'"); + fl_alert( +// "Use \'Save Config As\'" + gts_str::config::use_save_config_as + ); return; } @@ -255,13 +241,19 @@ void cb_config::save( void ) /* ダイオローグを表示 */ if (osapi::exist_utf8_mbs(fpath)) { /* すでに存在するなら上書き確認 */ - if (0 == fl_ask( "Overwrite \"%s\"?" ,fpath.c_str() )){ + if (0 == fl_ask( +// "Overwrite \"%s\"?" + gts_str::config::ask_overwrite + ,fpath.c_str() )){ return; } } else { /* 存在しないときは保存確認 */ - if (0 == fl_ask( "Save \"%s\"?" ,fpath.c_str() )) { + if (0 == fl_ask( +// "Save \"%s\"?" + gts_str::config::ask_save + ,fpath.c_str() )) { return; } } diff --git a/sources/libcpp83gts_callback_and_action/cb_config.h b/sources/libcpp83gts_callback_and_action/cb_config.h index 907f2e5..de2a29f 100644 --- a/sources/libcpp83gts_callback_and_action/cb_config.h +++ b/sources/libcpp83gts_callback_and_action/cb_config.h @@ -15,7 +15,6 @@ class cb_config { ,const bool load_trace_batch_sw=true ); void open(void); - void open_only_trace_parameters( void ); void open_only_area_and_rot90( void ); void open_only_pixel_type_and_bright( void ); void open_only_trace_params( void ); diff --git a/sources/libcpp83gts_callback_and_action/cb_image.cpp b/sources/libcpp83gts_callback_and_action/cb_image.cpp index 9ecfcc3..c4bb418 100644 --- a/sources/libcpp83gts_callback_and_action/cb_image.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_image.cpp @@ -1,6 +1,8 @@ #include #include "FL/fl_ask.H" // fl_alert(-) #include "pri.h" +#include "osapi_exist.h" // osapi::exist_utf8_mbs(-) +#include "gts_str_language.h" // gts_str:: #include "ids_path_level_from_files.h" #include "ids_path_fltk_native_browse.h" #include "cb_image.h" @@ -12,7 +14,8 @@ void cb_image::open( void ) /* NativeブラウザーOpenで開く */ int filter_current = this->ext_open_filter_current_; const std::string fpath = ids::path::fltk_native_browse_open( - "Open Image" +// "Open Image" + gts_str::image::open ,this->dir_path_ ,"" /* 開くときは選択が必須のためファイル名は空白表示 */ ,this->ext_open.get_native_filters() @@ -46,12 +49,18 @@ void cb_image::save_as( void ) { /* Crop中は保存できない */ if (cl_gts_master.cl_ogl_view.get_crop_disp_sw()) { - fl_alert("Finish Cropping, Please Scan."); + fl_alert( +// "Finish Cropping, Please Scan." + gts_str::image::save_as_can_not_when_crop + ); return; } /* ScanもReadもまだしていない */ if (cl_gts_master.cl_iip_ro90.get_clp_parent() == nullptr ) { - fl_alert("Please Any Scan or Open."); + fl_alert( +// "Please Any Scan or Open." + gts_str::image::no_image + ); return; } @@ -77,47 +86,93 @@ void cb_image::save_as( void ) rot90 = cl_gts_gui.choice_rot90->value(); dpi = cl_gts_gui.valinp_area_reso->value(); } else { - fl_alert("No Image"); + fl_alert( +// "No Image" + gts_str::image::no_image + ); return; } /* NativeブラウザーSaveで開く */ int filter_current = this->ext_save_filter_current_; - std::string fpath = ids::path::fltk_native_browse_save( - "Save Image As" + std::string fpath; + if (this->save_as_set_scan_images_path_sw) { + filter_current = + cl_gts_gui.choice_scan_save_image_format->value(); + fpath = ids::path::fltk_native_browse_save( +// "Save Image As" + gts_str::image::save_as + ,cl_gts_gui.filinp_scan_save_dir_path->value() + ,cl_gts_gui.strinp_scan_save_file_head->value() + ,this->ext_save.get_native_filters() + ,filter_current + ).at(0); + } else { + fpath = ids::path::fltk_native_browse_save( +// "Save Image As" + gts_str::image::save_as ,this->dir_path_ ,this->save_file_name_ ,this->ext_save.get_native_filters() ,filter_current - ).at(0); + ).at(0); + } /* Cancel */ if (fpath.empty()) { return; } + /* 拡張子がなければ */ + if (this->ext_save_is_exist_( fpath ) == false) { + /* 拡張子指定されていれば */ + if (filter_current < this->ext_save.size()) { + /* 拡張子追加する */ + fpath+= this->ext_save.str_from_num(filter_current); + + /* ダイオローグを表示 */ + if (osapi::exist_utf8_mbs(fpath)) { + /* すでに存在するなら上書き確認 */ + if (0 == fl_ask( +// "Overwrite \"%s\"?" + gts_str::config::ask_overwrite + ,fpath.c_str() )){ + return; + } + } + } + /* ユーザーによる拡張子指定ない + (Image Files(*.tga;*.tif)/All Files(*.*)) */ + else { + fl_alert( +// "Need Extension." + gts_str::image::need_extension + ); + return; + } + } + /* 有効なパスを開いたらその状態を記憶する */ ids::path::from_fpath_to_dpath_fname( fpath ,this->dir_path_ ,this->save_file_name_ ); this->ext_save_filter_current_ = filter_current; - /* 拡張子がなければError */ - if (this->ext_save_is_exist_( fpath ) == false) { - fl_alert("Need Extension."); - return; - } - /* 処理:Rot90 and Effects(color Trace and Erase color dot noise) */ if (cl_gts_master.rot_and_trace_and_enoise( parent ,rot90 ) != OK) { - fl_alert("Effects Error"); + fl_alert( +// "Effects Error" + gts_str::image::effects_error + ); return; } /* 保存 */ if (OK != cl_gts_master.iipg_save( - //&(cl_gts_master.cl_iip_edot) - &(cl_gts_master.cl_iip_ro90) + &(cl_gts_master.cl_iip_edot) + /* 処理したEffectの最後Node画像を保存 */ + // &(cl_gts_master.cl_iip_ro90) + /* スキャン画像の保存 */ ,const_cast(fpath.c_str()) ,dpi @@ -129,7 +184,10 @@ void cb_image::save_as( void ) )) { pri_funct_err_bttvr( "Error : cl_gts_master.iipg_save(-) returns NG" ); - fl_alert("Save \"%s\" Error" ,fpath.c_str() ); + fl_alert( +// "Save \"%s\" Error" + gts_str::image::save_error + ,fpath.c_str() ); return; } } diff --git a/sources/libcpp83gts_callback_and_action/cb_image.h b/sources/libcpp83gts_callback_and_action/cb_image.h index 262e451..1ce1a49 100644 --- a/sources/libcpp83gts_callback_and_action/cb_image.h +++ b/sources/libcpp83gts_callback_and_action/cb_image.h @@ -7,8 +7,9 @@ class cb_image { public: cb_image() - :ext_open_filter_current_(0) - ,ext_save_filter_current_(0) + :ext_open_filter_current_(0) + ,ext_save_filter_current_(0) + ,save_as_set_scan_images_path_sw(false) {} ids::path::extensions ext_open; @@ -16,6 +17,7 @@ class cb_image { void open(void); void save_as(void); + bool save_as_set_scan_images_path_sw; void set_dir_path(const std::string&ss) { this->dir_path_ = ss; } diff --git a/sources/libcpp83gts_callback_and_action/cb_number.cpp b/sources/libcpp83gts_callback_and_action/cb_number.cpp index f3cc362..dc2873d 100644 --- a/sources/libcpp83gts_callback_and_action/cb_number.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_number.cpp @@ -305,7 +305,7 @@ void cb_number::set_next_num_from_crnt_( this->next_file_num_ = -1; return; } - if ( continue_type_value == this->end_type_value_ ) { + if ( continue_type_value == this->end_type_value ) { /* End指定 */ if ( forward_sw ) { /* 順送り(start <= end)の次選択位置 */ @@ -328,7 +328,7 @@ void cb_number::set_next_num_from_crnt_( } } else /* Endless指定 */ - if ( continue_type_value == this->endless_type_value_ ) { + if ( continue_type_value == this->endless_type_value ) { if (cl_gts_gui.choice_scan_num_endless_direction->value() == 0) { @@ -356,7 +356,7 @@ void cb_number::set_next_num_from_crnt_( /* 初期化 */ void cb_number::counter_start( const int continue_type_value ) { - if ( continue_type_value == this->end_type_value_ ) { + if ( continue_type_value == this->end_type_value ) { /* End指定 */ /* GUIのfile number listの選択をたどる */ @@ -384,7 +384,7 @@ void cb_number::counter_start( const int continue_type_value ) } } else /* Endless指定 */ - if ( continue_type_value == this->endless_type_value_ ) { + if ( continue_type_value == this->endless_type_value ) { /* GUIのlistの選択は無視 */ /* 処理後のマーキングと選択解除は外で行う */ @@ -443,7 +443,7 @@ void cb_number::counter_next( const int continue_type_value ) this->crnt_file_num_ = this->next_file_num_; /* Endless指定 */ - if ( continue_type_value == this->endless_type_value_ ) { + if ( continue_type_value == this->endless_type_value ) { /* File番号に一致するlist番号あれば現位置とし、 なければ追加して現位置とし、 選択状態にする */ diff --git a/sources/libcpp83gts_callback_and_action/cb_number.h b/sources/libcpp83gts_callback_and_action/cb_number.h index 873d09f..14084e6 100644 --- a/sources/libcpp83gts_callback_and_action/cb_number.h +++ b/sources/libcpp83gts_callback_and_action/cb_number.h @@ -59,12 +59,6 @@ class cb_number { int get_crnt_file_num(void) const { return this->crnt_file_num_; } int get_next_file_num(void) const { return this->next_file_num_; } - /* 画像の番号をたどる方法を指定するための番号(scan時はGUI値から) */ - int get_end_type_value(void) const { return this->end_type_value_; } - int get_endless_type_value(void) const { - return this->endless_type_value_; - } - /* 画像の番号をたどる (file番号とlist番号) */ /* 1 初期化し、開始位置 */ void counter_start( const int continue_type_value ); @@ -96,6 +90,12 @@ class cb_number { const std::string get_save_path( const int num ); + /* 画像の番号をたどる方法を指定するための番号(scan時はGUI値から) */ + enum choice_level_continue_type_value { + end_type_value // 0 + ,endless_type_value // 1 + }; + private: int crnt_list_num_ , crnt_file_num_ @@ -110,11 +110,6 @@ class cb_number { //------------------------------------- - enum choice_level_continue_type_value_ { - end_type_value_ // 0 - ,endless_type_value_ // 1 - }; - int insert_and_select_fnum_in_list_( const int file_num ); void set_next_num_from_crnt_( diff --git a/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.cpp b/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.cpp index 19841ed..5708ad0 100644 --- a/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.cpp @@ -1,33 +1,30 @@ #include #include "FL/fl_ask.H" // fl_alert(-) #include "ids_path_level_from_files.h" +#include "gts_str_language.h" // gts_str:: #include "cb_pixel_type_and_bright.h" #include "gts_gui.h" #include "gts_master.h" -void gts_master::cb_choice_pixel_type_title( const std::string& str ) +void cb_pixel_type_and_bright::cb_choice_pixel_type_title( const int number ) { - const Fl_Menu_Item *crnt = cl_gts_gui.choice_pixel_type->find_item( - str.c_str() - ); - if (crnt != nullptr) { - cl_gts_gui.choice_pixel_type->value( crnt ); - } + cl_gts_gui.choice_pixel_type->value( number ); } -void gts_master::cb_choice_pixel_type_menu( void ) + +void cb_pixel_type_and_bright::cb_choice_pixel_type_menu( void ) { switch (cl_gts_gui.choice_pixel_type->value()) { - case 0: + case this->bw_type_value: cl_gts_gui.group_bw->show(); cl_gts_gui.group_grays->hide(); cl_gts_gui.group_rgb->hide(); break; - case 1: + case this->grayscale_type_value: cl_gts_gui.group_bw->hide(); cl_gts_gui.group_grays->show(); cl_gts_gui.group_rgb->hide(); break; - case 2: + case this->rgb_type_value: cl_gts_gui.group_bw->hide(); cl_gts_gui.group_grays->hide(); cl_gts_gui.group_rgb->show(); @@ -49,7 +46,10 @@ const std::string dnd_paste_( const std::string &dnd_str ) { /* 複数のファイルパスはエラー */ if (std::string::npos != dnd_str.find("\n")) { - return "Error : Need Only 1 Filepath"; + return +// "Error : Need Only 1 Filepath" + gts_str::config::need_only_1_filepath + ; } /* 必要な情報に変える */ @@ -64,12 +64,18 @@ const std::string dnd_paste_( const std::string &dnd_str ) if (ext == ".txt") { if (cl_gts_master.cl_memo_config.load_only_pixel_type_and_bright( dnd_str ) == NG) { - return "Error : at loading pixel_type_and_bright in config"; + return +// "Error : at loading in config" + gts_str::config::loading_config_error + ; } } /* 拡張子が対応外エラー */ else { - return "Error : Need Extension .txt"; + return +// "Error : Need Extension .txt" + gts_str::config::need_ext_txt + ; } return std::string(); } diff --git a/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.h b/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.h index a2024c6..f8cd3ca 100644 --- a/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.h +++ b/sources/libcpp83gts_callback_and_action/cb_pixel_type_and_bright.h @@ -4,6 +4,22 @@ #include #include +class cb_pixel_type_and_bright { +public: + cb_pixel_type_and_bright() + {} + + void cb_choice_pixel_type_title( const int number ); + void cb_choice_pixel_type_menu( void ); + + enum choice_pixel_type_value { + bw_type_value // 0 + ,grayscale_type_value // 1 + ,rgb_type_value // 2 + }; +private: +}; + class fltk_button_pixel_type_and_bright : public Fl_Button { public: fltk_button_pixel_type_and_bright( diff --git a/sources/libcpp83gts_callback_and_action/cb_quit.cpp b/sources/libcpp83gts_callback_and_action/cb_quit.cpp index 39a4c13..91de612 100644 --- a/sources/libcpp83gts_callback_and_action/cb_quit.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_quit.cpp @@ -2,11 +2,15 @@ #include #include #include "pri.h" +#include "gts_str_language.h" // gts_str:: #include "gts_master.h" void gts_master::cb_quit( void ) { - if (!fl_ask("Are you sure you want to quit?")) { + if (!fl_ask( +// "Are you sure you want to quit?" + gts_str::quit::ask_quit + )) { return; } diff --git a/sources/libcpp83gts_callback_and_action/cb_read_and_trace_and_preview.cpp b/sources/libcpp83gts_callback_and_action/cb_read_and_trace_and_preview.cpp index 26c6174..37bbf4a 100644 --- a/sources/libcpp83gts_callback_and_action/cb_read_and_trace_and_preview.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_read_and_trace_and_preview.cpp @@ -2,6 +2,7 @@ #include "FL/fl_ask.H" // fl_alert(-) #include "pri.h" #include "osapi_exist.h" +#include "gts_str_language.h" // gts_str:: #include "gts_gui.h" #include "gts_master.h" @@ -11,7 +12,7 @@ void gts_master::cb_number_read_and_trace_and_preview( void ) /* File Number Listの選択の先頭項目を得る... */ this->cl_number.counter_start( - cl_gts_master.cl_number.get_end_type_value() + cl_gts_master.cl_number.end_type_value ); /* ...選択がない */ @@ -39,7 +40,10 @@ void gts_master::cb_number_read_and_trace_and_preview( void ) if ( this->cl_number.is_trace() ) { fpath_open = this->cl_trace_files.get_open_path(crnt_file_num); } else { - fl_alert("Click [Set Number]!"); + fl_alert( +// "Click [Set Number]!" + gts_str::number::need_to_set_number + ); return; } diff --git a/sources/libcpp83gts_callback_and_action/cb_scan_and_save.cpp b/sources/libcpp83gts_callback_and_action/cb_scan_and_save.cpp index 624ef50..a6fcbe1 100644 --- a/sources/libcpp83gts_callback_and_action/cb_scan_and_save.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_scan_and_save.cpp @@ -2,30 +2,39 @@ #include // std::cout #include // std::ostringstream #include // std::setfill(-) ,std::setw(-) -#include // fl_alert(-) fl_input(-) +#include // fl_alert(-) #include "ptbl_returncode.h" #include "pri.h" #include "osapi_exist.h" +#include "osapi_mbs_wcs.h" // osapi::cp932_from_utf8(-) , osapi::exist_utf8_mbs(-) #include "ids_path_fltk_native_browse.h" #ifdef _WIN32 # include "wincom_native_browse_directory.h" #endif #include "ids_path_level_from_files.h" +#include "gts_str_language.h" // gts_str:: #include "cb_scan_and_save.h" #include "gts_gui.h" #include "gts_master.h" const char* cb_scan_and_save::cb_start_check_( void ) { - /* 01 チェック:スキャンモードであること */ - if ( !cl_gts_master.cl_number.is_scan() ) { - return "Set Number for Scan"; + /* 01 チェック:フォルダーと保存ファイルのLevel名があること */ + std::string filen(cl_gts_gui.strinp_scan_save_file_head->value()); + std::string foldn(cl_gts_gui.filinp_scan_save_dir_path->value()); + if ( filen.empty() || foldn.empty() ) { + return +// "Need Scan Save Folder or Name!" + gts_str::trace_files::check_save_folder_and_filename + ; } - /* 02 チェック:保存ファイルのLevel名があること */ - std::string name(cl_gts_gui.strinp_scan_save_file_head->value()); - if ( name.empty() ) { - return "Need Scan Save Name!"; + /* 02 チェック:スキャンモードであること */ + if ( !cl_gts_master.cl_number.is_scan() ) { + return +// "Set Number for Scan" + gts_str::scan_and_save::not_scan_number + ; } /* 03 値セット:選択リストから先頭を得る */ @@ -36,12 +45,18 @@ const char* cb_scan_and_save::cb_start_check_( void ) /* 04 チェック:番号リストの選択からカレントを得る */ if (cl_gts_master.cl_number.get_crnt_file_num() < 1) { if (cl_gts_gui.choice_scan_num_continue_type->value() - == cl_gts_master.cl_number.get_end_type_value() + == cl_gts_master.cl_number.end_type_value ) { /* End type */ - return "Select Number!"; + return +// "Select Number!" + gts_str::scan_and_save::select_number + ; } else { /* Endless type */ - return "Bad Number in Start!"; + return +// "Bad Number in Start!" + gts_str::scan_and_save::bad_number + ; } } return ""; @@ -53,9 +68,13 @@ std::string cb_scan_and_save::cb_scan_fx_display_( int& return_code ) if (cl_gts_master.cl_number.get_crnt_list_num() < 1 || cl_gts_master.cl_number.get_crnt_file_num() < 1) { std::ostringstream ost; - ost << "Bad Number(crnt_list_num=" + ost + << +// "Bad Number" + gts_str::scan_and_save::bad_scan_number + << "(crnt_list_num,crnt_file_num)=(" << cl_gts_master.cl_number.get_crnt_list_num() - << ",crnt_file_num=" + << "," << cl_gts_master.cl_number.get_crnt_file_num() << ")" ; @@ -72,7 +91,10 @@ std::string cb_scan_and_save::cb_scan_fx_display_( int& return_code ) iip_canvas* clp_scan_err = cl_gts_master.iipg_scan( return_code ); if (return_code == NG) { return_code = NG; - return std::string("Can not Scan(NG)"); + return std::string( +// "Can not Scan(NG)" + gts_str::scan_and_save::scan_error + ); } /* 04 スキャン:ユーザーからキャンセル指示があればここまで */ @@ -84,7 +106,10 @@ std::string cb_scan_and_save::cb_scan_fx_display_( int& return_code ) /* 05 スキャン:return_codeチェックのあとにエラーチェックする */ if (nullptr == clp_scan_err) { return_code = NG; - return std::string("Can not Scan(nullptr)"); + return std::string( +// "Can not Scan(nullptr)" + gts_str::scan_and_save::scan_error + ); } //------------------------------ @@ -95,7 +120,10 @@ std::string cb_scan_and_save::cb_scan_fx_display_( int& return_code ) ,cl_gts_gui.choice_rot90->value() ) != OK) { return_code = NG; - return std::string("Can not Fx"); + return std::string( +// "Can not Fx" + gts_str::scan_and_save::rot_and_trace_and_enoise_error + ); } //------------------------------ @@ -111,7 +139,10 @@ std::string cb_scan_and_save::cb_scan_fx_display_( int& return_code ) cl_gts_master.cl_iip_scan.get_clp_canvas() ,false ,false ) != OK) { return_code = NG; - return std::string("Can not Redraw"); + return std::string( +// "Can not Redraw" + gts_str::scan_and_save::redraw_error + ); } /* 10 表示:保存するタイプで画像を表示する */ @@ -143,7 +174,10 @@ std::string cb_scan_and_save::cb_save_( void ) ) ); if (fpath_save.empty()) { std::ostringstream ost; - ost << "Can not get save_file_path at current_number(" + ost << +// "Can not get save_file_path at current_number" + gts_str::scan_and_save::can_not_get_save_path + << "(" << cl_gts_master.cl_number.get_crnt_file_num() << ")" ; @@ -158,7 +192,10 @@ std::string cb_scan_and_save::cb_save_( void ) /* 回転値後を正対として角度ゼロ(default)として保存する */ ) ) { std::ostringstream ost; - ost << "Can not Save file(" + ost << +// "Can not Save file" + gts_str::scan_and_save::can_not_save + << "(" << fpath_save << ")" ; @@ -402,7 +439,10 @@ void cb_scan_and_save::cb_save( const bool change_adjustable_sw ) ,cl_gts_gui.choice_rot90->value() ) != OK) { this->during_the_scan_is_ = false; - fl_alert("Can not Fx"); + fl_alert( +// "Can not Fx" + gts_str::scan_and_save::rot_and_trace_and_enoise_error + ); return; } } @@ -442,13 +482,16 @@ void cb_scan_and_save::cb_browse_save_folder( void ) /* Nativeフォルダーブラウザー開く */ #ifdef _WIN32 const std::string filepath =wincom::native_browse_directory_m( - "Select Saving Folder for Scan" +// "Select and Set Saving Folder for Scan" + osapi::cp932_from_utf8( + gts_str::scan_and_save::select_folder ) ,cl_gts_gui.filinp_scan_save_dir_path->value() ,::fl_xid( cl_gts_gui.window_scan_and_save ) ); #else const std::string filepath =ids::path::fltk_native_browse_directory( - "Set Saving Folder for Scan" +// "Select and Set Saving Folder for Scan" + gts_str::scan_and_save::select_folder ,cl_gts_gui.filinp_scan_save_dir_path->value() ).at(0); #endif @@ -472,7 +515,7 @@ void cb_scan_and_save::cb_set_number( void ) int num_s = -1; int num_e = -1; if (cl_gts_gui.choice_scan_num_continue_type->value() - == cl_gts_master.cl_number.get_endless_type_value()) { + == cl_gts_master.cl_number.endless_type_value) { num_s = static_cast(cl_gts_gui.valinp_scan_num_start->value()); num_e = num_s; } @@ -486,7 +529,7 @@ void cb_scan_and_save::cb_set_number( void ) /* End/EndlessによるNumberリストのdeactivate/activete */ this->cb_change_num_continue_type( - cl_gts_gui.choice_scan_num_continue_type->text() + cl_gts_gui.choice_scan_num_continue_type->value() ); /* Numberウインドウ再構築 */ @@ -548,6 +591,8 @@ const std::string cb_scan_and_save::get_save_path( const int number ) { /* Folder & File名が設定していないと空を返す */ if (cl_gts_gui.filinp_scan_save_dir_path->value() == nullptr + || std::string( + cl_gts_gui.filinp_scan_save_dir_path->value()).empty() || this->get_save_name(number).empty()) { return std::string(); } @@ -562,6 +607,8 @@ const std::string cb_scan_and_save::get_save_name( const int number ) { /* 名(head,num_form,ext)が設定していないと空を返す */ if (cl_gts_gui.strinp_scan_save_file_head->value() == nullptr + || std::string( + cl_gts_gui.strinp_scan_save_file_head->value()).empty() || (0<=number && cl_gts_gui.output_scan_save_number_format->value() == nullptr) || cl_gts_gui.choice_scan_save_image_format->text() == nullptr) { @@ -581,26 +628,22 @@ const std::string cb_scan_and_save::get_save_name( const int number ) } //---------------------------------------------------------------------- -void cb_scan_and_save::cb_choice_and_num_continue_type(const std::string& type) +void cb_scan_and_save::cb_choice_and_num_continue_type(const int type) { - const Fl_Menu_Item* crnt = - cl_gts_gui.choice_scan_num_continue_type->find_item( type.c_str() ); - if (crnt == nullptr) { return; } - /* End/Endless表示のChoice切替 */ - cl_gts_gui.choice_scan_num_continue_type->value(crnt); + cl_gts_gui.choice_scan_num_continue_type->value(type); /* End/Endless表示のChoice以外の切替 */ this->cb_change_num_continue_type( type ); } -void cb_scan_and_save::cb_change_num_continue_type(const std::string& type) +void cb_scan_and_save::cb_change_num_continue_type(const int type) { - if (std::string("End") == type) { + if (type == cl_gts_master.cl_number.end_type_value) { cl_gts_gui.valinp_scan_num_end->show(); cl_gts_gui.choice_scan_num_endless_direction->hide(); cl_gts_gui.selbro_number_list->activate(); } else - if (std::string("Endless") == type) { + if (type == cl_gts_master.cl_number.endless_type_value) { cl_gts_gui.valinp_scan_num_end->hide(); cl_gts_gui.choice_scan_num_endless_direction->show(); cl_gts_gui.selbro_number_list->deactivate(); diff --git a/sources/libcpp83gts_callback_and_action/cb_scan_and_save.h b/sources/libcpp83gts_callback_and_action/cb_scan_and_save.h index 7c6a79e..def79f7 100644 --- a/sources/libcpp83gts_callback_and_action/cb_scan_and_save.h +++ b/sources/libcpp83gts_callback_and_action/cb_scan_and_save.h @@ -37,10 +37,10 @@ class cb_scan_and_save { //---------- fltk GUI access ---------- /* End/Endless表示のChoice含めた切替 */ - void cb_choice_and_num_continue_type(const std::string& type); + void cb_choice_and_num_continue_type(const int type); /* End/Endless表示のChoice以外の切替 */ - void cb_change_num_continue_type( const std::string& type ); + void cb_change_num_continue_type( const int type ); /* Endlessの方向選択の表示切替 */ void cb_choice_num_endless_direction( const std::string& type ); diff --git a/sources/libcpp83gts_callback_and_action/cb_trace_batch.cpp b/sources/libcpp83gts_callback_and_action/cb_trace_batch.cpp index 54ed389..229f52d 100644 --- a/sources/libcpp83gts_callback_and_action/cb_trace_batch.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_trace_batch.cpp @@ -1,6 +1,7 @@ #include "FL/fl_ask.H" // fl_alert(-) #include "pri.h" #include "ids_path_fltk_native_browse.h" +#include "gts_str_language.h" // gts_str:: #include "cb_trace_batch.h" #include "gts_gui.h" #include "gts_master.h" @@ -62,7 +63,8 @@ void cb_trace_batch::cb_add_or_select( void ) int filter_current=0; /* "TEXT\t*.txt"を示す */ std::vector< std::string > vecstr( ids::path::fltk_native_browse_open_files( - "Add Config File" +// "Add Config File" + gts_str::trace_batch::add_config ,this->dir_path_ ,"" ,"TEXT\t*.txt\n" @@ -115,7 +117,10 @@ void cb_trace_batch::cb_upper( void ) int crntnum = -1; int selnum = how_many_select_( crntnum ); if (selnum != 1) { - fl_alert("Select only one(%d selected)" ,selnum); + fl_alert( +// "Select only one(%d selected)" + gts_str::trace_batch::too_many_selected + ,selnum); return; } @@ -129,7 +134,10 @@ void cb_trace_batch::cb_lower( void ) int crntnum = -1; int selnum = how_many_select_( crntnum ); if (selnum != 1) { - fl_alert("Select only one(%d selected)" ,selnum); + fl_alert( +// "Select only one(%d selected)" + gts_str::trace_batch::too_many_selected + ,selnum); return; } diff --git a/sources/libcpp83gts_callback_and_action/cb_trace_files.cpp b/sources/libcpp83gts_callback_and_action/cb_trace_files.cpp index bff0487..2e2c00d 100644 --- a/sources/libcpp83gts_callback_and_action/cb_trace_files.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_trace_files.cpp @@ -7,13 +7,14 @@ #include "ptbl_returncode.h" #include "osapi_exist.h" #ifdef _WIN32 -#include "osapi_mbs_wcs.h" // osapi::cp932_from_utf8(-) +# include "osapi_mbs_wcs.h" // osapi::cp932_from_utf8(-) #endif #include "ids_path_fltk_native_browse.h" #ifdef _WIN32 -#include "wincom_native_browse_directory.h" +# include "wincom_native_browse_directory.h" #endif #include "ids_path_level_from_files.h" +#include "gts_str_language.h" // gts_str:: #include "cb_trace_files.h" #include "gts_gui.h" #include "gts_master.h" @@ -138,39 +139,55 @@ int cb_trace_files::read_and_save_crnt_( int cb_trace_files::cb_start( const bool interactive_sw ) { - if ( !cl_gts_master.cl_number.is_trace() ) { - fl_alert("Set Number for Trace"); - return OK; + /* チェック:開くファイル名がない */ + if (this->get_open_path(0).empty()) { + fl_alert( +// "Check Open Folder and File name!" + gts_str::trace_files::check_open_folder_and_filename + ); + return NG; } /* チェック:開くファイルのLevel名がない */ - { +/* { std::string name(cl_gts_gui.strinp_trace_open_file_head->value()); if ( name.empty() ) { - fl_alert("Need Trace Open Name!"); + fl_alert( +// "Need Trace Open Name!" + gts_str::trace_files::need_trace_open_name + ); return NG; } + }*/ + + /* チェック:保存ファイル名がない */ + if (this->get_save_path(0).empty()) { + fl_alert( +// "Check Save Folder and File name!" + gts_str::trace_files::check_save_folder_and_filename + ); + return NG; } /* チェック:保存ファイルのLevel名がない */ - { +/* { std::string name(cl_gts_gui.strinp_trace_save_file_head->value()); if ( name.empty() ) { - fl_alert("Need Trace Save Name!"); - return NG; - } - } - - /* チェック:開くファイル名がない */ - if (this->get_open_path(0).empty()) { - fl_alert("Check Open Folder and File name!"); + fl_alert( +// "Need Trace Save Name!" + gts_str::trace_files::need_trace_save_name + ); return NG; } + }*/ - /* チェック:保存ファイル名がない */ - if (this->get_save_path(0).empty()) { - fl_alert("Check Save Folder and File name!"); - return NG; + /* チェック:ナンバーの設定してない */ + if ( !cl_gts_master.cl_number.is_trace() ) { + fl_alert( +// "Set Number for Trace" + gts_str::trace_files::not_trace_number + ); + return OK; } /* 順送り(start <= end)の初期位置 */ @@ -179,7 +196,10 @@ int cb_trace_files::cb_start( const bool interactive_sw ) /* チェック:番号選択がない */ if (list_num < 1) { - fl_alert("Select Number!"); + fl_alert( +// "Select Number!" + gts_str::trace_files::select_number + ); return NG; } @@ -194,8 +214,16 @@ int cb_trace_files::cb_start( const bool interactive_sw ) cl_gts_gui.chkbtn_trace_filter_erase_dot_noise_sw->value() != 0; if (fl_ask( "%s%s\n%s\n-->\n%s\n..." - ,tsw ?"Trace" :"Not trace" - ,esw ?" and Erase Dot Noise" :"" + ,tsw ? +// "Trace" + gts_str::trace_files::ask_do_trace + : +// "Not trace" + gts_str::trace_files::ask_do_not_trace + ,esw ? +// " and Erase Dot Noise" + gts_str::trace_files::ask_and_erase_dot_noise + :"" ,this->get_open_path(file_num).c_str() ,this->get_save_path(file_num).c_str() ) != 1) { @@ -236,7 +264,11 @@ void cb_trace_files::cb_rename(void) /* Openファイルのフルパスを得る */ const std::string filepath = this->get_open_path( 1 ); if (filepath.empty()) { - fl_alert( "Not set Open Folder or File name" ); + fl_alert( +// "Not set Open Folder or File name" +// "Check Open Folder and File name!" + gts_str::trace_files::check_open_folder_and_filename + ); return; } @@ -248,7 +280,11 @@ void cb_trace_files::cb_rename(void) filepath ,dpath ,head ,num ,number ,ext ,nums ); if (head.empty() || nums.size() <= 0) { - fl_alert( "Not exist files" ); + fl_alert( +// "Not exist name or number in \'%s\'" + gts_str::trace_files::filename_without_head_or_number + ,filepath.c_str() + ); return; } std::ostringstream numost; @@ -259,10 +295,15 @@ void cb_trace_files::cb_rename(void) /* ユーザーから新しい名前を得る */ const char* new_head_ptr = fl_input( - "Enter New Level Name" ,head.c_str() +// "Enter New Level Name" + gts_str::trace_files::input_new_level_name + ,head.c_str() ); - if (new_head_ptr == nullptr || head == new_head_ptr ) { - return; /* Cancel or 同じ名前なら何もしない */ + if (new_head_ptr == nullptr /* Cancel */ + || new_head_ptr[0] == '\0' /* 空の名前 */ + || head == new_head_ptr /* 同じ名前 */ + ) { + return; /* 何もしない */ } const std::string new_head(new_head_ptr); @@ -275,7 +316,8 @@ void cb_trace_files::cb_rename(void) /* 最初にこれでいいかユーザーに確認する */ if (ii==0) { if (fl_ask( - "Rename\nFrom\n %s\nTo\n %s\nNumber List\n %s\nOK?" +// "Rename\nFrom\n %s\nTo\n %s\nNumber List\n %s\nOK?" + gts_str::trace_files::ask_rename ,opa.c_str() ,npa.c_str() ,numost.str().c_str() @@ -288,7 +330,9 @@ void cb_trace_files::cb_rename(void) std::string opa2( osapi::cp932_from_utf8( opa ) ); std::string npa2( osapi::cp932_from_utf8( npa ) ); if (opa2.empty() || npa2.empty()) { - fl_alert("Error:rename \"%s\" \"%s\"" + fl_alert( +// "Error:rename \"%s\" \"%s\"" + gts_str::trace_files::empty_rename_filename ,opa.c_str() ,npa.c_str() ); return; } @@ -307,7 +351,11 @@ void cb_trace_files::cb_renumber(void) /* Openファイルのフルパスを得る */ const std::string filepath = this->get_open_path( 1 ); if (filepath.empty()) { - fl_alert( "Not set Open Folder or File name" ); + fl_alert( +// "Not set Open Folder or File name" +// "Check Open Folder and File name!" + gts_str::trace_files::check_open_folder_and_filename + ); return; } @@ -319,17 +367,26 @@ void cb_trace_files::cb_renumber(void) filepath ,dpath ,head ,num ,number ,ext ,nums ); if (head.empty() || nums.size() <= 0) { - fl_alert( "Not exist files" ); + fl_alert( +// "Not exist name or number in \'%s\'" + gts_str::trace_files::filename_without_head_or_number + ,filepath.c_str() + ); return; } /* ユーザーから新しいStart番号を得る */ const char* new_start_num_ptr = fl_input( - "Enter New Start Number" ,std::to_string(nums.at(0)).c_str() +// "Enter New Start Number" + gts_str::trace_files::input_new_start_number + ,std::to_string(nums.at(0)).c_str() ); - if (new_start_num_ptr == nullptr - || std::stoi(std::string(new_start_num_ptr))==nums.at(0)) { - return; /* Cancel or 同じ名前なら何もしない */ + if (new_start_num_ptr == nullptr /* Cancel */ + || new_start_num_ptr[0] == '\0' /* 空文字 */ + || std::stoi(std::string(new_start_num_ptr))==nums.at(0) + /* 同じ番号 */ + ) { + return; /* 何もしない */ } const std::string new_start_num( new_start_num_ptr ); @@ -353,7 +410,9 @@ void cb_trace_files::cb_renumber(void) std::string npa( this->get_open_path( nums.at(0) + diff_num ) ); fl_alert( -"Error : Number need 0...9999 range\nFrom\n %s\nTo\n %s\nNumber List\n %s\n" +//"Error : Number need 0...9999 range\nFrom\n %s\nTo\n %s\nNumber List\n %s\n" +/* u8"エラー\n%s\nから\n%s\nへの数値シフトだと連番が\n %s\nとなります。\n0から9999までの範囲になるように指定してください" */ + gts_str::trace_files::number_is_out_of_range ,opa.c_str() ,npa.c_str() ,numost.str().c_str() @@ -369,7 +428,8 @@ void cb_trace_files::cb_renumber(void) /* 最初にこれでいいかユーザーに確認する */ if (ii==0) { if (fl_ask( -"Renumber\nFrom\n %s\nTo\n %s\nNumber List\n %s\nOK?" +// "Renumber\nFrom\n %s\nTo\n %s\nNumber List\n %s\nOK?" + gts_str::trace_files::ask_renumber ,opa.c_str() ,npa.c_str() ,numost.str().c_str() @@ -382,7 +442,9 @@ void cb_trace_files::cb_renumber(void) std::string opa2( osapi::cp932_from_utf8( opa ) ); std::string npa2( osapi::cp932_from_utf8( npa ) ); if (opa2.empty() || npa2.empty()) { - fl_alert("Error:rename \"%s\" \"%s\"" + fl_alert( +// "Error:rename \"%s\" \"%s\"" + gts_str::trace_files::empty_rename_filename ,opa.c_str() ,npa.c_str() ); return; } @@ -405,7 +467,8 @@ void cb_trace_files::cb_browse_open_file( void ) int filter_current= cl_gts_gui.choice_trace_open_image_format->value(); const std::string filepath = ids::path::fltk_native_browse_open( - "Open Images" +// "Open Images" + gts_str::trace_files::open_images ,cl_gts_gui.filinp_trace_open_dir_path->value() ,this->get_open_name_from_number_( static_cast(cl_gts_gui.valout_trace_num_start->value()) @@ -429,20 +492,31 @@ void cb_trace_files::cb_browse_open_file( void ) /* チェック:ファイルヘッド(file head名)が空だとなにもしない */ if (head.empty()) { - fl_alert("No Head in File"); + fl_alert( +// "No Head in File" + gts_str::trace_files::no_head_in_filepath + ,filepath + ); return; } /* チェック:拡張子が対応した種類でないと何もしない */ const int ext_num = this->ext_open.num_from_str( ext ); if ( ext_num < 0 ) { - fl_alert("Bad Extension\"%s\" in File",ext.c_str()); + fl_alert( +// "Bad Extension\"%s\" in File" + gts_str::trace_files::bad_extension_in_filepath + ,ext.c_str()); return; } /* チェック:連番でないならなにもしない */ if (num.empty() || number == -1) { - fl_alert("No Number in File"); + fl_alert( +// "No Number in File" + gts_str::trace_files::not_number_file + ,filepath.c_str() + ); return; } @@ -501,13 +575,16 @@ void cb_trace_files::cb_browse_save_folder( void ) /* Nativeフォルダーブラウザー開く */ #ifdef _WIN32 const std::string filepath =wincom::native_browse_directory_m( - "Select Saving Folder for Trace" +// "Select and Set Saving Folder for Trace" + osapi::cp932_from_utf8( + gts_str::trace_files::select_folder ) ,cl_gts_gui.filinp_trace_save_dir_path->value() ,::fl_xid( cl_gts_gui.window_trace_files ) ); #else const std::string filepath =ids::path::fltk_native_browse_directory( - "Set Saving Folder for Trace" +// "Select and Set Saving Folder for Trace" + gts_str::trace_files::select_folder ,cl_gts_gui.filinp_trace_save_dir_path->value() ).at(0); #endif @@ -536,7 +613,11 @@ void cb_trace_files::cb_set_number( void ) filepath ,dpath ,head ,num ,number ,ext ,nums ); if (head.empty() || nums.empty() || nums.size() <= 0) { - fl_alert( "Not exist file about \'%s\'" ,filepath.c_str() ); + fl_alert( +// "Not exist name or number in \'%s\'" + gts_str::trace_files::filename_without_head_or_number + ,filepath.c_str() + ); return; } @@ -611,6 +692,8 @@ const std::string cb_trace_files::get_open_path( const int number ) { /* Folder & File名が設定していないと空を返す */ if (cl_gts_gui.filinp_trace_open_dir_path->value() == nullptr + || std::string( + cl_gts_gui.filinp_trace_open_dir_path->value()).empty() || this->get_open_name_from_number_( number ).empty()) { return std::string(); } @@ -656,6 +739,8 @@ const std::string cb_trace_files::get_open_path_from_head_and_number_( { /* Folder & File名が設定していないと空を返す */ if (cl_gts_gui.filinp_trace_open_dir_path->value() == nullptr + || std::string( + cl_gts_gui.filinp_trace_open_dir_path->value()).empty() || this->get_open_name_from_head_and_number_( file_head,number).empty()) { return std::string(); @@ -676,6 +761,8 @@ const std::string cb_trace_files::get_save_path( const int number ) { /* Folder & File名が設定していないと空を返す */ if (cl_gts_gui.filinp_trace_save_dir_path->value() == nullptr + || std::string( + cl_gts_gui.filinp_trace_save_dir_path->value()).empty() || this->get_save_name_( number ).empty()) { return std::string(); } @@ -691,6 +778,8 @@ const std::string cb_trace_files::get_save_name_( const int number ) { /* 名(head,num_form,ext)が設定していないと空を返す */ if (cl_gts_gui.strinp_trace_save_file_head->value() == nullptr + || std::string( + cl_gts_gui.strinp_trace_save_file_head->value()).empty() || (0 <= number && cl_gts_gui.output_trace_save_number_format->value() == nullptr) || cl_gts_gui.choice_trace_save_image_format->text() == nullptr) { @@ -763,108 +852,3 @@ void cb_trace_files::cb_switch_trace_filter_erase_dot_noise( const bool sw ) } } //---------------------------------------------------------------------- -void cb_trace_files::cb_browse_save_file( void ) -{ - /* Crop中は保存できない */ - if (cl_gts_master.cl_ogl_view.get_crop_disp_sw()) { - fl_alert("Finish Cropping, Please Scan."); - return; - } - /* ScanもReadもまだしていない */ - if (cl_gts_master.cl_iip_ro90.get_clp_parent() == nullptr ) { - fl_alert("Please Any Scan or Open."); - return; - } - - /* parameter */ - iip_canvas* parent = nullptr; - int rot90=0; - double dpi = 0; - iip_read* read_attr = nullptr; - - /* ファイル読込後 */ - if ( &(cl_gts_master.cl_iip_read) - == cl_gts_master.cl_iip_ro90.get_clp_parent() ) { - parent = &(cl_gts_master.cl_iip_read); - rot90 = 0; /* 画像コンバート処理のみで、回転はしない */ - dpi = cl_gts_master.cl_iip_read.get_d_tif_dpi_x(); - read_attr = &(cl_gts_master.cl_iip_read); - } - else - /* スキャン後 */ - if ( cl_gts_master.cl_iip_scan.get_clp_canvas() - == cl_gts_master.cl_iip_ro90.get_clp_parent() ) { - parent = cl_gts_master.cl_iip_scan.get_clp_canvas(); - rot90 = cl_gts_gui.choice_rot90->value(); - dpi = cl_gts_gui.valinp_area_reso->value(); - } else { - fl_alert("No Image"); - return; - } - - /* parameter */ - std::string save_dpath; - std::string save_fname; - std::string save_filter; - int save_filter_num = 0; - - /* ファイルトレスモード */ - if (cl_gts_master.cl_number.is_trace()) { - save_dpath = cl_gts_gui.filinp_trace_save_dir_path->value(); - save_fname = this->get_save_name_( -1 ); - save_filter = this->ext_save.get_native_filters(); - save_filter_num = cl_gts_gui.choice_trace_save_image_format->value(); - } else - /* スキャンモード */ - if (cl_gts_master.cl_number.is_scan()) { - save_dpath = cl_gts_gui.filinp_scan_save_dir_path->value(); - save_fname = cl_gts_master.cl_scan_and_save.get_save_path( -1 ); - save_filter = cl_gts_master.cl_scan_and_save.ext_save.get_native_filters(); - save_filter_num = cl_gts_gui.choice_scan_save_image_format->value(); - } else { - fl_alert("Not Scan/Trace"); - return; - } - - /* NativeブラウザーSaveで開く */ -//std::cout << __FILE__ << " " << "save_dpath=" << save_dpath << " save_fname=" << save_fname << std::endl; - const std::string fpath_save = ids::path::fltk_native_browse_save( - "Save Image" - ,save_dpath - ,save_fname - ,save_filter - ,save_filter_num - ).at(0); - - /* Cancel */ - if (fpath_save.empty()) { - return; - } - - /* 処理:Rot90 and Effects(color Trace and Erase color dot noise) */ - if (cl_gts_master.rot_and_trace_and_enoise( parent ,rot90 ) != OK) { - return; - } - - /* 保存 */ - if (OK != cl_gts_master.iipg_save( - &(cl_gts_master.cl_iip_edot) - , const_cast(fpath_save.c_str()) - ,dpi - ,rot90 - ,read_attr - )) { - pri_funct_err_bttvr( - "Error : cl_gts_master.iipg_save(-) returns NG" ); - return; - } - - /* 表示:画像の再表示 */ - if (cl_gts_master.redraw_image( - &(cl_gts_master.cl_iip_edot) - , false /* crop sw */ - , false /* force view scanimage sw */ - )) { - return; - } -} diff --git a/sources/libcpp83gts_callback_and_action/cb_trace_files.h b/sources/libcpp83gts_callback_and_action/cb_trace_files.h index 0f42a5f..3678d9f 100644 --- a/sources/libcpp83gts_callback_and_action/cb_trace_files.h +++ b/sources/libcpp83gts_callback_and_action/cb_trace_files.h @@ -45,9 +45,6 @@ class cb_trace_files { void cb_switch_trace_filter_erase_dot_noise( const bool sw ); - /* 1ファイル名前指定保存 */ - void cb_browse_save_file( void ); - private: int read_and_save_crnt_( const int crnt_file_num diff --git a/sources/libcpp83gts_callback_and_action/cb_trace_params.cpp b/sources/libcpp83gts_callback_and_action/cb_trace_params.cpp index 9b00ef4..7ec02da 100644 --- a/sources/libcpp83gts_callback_and_action/cb_trace_params.cpp +++ b/sources/libcpp83gts_callback_and_action/cb_trace_params.cpp @@ -7,6 +7,7 @@ #include "calc_trace_by_hsv.h" /* calc::line_len_from_rad() */ #include "cb_trace_params.h" #include "ids_path_level_from_files.h" +#include "gts_str_language.h" // gts_str:: #include "gts_gui.h" #include "gts_master.h" @@ -506,7 +507,10 @@ const std::string dnd_paste_( const std::string &dnd_str ) { /* 複数のファイルパスはエラー */ if (std::string::npos != dnd_str.find("\n")) { - return "Error : Need Only 1 Filepath"; + return +// "Error : Need Only 1 Filepath" + gts_str::config::need_only_1_filepath + ; } /* 必要な情報に変える */ @@ -521,12 +525,18 @@ const std::string dnd_paste_( const std::string &dnd_str ) if (ext == ".txt") { if (cl_gts_master.cl_memo_config.load_only_trace_params( dnd_str ) == NG) { - return "Error : loading trace_params in config"; + return +// "Error : loading trace_params in config" + gts_str::config::loading_config_error + ; } } /* 拡張子が対応外エラー */ else { - return "Error : Need extension .txt"; + return +// "Error : Need extension .txt" + gts_str::config::need_ext_txt + ; } return std::string(); } diff --git a/sources/libcpp83gts_callback_and_action/fl_gl_image_view.cpp b/sources/libcpp83gts_callback_and_action/fl_gl_image_view.cpp index f6eb75f..d06a20b 100644 --- a/sources/libcpp83gts_callback_and_action/fl_gl_image_view.cpp +++ b/sources/libcpp83gts_callback_and_action/fl_gl_image_view.cpp @@ -5,6 +5,7 @@ #include "FL/fl_ask.H" // fl_alert(-) #include "pri.h" #include "fl_gl_image_view.h" +#include "gts_str_language.h" // gts_str:: #include "ids_path_level_from_files.h" #include "cb_scan_and_save.h" #include "cb_trace_files.h" @@ -133,7 +134,10 @@ const std::string open_files_by_paste_( const std::string &dnd_str ) { /* 複数のファイルパスはエラー */ if (std::string::npos != dnd_str.find("\n")) { - return "Error : Need Only 1 Filepath"; + return +// "Error : Need Only 1 Filepath" + gts_str::config::need_only_1_filepath + ; } /* 必要な情報に変える */ @@ -146,7 +150,10 @@ const std::string open_files_by_paste_( const std::string &dnd_str ) /* ファイルヘッド名がない */ if ( head.empty() ) { - return "Error : Need Head name"; + return +// "Error : Need Head name" + gts_str::fl_gl_image_view::need_image_head_name + ; } /* Configファイル */ @@ -161,7 +168,10 @@ const std::string open_files_by_paste_( const std::string &dnd_str ) /* 画像の拡張子(.tga/.tif)ではない */ if ( cl_gts_master.cl_trace_files.ext_open.num_from_str(ext) < 0 ) { /* 拡張子が対応外 */ - return "Error : Need Extension .tga/.tif/.txt"; + return +// "Error : Need Extension .tga/.tif/.txt" + gts_str::fl_gl_image_view::need_extension_of_image + ; } /* 単体画像ファイル開き表示 */ diff --git a/sources/libcpp83gts_callback_and_action/gts_gui.cpp b/sources/libcpp83gts_callback_and_action/gts_gui.cpp index 8a67412..16f0fb9 100644 --- a/sources/libcpp83gts_callback_and_action/gts_gui.cpp +++ b/sources/libcpp83gts_callback_and_action/gts_gui.cpp @@ -375,10 +375,12 @@ void gts_gui::cb_menite_help_about_i(Fl_Menu_*, void*) { std::ostringstream ost; ost << cl_gts_master.cp_release_name() -<< " Version:" << cl_gts_master.cp_release_number() -<< " Date:" << cl_gts_master.cp_release_date() +<< '\n' << " Version:" << cl_gts_master.cp_release_number() +<< '\n' << " Date:" << cl_gts_master.cp_release_date() +<< '\n' << '\n' << cl_gts_master.cp_release_name() << " is based in part on the work of the FLTK project (http://www.fltk.org)." +<< '\n' << '\n' << "GL_Vender:" << glGetString(GL_VENDOR) // already showed Fl_Gl_Window << '\n' << "GL_Renderer:" << glGetString(GL_RENDERER) // already showed Fl_Gl_Window << '\n' << "GL_Version:" << glGetString(GL_VERSION) // already showed Fl_Gl_Window @@ -405,21 +407,21 @@ Fl_Menu_Item gts_gui::menu_[] = { {"Scan Crop", 0, (Fl_Callback*)gts_gui::cb_menite_scan_crop, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {"Preview Scan", 0x70, (Fl_Callback*)gts_gui::cb_menite_preview_scan, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {"Scan Save", 0xff0d, (Fl_Callback*)gts_gui::cb_menite_scan_save, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Trace Files...", 0x54, (Fl_Callback*)gts_gui::cb_Trace, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Rename...", 0, (Fl_Callback*)gts_gui::cb_Rename, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Renumber...", 0, (Fl_Callback*)gts_gui::cb_Renumber, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Trace Files", 0x54, (Fl_Callback*)gts_gui::cb_Trace, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Rename", 0, (Fl_Callback*)gts_gui::cb_Rename, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Renumber", 0, (Fl_Callback*)gts_gui::cb_Renumber, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {0,0,0,0,0,0,0,0,0}, {"Window", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Area and Rot90...", 0xffbe, (Fl_Callback*)gts_gui::cb_menite_area_and_rot90, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Pixel Type and Bright...", 0xffbf, (Fl_Callback*)gts_gui::cb_menite_pixel_type_and_bright, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Number ...", 0xffc0, (Fl_Callback*)gts_gui::cb_menite_number, 0, 130, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Scan Save...", 0xffc1, (Fl_Callback*)gts_gui::cb_menite_scan_and_save, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Trace Files...", 0xffc2, (Fl_Callback*)gts_gui::cb_menite_trace_files, 0, 130, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Trace Params...", 0xffc3, (Fl_Callback*)gts_gui::cb_menite_trace_params, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Area and Rot90", 0xffbe, (Fl_Callback*)gts_gui::cb_menite_area_and_rot90, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Pixel Type and Bright", 0xffbf, (Fl_Callback*)gts_gui::cb_menite_pixel_type_and_bright, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Number", 0xffc0, (Fl_Callback*)gts_gui::cb_menite_number, 0, 130, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Scan Save", 0xffc1, (Fl_Callback*)gts_gui::cb_menite_scan_and_save, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Trace Files", 0xffc2, (Fl_Callback*)gts_gui::cb_menite_trace_files, 0, 130, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Trace Params", 0xffc3, (Fl_Callback*)gts_gui::cb_menite_trace_params, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {"Trace HSV View", 0xffc4, (Fl_Callback*)gts_gui::cb_menite_trace_hsv_view, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {"Trace Hue Min,Max", 0, (Fl_Callback*)gts_gui::cb_menite_trace_hue_minmax, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Trace Batch...", 0, (Fl_Callback*)gts_gui::cb_menite_trace_batch, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, - {"Select SANE device...", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Trace Batch", 0, (Fl_Callback*)gts_gui::cb_menite_trace_batch, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Select SANE device", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {0,0,0,0,0,0,0,0,0}, {"View", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, {"Zoom", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, @@ -664,7 +666,7 @@ void gts_gui::cb_button_pixel_type_and_bright(fltk_button_pixel_type_and_bright* } void gts_gui::cb_choice_pixel_type_i(Fl_Choice*, void*) { - cl_gts_master.cb_choice_pixel_type_menu(); + cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_menu(); cl_gts_master.cl_scan_and_save.set_gui_ext_list(); } void gts_gui::cb_choice_pixel_type(Fl_Choice* o, void* v) { @@ -863,7 +865,7 @@ void gts_gui::cb_choice_scan_save_image_format(Fl_Choice* o, void* v) { } void gts_gui::cb_choice_scan_num_continue_type_i(Fl_Choice* o, void*) { - cl_gts_master.cl_scan_and_save.cb_change_num_continue_type(o->text()); + cl_gts_master.cl_scan_and_save.cb_change_num_continue_type(o->value()); } void gts_gui::cb_choice_scan_num_continue_type(Fl_Choice* o, void* v) { ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_choice_scan_num_continue_type_i(o,v); @@ -2304,7 +2306,7 @@ Fl_Double_Window* gts_gui::make_window() { valinp_area_offset_cm_x->callback((Fl_Callback*)cb_valinp_area_offset_cm_x); valinp_area_offset_cm_x->when(FL_WHEN_RELEASE); } // Fl_Value_Input* valinp_area_offset_cm_x - { valinp_area_offset_cm_y = new Fl_Value_Input(95, 160, 55, 25, "Y"); + { valinp_area_offset_cm_y = new Fl_Value_Input(100, 160, 55, 25, "Y"); valinp_area_offset_cm_y->box(FL_BORDER_BOX); valinp_area_offset_cm_y->maximum(60); valinp_area_offset_cm_y->callback((Fl_Callback*)cb_valinp_area_offset_cm_y); @@ -2327,7 +2329,7 @@ Fl_Double_Window* gts_gui::make_window() { valinp_area_size_cm_w->callback((Fl_Callback*)cb_valinp_area_size_cm_w); valinp_area_size_cm_w->when(FL_WHEN_RELEASE); } // Fl_Value_Input* valinp_area_size_cm_w - { valinp_area_size_cm_h = new Fl_Value_Input(95, 220, 55, 25, "H"); + { valinp_area_size_cm_h = new Fl_Value_Input(100, 220, 55, 25, "H"); valinp_area_size_cm_h->box(FL_BORDER_BOX); valinp_area_size_cm_h->maximum(60); valinp_area_size_cm_h->callback((Fl_Callback*)cb_valinp_area_size_cm_h); @@ -2343,7 +2345,7 @@ Fl_Double_Window* gts_gui::make_window() { valinp_area_size_pixel_w->callback((Fl_Callback*)cb_valinp_area_size_pixel_w); valinp_area_size_pixel_w->when(FL_WHEN_RELEASE); } // Fl_Value_Input* valinp_area_size_pixel_w - { valinp_area_size_pixel_h = new Fl_Value_Input(95, 250, 55, 25, "H"); + { valinp_area_size_pixel_h = new Fl_Value_Input(100, 250, 55, 25, "H"); valinp_area_size_pixel_h->box(FL_BORDER_BOX); valinp_area_size_pixel_h->maximum(10000); valinp_area_size_pixel_h->callback((Fl_Callback*)cb_valinp_area_size_pixel_h); @@ -2364,12 +2366,12 @@ Fl_Double_Window* gts_gui::make_window() { } // Fl_Group* o o->end(); } // Fl_Group* o - { Fl_Button* o = new Fl_Button(75, 195, 120, 17, "Set Aspect Ratio..."); + { Fl_Button* o = new Fl_Button(75, 195, 120, 20, "Set Aspect Ratio..."); o->callback((Fl_Callback*)cb_Set); } // Fl_Button* o group_area_crop->end(); } // Fl_Group* group_area_crop - { Fl_Button* o = new Fl_Button(75, 125, 60, 17, "Set Max."); + { Fl_Button* o = new Fl_Button(75, 125, 80, 20, "Set Max."); o->callback((Fl_Callback*)cb_Set1); } // Fl_Button* o o->end(); @@ -2426,13 +2428,13 @@ Fl_Double_Window* gts_gui::make_window() { { Fl_Group* o = new Fl_Group(0, 35, 200, 25); { new Fl_Box(0, 35, 75, 25); } // Fl_Box* o - { choice_pixel_type = new Fl_Choice(75, 35, 100, 25, "Pixel Type"); + { choice_pixel_type = new Fl_Choice(75, 35, 110, 25, "Pixel Type"); choice_pixel_type->box(FL_BORDER_BOX); choice_pixel_type->down_box(FL_BORDER_BOX); choice_pixel_type->callback((Fl_Callback*)cb_choice_pixel_type); choice_pixel_type->menu(menu_choice_pixel_type); } // Fl_Choice* choice_pixel_type - { Fl_Box* o = new Fl_Box(175, 35, 25, 25); + { Fl_Box* o = new Fl_Box(185, 35, 15, 25); Fl_Group::current()->resizable(o); } // Fl_Box* o o->end(); @@ -2866,16 +2868,16 @@ Fl_Double_Window* gts_gui::make_window() { o->box(FL_BORDER_BOX); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); { Fl_Group* o = new Fl_Group(1, 320, 198, 25); - { valout_trace_num_start = new Fl_Value_Output(16, 320, 40, 25, "S"); + { valout_trace_num_start = new Fl_Value_Output(21, 320, 40, 25, "S"); valout_trace_num_start->box(FL_BORDER_BOX); } // Fl_Value_Output* valout_trace_num_start - { valout_trace_num_end = new Fl_Value_Output(69, 320, 40, 25, "E"); + { valout_trace_num_end = new Fl_Value_Output(79, 320, 40, 25, "E"); valout_trace_num_end->box(FL_BORDER_BOX); } // Fl_Value_Output* valout_trace_num_end - { Fl_Box* o = new Fl_Box(109, 320, 1, 25); + { Fl_Box* o = new Fl_Box(119, 320, 1, 25); Fl_Group::current()->resizable(o); } // Fl_Box* o - { Fl_Button* o = new Fl_Button(110, 320, 85, 25, "Set Number"); + { Fl_Button* o = new Fl_Button(120, 320, 75, 25, "Set Number"); o->callback((Fl_Callback*)cb_Set3); } // Fl_Button* o o->end(); diff --git a/sources/libcpp83gts_callback_and_action/gts_gui.fl b/sources/libcpp83gts_callback_and_action/gts_gui.fl index bf71fe8..8874dc3 100644 --- a/sources/libcpp83gts_callback_and_action/gts_gui.fl +++ b/sources/libcpp83gts_callback_and_action/gts_gui.fl @@ -81,17 +81,17 @@ cl_gts_master.cb_quit();} tooltip {Scan and Save Files} xywh {5 5 100 20} shortcut 0xff0d divider } MenuItem {} { - label {Trace Files...} + label {Trace Files} callback {cl_gts_master.cl_trace_files.cb_start();} tooltip {Trace and Save Files} xywh {5 5 100 20} shortcut 0x54 } MenuItem {} { - label {Rename...} + label Rename callback {cl_gts_master.cl_trace_files.cb_rename();} xywh {0 0 30 20} } MenuItem {} { - label {Renumber...} + label Renumber callback {cl_gts_master.cl_trace_files.cb_renumber();} xywh {0 0 30 20} } @@ -101,7 +101,7 @@ cl_gts_master.cb_quit();} xywh {10 10 100 20} } { MenuItem menite_area_and_rot90 { - label {Area and Rot90...} + label {Area and Rot90} callback {if (menite_area_and_rot90->value()) { window_main_view->show();/* Need for Minimize */ window_area_and_rot90->show(); @@ -111,7 +111,7 @@ cl_gts_master.cb_quit();} xywh {5 5 100 20} type Toggle shortcut 0xffbe } MenuItem menite_pixel_type_and_bright { - label {Pixel Type and Bright...} + label {Pixel Type and Bright} callback {if (menite_pixel_type_and_bright->value()) { window_main_view->show();/* Need for Minimize */ window_pixel_type_and_bright->show(); @@ -121,7 +121,7 @@ cl_gts_master.cb_quit();} xywh {5 5 100 20} type Toggle shortcut 0xffbf } MenuItem menite_number { - label {Number ...} + label Number callback {if (menite_number->value()) { window_main_view->show();/* Need for Minimize */ window_number->show(); @@ -131,7 +131,7 @@ cl_gts_master.cb_quit();} xywh {5 5 100 20} type Toggle shortcut 0xffc0 divider } MenuItem menite_scan_and_save { - label {Scan Save...} + label {Scan Save} callback {if (menite_scan_and_save->value()) { window_main_view->show();/* Need for Minimize */ window_scan_and_save->show(); @@ -141,7 +141,7 @@ cl_gts_master.cb_quit();} xywh {10 10 100 20} type Toggle shortcut 0xffc1 } MenuItem menite_trace_files { - label {Trace Files...} + label {Trace Files} callback {if (menite_trace_files->value()) { window_main_view->show();/* Need for Minimize */ window_trace_files->show(); @@ -151,7 +151,7 @@ cl_gts_master.cb_quit();} xywh {0 0 30 20} type Toggle shortcut 0xffc2 divider } MenuItem menite_trace_params { - label {Trace Params...} + label {Trace Params} callback {if (menite_trace_params->value()) { window_main_view->show();/* Need for Minimize */ window_trace_params->show(); @@ -184,7 +184,7 @@ cl_gts_master.cb_quit();} xywh {0 0 30 20} type Toggle } MenuItem menite_trace_batch { - label {Trace Batch...} + label {Trace Batch} callback {if (menite_trace_batch->value()) { window_main_view->show();/* Need for Minimize */ window_trace_batch->show(); @@ -194,7 +194,7 @@ cl_gts_master.cb_quit();} xywh {0 0 100 20} type Toggle } MenuItem menite_sane_device { - label {Select SANE device...} + label {Select SANE device} xywh {0 0 100 20} hide } } @@ -355,10 +355,12 @@ else { callback {std::ostringstream ost; ost << cl_gts_master.cp_release_name() -<< " Version:" << cl_gts_master.cp_release_number() -<< " Date:" << cl_gts_master.cp_release_date() +<< '\\n' << " Version:" << cl_gts_master.cp_release_number() +<< '\\n' << " Date:" << cl_gts_master.cp_release_date() +<< '\\n' << '\\n' << cl_gts_master.cp_release_name() << " is based in part on the work of the FLTK project (http://www.fltk.org)." +<< '\\n' << '\\n' << "GL_Vender:" << glGetString(GL_VENDOR) // already showed Fl_Gl_Window << '\\n' << "GL_Renderer:" << glGetString(GL_RENDERER) // already showed Fl_Gl_Window << '\\n' << "GL_Version:" << glGetString(GL_VERSION) // already showed Fl_Gl_Window @@ -522,7 +524,7 @@ cl_gts_gui.menite_area_and_rot90->clear();} Fl_Value_Input valinp_area_offset_cm_y { label Y callback {cl_gts_master.cl_area_and_rot90.cb_area_offset_cm_y();} - xywh {95 160 55 25} box BORDER_BOX when 4 maximum 60 + xywh {100 160 55 25} box BORDER_BOX when 4 maximum 60 } Fl_Text_Display {} { label cm @@ -544,7 +546,7 @@ cl_gts_gui.menite_area_and_rot90->clear();} Fl_Value_Input valinp_area_size_cm_h { label H callback {cl_gts_master.cl_area_and_rot90.cb_area_size_cm_h();} - xywh {95 220 55 25} box BORDER_BOX when 4 maximum 60 + xywh {100 220 55 25} box BORDER_BOX when 4 maximum 60 } } Fl_Group {} {open @@ -558,7 +560,7 @@ cl_gts_gui.menite_area_and_rot90->clear();} Fl_Value_Input valinp_area_size_pixel_h { label H callback {cl_gts_master.cl_area_and_rot90.cb_area_size_pixel_h();} - xywh {95 250 55 25} box BORDER_BOX when 4 maximum 10000 + xywh {100 250 55 25} box BORDER_BOX when 4 maximum 10000 } } Fl_Group {} {open @@ -579,13 +581,13 @@ cl_gts_gui.menite_area_and_rot90->clear();} callback {cl_gts_master.cl_area_and_rot90.cb_dialog_set_aspect_ratio( window_area_and_rot90 ,o );} - xywh {75 195 120 17} + xywh {75 195 120 20} } } Fl_Button {} { label {Set Max.} callback {cl_gts_master.cl_area_and_rot90.cb_area_set_max();} - xywh {75 125 60 17} + xywh {75 125 80 20} } } Fl_Group {} { @@ -641,9 +643,9 @@ cl_gts_gui.menite_pixel_type_and_bright->clear();} } Fl_Choice choice_pixel_type { label {Pixel Type} - callback {cl_gts_master.cb_choice_pixel_type_menu(); + callback {cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_menu(); cl_gts_master.cl_scan_and_save.set_gui_ext_list();} open - xywh {75 35 100 25} box BORDER_BOX down_box BORDER_BOX + xywh {75 35 110 25} box BORDER_BOX down_box BORDER_BOX } { MenuItem {} { label BW @@ -659,7 +661,7 @@ cl_gts_master.cl_scan_and_save.set_gui_ext_list();} open } } Fl_Box {} { - xywh {175 35 25 25} resizable + xywh {185 35 15 25} resizable } } Fl_Group group_bw {open @@ -904,7 +906,7 @@ if (cl_gts_master.cl_number.is_scan()) { xywh {1 235 198 25} } { Fl_Choice choice_scan_num_continue_type { - callback {cl_gts_master.cl_scan_and_save.cb_change_num_continue_type(o->text());} open + callback {cl_gts_master.cl_scan_and_save.cb_change_num_continue_type(o->value());} open xywh {5 235 80 25} box BORDER_BOX down_box BORDER_BOX } { MenuItem {} { @@ -1138,20 +1140,20 @@ if (cl_gts_master.cl_number.is_trace()) { } { Fl_Value_Output valout_trace_num_start { label S - xywh {16 320 40 25} box BORDER_BOX + xywh {21 320 40 25} box BORDER_BOX } Fl_Value_Output valout_trace_num_end { label E - xywh {69 320 40 25} box BORDER_BOX + xywh {79 320 40 25} box BORDER_BOX } Fl_Box {} { - xywh {109 320 1 25} resizable + xywh {119 320 1 25} resizable } Fl_Button {} { label {Set Number} callback {cl_gts_master.cl_trace_files.cb_set_number(); cl_gts_master.cl_trace_files.cb_check_existing_saved_file();} - xywh {110 320 85 25} + xywh {120 320 75 25} } } } diff --git a/sources/libcpp83gts_callback_and_action/gts_gui_ja.cpp b/sources/libcpp83gts_callback_and_action/gts_gui_ja.cpp new file mode 100644 index 0000000..af608a0 --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/gts_gui_ja.cpp @@ -0,0 +1,3797 @@ +// generated by Fast Light User Interface Designer (fluid) version 1.0304 + +#include "gts_gui_ja.h" +/** + for "Help" --> "About This Application..." +*/ +#include +/** + for "Help" --> "About This Application..." +*/ +#include +#include "gts_master.h" + +void gts_gui::cb_window_main_view_i(Fl_Double_Window*, void*) { + cl_gts_master.cb_quit(); +} +void gts_gui::cb_window_main_view(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_main_view_i(o,v); +} + +void gts_gui::cb_1_i(Fl_Menu_*, void*) { + cl_gts_master.cl_image.open(); +} +void gts_gui::cb_1(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_1_i(o,v); +} + +void gts_gui::cb_11_i(Fl_Menu_*, void*) { + cl_gts_master.cl_image.save_as(); +} +void gts_gui::cb_11(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_11_i(o,v); +} + +void gts_gui::cb__i(Fl_Menu_*, void*) { + cl_gts_master.cl_config.open(); +} +void gts_gui::cb_(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb__i(o,v); +} + +void gts_gui::cb_2_i(Fl_Menu_*, void*) { + cl_gts_master.cl_config.save(); +} +void gts_gui::cb_2(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_2_i(o,v); +} + +void gts_gui::cb_3_i(Fl_Menu_*, void*) { + cl_gts_master.cl_config.save_as(); +} +void gts_gui::cb_3(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_3_i(o,v); +} + +void gts_gui::cb_4_i(Fl_Menu_*, void*) { + // cl_gts_master.reserve_by_menu(E_ACT_QUIT); +cl_gts_master.cb_quit(); +} +void gts_gui::cb_4(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_4_i(o,v); +} + +void gts_gui::cb_menite_scan_crop_i(Fl_Menu_*, void*) { + cl_gts_master.cl_area_and_rot90.cb_scan_full_area_and_crop(); +} +void gts_gui::cb_menite_scan_crop(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_scan_crop_i(o,v); +} + +void gts_gui::cb_menite_preview_scan_i(Fl_Menu_*, void*) { + cl_gts_master.cb_scan_and_preview(); +} +void gts_gui::cb_menite_preview_scan(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_preview_scan_i(o,v); +} + +void gts_gui::cb_menite_scan_save_i(Fl_Menu_*, void*) { + cl_gts_master.cl_scan_and_save.cb_start(); +} +void gts_gui::cb_menite_scan_save(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_scan_save_i(o,v); +} + +void gts_gui::cb_21_i(Fl_Menu_*, void*) { + cl_gts_master.cl_trace_files.cb_start(); +} +void gts_gui::cb_21(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_21_i(o,v); +} + +void gts_gui::cb_5_i(Fl_Menu_*, void*) { + cl_gts_master.cl_trace_files.cb_rename(); +} +void gts_gui::cb_5(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_5_i(o,v); +} + +void gts_gui::cb_6_i(Fl_Menu_*, void*) { + cl_gts_master.cl_trace_files.cb_renumber(); +} +void gts_gui::cb_6(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_6_i(o,v); +} + +void gts_gui::cb_menite_area_and_rot90_i(Fl_Menu_*, void*) { + if (menite_area_and_rot90->value()) { + window_main_view->show();/* Need for Minimize */ + window_area_and_rot90->show(); +} else { + window_area_and_rot90->hide(); +}; +} +void gts_gui::cb_menite_area_and_rot90(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_area_and_rot90_i(o,v); +} + +void gts_gui::cb_menite_pixel_type_and_bright_i(Fl_Menu_*, void*) { + if (menite_pixel_type_and_bright->value()) { + window_main_view->show();/* Need for Minimize */ + window_pixel_type_and_bright->show(); +} else { + window_pixel_type_and_bright->hide(); +}; +} +void gts_gui::cb_menite_pixel_type_and_bright(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_pixel_type_and_bright_i(o,v); +} + +void gts_gui::cb_menite_number_i(Fl_Menu_*, void*) { + if (menite_number->value()) { + window_main_view->show();/* Need for Minimize */ + window_number->show(); +} else { + window_number->hide(); +}; +} +void gts_gui::cb_menite_number(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_number_i(o,v); +} + +void gts_gui::cb_menite_scan_and_save_i(Fl_Menu_*, void*) { + if (menite_scan_and_save->value()) { + window_main_view->show();/* Need for Minimize */ + window_scan_and_save->show(); +} else { + window_scan_and_save->hide(); +}; +} +void gts_gui::cb_menite_scan_and_save(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_scan_and_save_i(o,v); +} + +void gts_gui::cb_menite_trace_files_i(Fl_Menu_*, void*) { + if (menite_trace_files->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_files->show(); +} else { + window_trace_files->hide(); +}; +} +void gts_gui::cb_menite_trace_files(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_trace_files_i(o,v); +} + +void gts_gui::cb_menite_trace_params_i(Fl_Menu_*, void*) { + if (menite_trace_params->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_params->show(); +} else { + window_trace_params->hide(); +}; +} +void gts_gui::cb_menite_trace_params(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_trace_params_i(o,v); +} + +void gts_gui::cb_menite_trace_hsv_view_i(Fl_Menu_*, void*) { + if (menite_trace_hsv_view->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_hsv_view->show(); +} else { + window_trace_hsv_view->hide(); +}; +} +void gts_gui::cb_menite_trace_hsv_view(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_trace_hsv_view_i(o,v); +} + +void gts_gui::cb_menite_trace_hue_minmax_i(Fl_Menu_*, void*) { + if (menite_trace_hue_minmax->value()) { + cl_gts_master.cl_trace_params.cb_hue_minmax_init_editor( + cl_gts_master.cl_trace_params.get_hue_minmax_editing_number() + ); + window_main_view->show();/* Need for Minimize */ + window_trace_hue_minmax->show(); +} else { + window_trace_hue_minmax->hide(); +}; +} +void gts_gui::cb_menite_trace_hue_minmax(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_trace_hue_minmax_i(o,v); +} + +void gts_gui::cb_menite_trace_batch_i(Fl_Menu_*, void*) { + if (menite_trace_batch->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_batch->show(); +} else { + window_trace_batch->hide(); +}; +} +void gts_gui::cb_menite_trace_batch(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_trace_batch_i(o,v); +} + +void gts_gui::cb_7_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_ZOOM_IN_TWICE_AT_CEN); +} +void gts_gui::cb_7(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_7_i(o,v); +} + +void gts_gui::cb_8_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_ZOOM_OUT_HALF_AT_CEN); +} +void gts_gui::cb_8(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_8_i(o,v); +} + +void gts_gui::cb_9_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_ZOOM_IN_TWICE_AT_POS); +} +void gts_gui::cb_9(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_9_i(o,v); +} + +void gts_gui::cb_a_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_ZOOM_OUT_HALF_AT_POS); +} +void gts_gui::cb_a(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_a_i(o,v); +} + +void gts_gui::cb_b_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_ZOOM_E01); +} +void gts_gui::cb_b(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_b_i(o,v); +} + +void gts_gui::cb_c_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_ALL_VIEW); +} +void gts_gui::cb_c(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_c_i(o,v); +} + +void gts_gui::cb_d_i(Fl_Menu_*, void*) { + if (cl_gts_master.cl_number.selected_prev_frame()) { + cl_gts_master.cb_number_read_and_trace_and_preview(); +}; +} +void gts_gui::cb_d(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_d_i(o,v); +} + +void gts_gui::cb_e_i(Fl_Menu_*, void*) { + if (cl_gts_master.cl_number.selected_next_frame()) { + cl_gts_master.cb_number_read_and_trace_and_preview(); +}; +} +void gts_gui::cb_e(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_e_i(o,v); +} + +void gts_gui::cb_menite_wview_main_i(Fl_Menu_*, void*) { + if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_main(); +} +else { + menite_wview_main->setonly(); +}; +} +void gts_gui::cb_menite_wview_main(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_wview_main_i(o,v); +} + +void gts_gui::cb_menite_wview_sub_i(Fl_Menu_*, void*) { + if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_sub(); +} +else { + menite_wview_main->setonly(); +}; +} +void gts_gui::cb_menite_wview_sub(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_wview_sub_i(o,v); +} + +void gts_gui::cb_menite_wview_lr_i(Fl_Menu_*, void*) { + if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_lr(); +} +else { + menite_wview_main->setonly(); +}; +} +void gts_gui::cb_menite_wview_lr(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_wview_lr_i(o,v); +} + +void gts_gui::cb_menite_wview_ud_i(Fl_Menu_*, void*) { + if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_ud(); +} +else { + menite_wview_main->setonly(); +}; +} +void gts_gui::cb_menite_wview_ud(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_wview_ud_i(o,v); +} + +void gts_gui::cb_FullColor_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_RGB_TO_RGB); +} +void gts_gui::cb_FullColor(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_FullColor_i(o,v); +} + +void gts_gui::cb_Red_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_RED_TO_RED); +} +void gts_gui::cb_Red(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Red_i(o,v); +} + +void gts_gui::cb_Green_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_GRE_TO_GRE); +} +void gts_gui::cb_Green(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Green_i(o,v); +} + +void gts_gui::cb_Blue_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_BLU_TO_BLU); +} +void gts_gui::cb_Blue(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Blue_i(o,v); +} + +void gts_gui::cb_Red1_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_RED_TO_GRAY); +} +void gts_gui::cb_Red1(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Red1_i(o,v); +} + +void gts_gui::cb_Green1_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_GRE_TO_GRAY); +} +void gts_gui::cb_Green1(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Green1_i(o,v); +} + +void gts_gui::cb_Blue1_i(Fl_Menu_*, void*) { + cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_BLU_TO_GRAY); +} +void gts_gui::cb_Blue1(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Blue1_i(o,v); +} + +void gts_gui::cb_menite_help_about_i(Fl_Menu_*, void*) { + std::ostringstream ost; +ost +<< cl_gts_master.cp_release_name() +<< '\n' << " Version:" << cl_gts_master.cp_release_number() +<< '\n' << " Date:" << cl_gts_master.cp_release_date() +<< '\n' +<< '\n' << cl_gts_master.cp_release_name() +<< " is based in part on the work of the FLTK project (http://www.fltk.org)." +<< '\n' +<< '\n' << "GL_Vender:" << glGetString(GL_VENDOR) // already showed Fl_Gl_Window +<< '\n' << "GL_Renderer:" << glGetString(GL_RENDERER) // already showed Fl_Gl_Window +<< '\n' << "GL_Version:" << glGetString(GL_VERSION) // already showed Fl_Gl_Window +<< '\n' << "ScannerType:" << cl_gts_master.cl_iip_scan.get_cp_machine_type() +<< '\n' << "ScannerMaxWidth(cm):" << cl_gts_gui.valout_scanner_size_cm_w->value() +<< '\n' << "ScannerMaxHeight(cm):" << cl_gts_gui.valout_scanner_size_cm_h->value() +; +fl_message( ost.str().c_str() ); +} +void gts_gui::cb_menite_help_about(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_help_about_i(o,v); +} + +Fl_Menu_Item gts_gui::menu_[] = { + {"\343\203\225\343\202\241\343\202\244\343\203\253", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\224\273\345\203\217 \351\226\213\343\201\217(1\346\236\232)...", 0x4006f, (Fl_Callback*)gts_gui::cb_1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\224\273\345\203\217 \345\210\245\345\220\215\343\201\247\344\277\235\ +\345\255\230(1\346\236\232)...", 0x50073, (Fl_Callback*)gts_gui::cb_11, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\350\250\255\345\256\232 \350\252\255\350\276\274\343\201\277...", 0x8006f, (Fl_Callback*)gts_gui::cb_, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\350\250\255\345\256\232 \344\277\235\345\255\230", 0x80073, (Fl_Callback*)gts_gui::cb_2, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\350\250\255\345\256\232 \345\210\245\345\220\215\343\201\247\344\277\235\ +\345\255\230...", 0x90073, (Fl_Callback*)gts_gui::cb_3, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\265\202\344\272\206", 0x40071, (Fl_Callback*)gts_gui::cb_4, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"\345\256\237\350\241\214", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\265\343\202\244\343\202\272\350\250\255\345\256\232", 0, (Fl_Callback*)gts_gui::cb_menite_scan_crop, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\203\227\343\203\254\343\203\223\343\203\245\343\203\274", 0x70, (Fl_Callback*)gts_gui::cb_menite_preview_scan, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\271\343\202\255\343\203\243\343\203\263\344\277\235\345\255\230", 0xff0d, (Fl_Callback*)gts_gui::cb_menite_scan_save, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\203\225\343\202\241\343\202\244\343\203\253""2\345\200\244\345\214\226", 0x54, (Fl_Callback*)gts_gui::cb_21, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\203\252\343\203\215\343\203\274\343\203\240", 0, (Fl_Callback*)gts_gui::cb_5, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\203\252\343\203\212\343\203\263\343\203\220\343\203\274", 0, (Fl_Callback*)gts_gui::cb_6, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"\343\202\246\343\202\244\343\203\263\343\203\211\343\202\246", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\265\343\202\244\343\202\272\343\201\250\350\247\243\345\203\217\345\ +\272\246", 0xffbe, (Fl_Callback*)gts_gui::cb_menite_area_and_rot90, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\277\343\202\244\343\203\227\351\201\270\346\212\236\343\201\250\346\ +\230\216\343\202\213\343\201\225", 0xffbf, (Fl_Callback*)gts_gui::cb_menite_pixel_type_and_bright, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\203\212\343\203\263\343\203\220\343\203\274", 0xffc0, (Fl_Callback*)gts_gui::cb_menite_number, 0, 130, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\224\273\345\203\217\344\277\235\345\255\230\345\240\264\346\211\200", 0xffc1, (Fl_Callback*)gts_gui::cb_menite_scan_and_save, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"2\345\200\244\345\214\226\343\203\220\343\203\203\343\203\201", 0xffc2, (Fl_Callback*)gts_gui::cb_menite_trace_files, 0, 130, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\267\232\343\201\256\350\252\277\346\225\264", 0xffc3, (Fl_Callback*)gts_gui::cb_menite_trace_params, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\267\232\343\201\256HSV\350\211\262\347\253\213\344\275\223", 0xffc4, (Fl_Callback*)gts_gui::cb_menite_trace_hsv_view, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\267\232\343\201\256\350\211\262\347\233\270\347\257\204\345\233\262", 0, (Fl_Callback*)gts_gui::cb_menite_trace_hue_minmax, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\344\270\200\346\213\254""2\345\200\244\345\214\226\343\203\220\343\203\203\ +\343\203\201", 0, (Fl_Callback*)gts_gui::cb_menite_trace_batch, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Select SANE device", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"\350\241\250\347\244\272", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\272\343\203\274\343\203\240", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\224\273\351\235\242\344\270\255\345\277\203\343\201\213\343\202\211\346\ +\213\241\345\244\247", 0x7a, (Fl_Callback*)gts_gui::cb_7, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\347\224\273\351\235\242\344\270\255\345\277\203\343\201\213\343\202\211\347\ +\270\256\345\260\217", 0x78, (Fl_Callback*)gts_gui::cb_8, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\253\343\203\274\343\202\275\343\203\253\344\275\215\347\275\256\343\ +\201\213\343\202\211\346\213\241\345\244\247", 0x1007a, (Fl_Callback*)gts_gui::cb_9, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\253\343\203\274\343\202\275\343\203\253\344\275\215\347\275\256\343\ +\201\213\343\202\211\347\270\256\345\260\217", 0x10078, (Fl_Callback*)gts_gui::cb_a, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\203\224\343\202\257\343\202\273\343\203\253\347\255\211\345\200\215", 0x6e, (Fl_Callback*)gts_gui::cb_b, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\345\205\250\344\275\223\350\241\250\347\244\272", 0x6d, (Fl_Callback*)gts_gui::cb_c, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"\343\203\225\343\203\254\343\203\274\343\203\240", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\345\276\252\347\222\260", 0, 0, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\351\200\206\351\200\201\343\202\212", 0xff52, (Fl_Callback*)gts_gui::cb_d, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\351\240\206\351\200\201\343\202\212", 0xff54, (Fl_Callback*)gts_gui::cb_e, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"2\345\200\244\345\214\226", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\271\343\202\255\343\203\243\343\203\263\347\224\273\345\203\217", 0xffc6, (Fl_Callback*)gts_gui::cb_menite_wview_main, 0, 12, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"2\345\200\244\345\214\226\347\224\273\345\203\217", 0xffc7, (Fl_Callback*)gts_gui::cb_menite_wview_sub, 0, 8, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\345\267\246\345\217\263\345\210\206\345\211\262", 0xffc8, (Fl_Callback*)gts_gui::cb_menite_wview_lr, 0, 8, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\344\270\212\344\270\213\345\210\206\345\211\262", 0xffc9, (Fl_Callback*)gts_gui::cb_menite_wview_ud, 0, 8, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0}, + {"Channels", 0, 0, 0, 80, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"FullColor", 0, (Fl_Callback*)gts_gui::cb_FullColor, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Red", 0, (Fl_Callback*)gts_gui::cb_Red, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Green", 0, (Fl_Callback*)gts_gui::cb_Green, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Blue", 0, (Fl_Callback*)gts_gui::cb_Blue, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Red to grayscale", 0, (Fl_Callback*)gts_gui::cb_Red1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Green to grayscale", 0, (Fl_Callback*)gts_gui::cb_Green1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Blue to grayscale", 0, (Fl_Callback*)gts_gui::cb_Blue1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"\343\203\230\343\203\253\343\203\227", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\201\223\343\201\256\343\202\242\343\203\227\343\203\252\343\201\253\343\ +\201\244\343\201\204\343\201\246...", 0, (Fl_Callback*)gts_gui::cb_menite_help_about, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0} +}; +Fl_Menu_Item* gts_gui::menite_scan_crop = gts_gui::menu_ + 9; +Fl_Menu_Item* gts_gui::menite_preview_scan = gts_gui::menu_ + 10; +Fl_Menu_Item* gts_gui::menite_scan_save = gts_gui::menu_ + 11; +Fl_Menu_Item* gts_gui::menite_area_and_rot90 = gts_gui::menu_ + 17; +Fl_Menu_Item* gts_gui::menite_pixel_type_and_bright = gts_gui::menu_ + 18; +Fl_Menu_Item* gts_gui::menite_number = gts_gui::menu_ + 19; +Fl_Menu_Item* gts_gui::menite_scan_and_save = gts_gui::menu_ + 20; +Fl_Menu_Item* gts_gui::menite_trace_files = gts_gui::menu_ + 21; +Fl_Menu_Item* gts_gui::menite_trace_params = gts_gui::menu_ + 22; +Fl_Menu_Item* gts_gui::menite_trace_hsv_view = gts_gui::menu_ + 23; +Fl_Menu_Item* gts_gui::menite_trace_hue_minmax = gts_gui::menu_ + 24; +Fl_Menu_Item* gts_gui::menite_trace_batch = gts_gui::menu_ + 25; +Fl_Menu_Item* gts_gui::menite_sane_device = gts_gui::menu_ + 26; +Fl_Menu_Item* gts_gui::menite_frame_cyclic = gts_gui::menu_ + 38; +Fl_Menu_Item* gts_gui::menite_wview_main = gts_gui::menu_ + 43; +Fl_Menu_Item* gts_gui::menite_wview_sub = gts_gui::menu_ + 44; +Fl_Menu_Item* gts_gui::menite_wview_lr = gts_gui::menu_ + 45; +Fl_Menu_Item* gts_gui::menite_wview_ud = gts_gui::menu_ + 46; +Fl_Menu_Item* gts_gui::menite_help_about = gts_gui::menu_ + 59; + +void gts_gui::cb_scrbar_view_x_i(Fl_Scrollbar* o, void*) { + cl_gts_master.reserve_by_scroll_x( o->value() ); +} +void gts_gui::cb_scrbar_view_x(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_scrbar_view_x_i(o,v); +} + +void gts_gui::cb_scrbar_view_y_i(Fl_Scrollbar* o, void*) { + cl_gts_master.reserve_by_scroll_y( o->value() ); +} +void gts_gui::cb_scrbar_view_y(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_scrbar_view_y_i(o,v); +} + +void gts_gui::cb_button_rescan_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_rescan(); +} +void gts_gui::cb_button_rescan(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_button_rescan_i(o,v); +} + +void gts_gui::cb_Enter_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_next(); +} +void gts_gui::cb_Enter(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Enter_i(o,v); +} + +void gts_gui::cb_Esc_i(Fl_Button*, void*) { + cl_gts_gui.window_next_scan_non_modal->position( +cl_gts_gui.window_next_scan->x(), +cl_gts_gui.window_next_scan->y() +); +cl_gts_gui.window_next_scan->hide(); +} +void gts_gui::cb_Esc(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Esc_i(o,v); +} + +void gts_gui::cb_window_next_scan_non_modal_i(Fl_Double_Window*, void*) { + cl_gts_master.cl_scan_and_save.cb_cancel(); +cl_gts_gui.window_next_scan->position( +cl_gts_gui.window_next_scan_non_modal->x(), +cl_gts_gui.window_next_scan_non_modal->y() +); +cl_gts_gui.window_next_scan_non_modal->hide(); +} +void gts_gui::cb_window_next_scan_non_modal(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_next_scan_non_modal_i(o,v); +} + +void gts_gui::cb_button_next_save_non_modal_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_save(true); +} +void gts_gui::cb_button_next_save_non_modal(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_button_next_save_non_modal_i(o,v); +} + +void gts_gui::cb_Esc1_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_cancel(); +cl_gts_gui.window_next_scan->position( +cl_gts_gui.window_next_scan_non_modal->x(), +cl_gts_gui.window_next_scan_non_modal->y() +); +cl_gts_gui.window_next_scan_non_modal->hide(); +} +void gts_gui::cb_Esc1(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_Esc1_i(o,v); +} + +void gts_gui::cb_window_area_and_rot90_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_area_and_rot90->hide(); +cl_gts_gui.menite_area_and_rot90->clear(); +} +void gts_gui::cb_window_area_and_rot90(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_area_and_rot90_i(o,v); +} + +void gts_gui::cb_button_area_and_rot90_i(fltk_button_area_and_rot90*, void*) { + cl_gts_master.cl_config.open_only_area_and_rot90(); +} +void gts_gui::cb_button_area_and_rot90(fltk_button_area_and_rot90* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_button_area_and_rot90_i(o,v); +} + +void gts_gui::cb_valinp_area_reso_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_reso(); +} +void gts_gui::cb_valinp_area_reso(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_valinp_area_reso_i(o,v); +} + +void gts_gui::cb_choice_rot90_i(Fl_Choice*, void*) { + cl_gts_master.cl_area_and_rot90.cb_rotate_per_90_when_scan(); +} +void gts_gui::cb_choice_rot90(Fl_Choice* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_choice_rot90_i(o,v); +} + +Fl_Menu_Item gts_gui::menu_choice_rot90[] = { + {"-90", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"0", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"90", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"180", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0} +}; + +void gts_gui::cb_button_scan_crop_i(Fl_Button*, void*) { + cl_gts_master.cl_area_and_rot90.cb_scan_full_area_and_crop(); +} +void gts_gui::cb_button_scan_crop(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_button_scan_crop_i(o,v); +} + +void gts_gui::cb_valinp_area_offset_cm_x_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_offset_cm_x(); +} +void gts_gui::cb_valinp_area_offset_cm_x(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_area_offset_cm_x_i(o,v); +} + +void gts_gui::cb_valinp_area_offset_cm_y_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_offset_cm_y(); +} +void gts_gui::cb_valinp_area_offset_cm_y(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_area_offset_cm_y_i(o,v); +} + +void gts_gui::cb_valinp_area_size_cm_w_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_size_cm_w(); +} +void gts_gui::cb_valinp_area_size_cm_w(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_area_size_cm_w_i(o,v); +} + +void gts_gui::cb_valinp_area_size_cm_h_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_size_cm_h(); +} +void gts_gui::cb_valinp_area_size_cm_h(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_area_size_cm_h_i(o,v); +} + +void gts_gui::cb_valinp_area_size_pixel_w_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_size_pixel_w(); +} +void gts_gui::cb_valinp_area_size_pixel_w(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_area_size_pixel_w_i(o,v); +} + +void gts_gui::cb_valinp_area_size_pixel_h_i(Fl_Value_Input*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_size_pixel_h(); +} +void gts_gui::cb_valinp_area_size_pixel_h(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_area_size_pixel_h_i(o,v); +} + +void gts_gui::cb_f_i(Fl_Button* o, void*) { + cl_gts_master.cl_area_and_rot90.cb_dialog_set_aspect_ratio( + window_area_and_rot90 ,o +); +} +void gts_gui::cb_f(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_f_i(o,v); +} + +void gts_gui::cb_10_i(Fl_Button*, void*) { + cl_gts_master.cl_area_and_rot90.cb_area_set_max(); +} +void gts_gui::cb_10(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_10_i(o,v); +} + +void gts_gui::cb_window_pixel_type_and_bright_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_pixel_type_and_bright->hide(); +cl_gts_gui.menite_pixel_type_and_bright->clear(); +} +void gts_gui::cb_window_pixel_type_and_bright(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_pixel_type_and_bright_i(o,v); +} + +void gts_gui::cb_button_pixel_type_and_bright_i(fltk_button_pixel_type_and_bright*, void*) { + cl_gts_master.cl_config.open_only_pixel_type_and_bright(); +} +void gts_gui::cb_button_pixel_type_and_bright(fltk_button_pixel_type_and_bright* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_button_pixel_type_and_bright_i(o,v); +} + +void gts_gui::cb_choice_pixel_type_i(Fl_Choice*, void*) { + cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_menu(); +cl_gts_master.cl_scan_and_save.set_gui_ext_list(); +} +void gts_gui::cb_choice_pixel_type(Fl_Choice* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_choice_pixel_type_i(o,v); +} + +Fl_Menu_Item gts_gui::menu_choice_pixel_type[] = { + {"\347\231\275\351\273\222(2\351\232\216\350\252\277)", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\260\343\203\254\343\203\274(8\343\203\223\343\203\203\343\203\210)", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\253\343\203\251\343\203\274(24\343\203\223\343\203\203\343\203\210)", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0} +}; + +void gts_gui::cb_valinp_bw_threshold_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_bw_threshold)->value(o->value()); +} +void gts_gui::cb_valinp_bw_threshold(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_bw_threshold_i(o,v); +} + +void gts_gui::cb_scrbar_bw_threshold_i(Fl_Scrollbar* o, void*) { + valinp_bw_threshold->value(o->value()); +} +void gts_gui::cb_scrbar_bw_threshold(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_bw_threshold_i(o,v); +} + +void gts_gui::cb_valinp_grayscale_brightness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_grayscale_brightness)->value(o->value()); +} +void gts_gui::cb_valinp_grayscale_brightness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_grayscale_brightness_i(o,v); +} + +void gts_gui::cb_scrbar_grayscale_brightness_i(Fl_Scrollbar* o, void*) { + valinp_grayscale_brightness->value(o->value()); +} +void gts_gui::cb_scrbar_grayscale_brightness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_grayscale_brightness_i(o,v); +} + +void gts_gui::cb_valinp_grayscale_contrast_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_grayscale_contrast)->value(o->value()); +} +void gts_gui::cb_valinp_grayscale_contrast(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_grayscale_contrast_i(o,v); +} + +void gts_gui::cb_scrbar_grayscale_contrast_i(Fl_Scrollbar* o, void*) { + valinp_grayscale_contrast->value(o->value()); +} +void gts_gui::cb_scrbar_grayscale_contrast(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_grayscale_contrast_i(o,v); +} + +void gts_gui::cb_valinp_grayscale_gamma_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_grayscale_gamma)->value(o->value()); +} +void gts_gui::cb_valinp_grayscale_gamma(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_grayscale_gamma_i(o,v); +} + +void gts_gui::cb_scrbar_grayscale_gamma_i(Fl_Scrollbar* o, void*) { + valinp_grayscale_gamma->value(((Fl_Valuator *)o)->value()); +} +void gts_gui::cb_scrbar_grayscale_gamma(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_grayscale_gamma_i(o,v); +} + +void gts_gui::cb_valinp_rgb_brightness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_rgb_brightness)->value(o->value()); +} +void gts_gui::cb_valinp_rgb_brightness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_rgb_brightness_i(o,v); +} + +void gts_gui::cb_scrbar_rgb_brightness_i(Fl_Scrollbar* o, void*) { + valinp_rgb_brightness->value(o->value()); +} +void gts_gui::cb_scrbar_rgb_brightness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_rgb_brightness_i(o,v); +} + +void gts_gui::cb_valinp_rgb_contrast_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_rgb_contrast)->value(o->value()); +} +void gts_gui::cb_valinp_rgb_contrast(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_rgb_contrast_i(o,v); +} + +void gts_gui::cb_scrbar_rgb_contrast_i(Fl_Scrollbar* o, void*) { + valinp_rgb_contrast->value(o->value()); +} +void gts_gui::cb_scrbar_rgb_contrast(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_rgb_contrast_i(o,v); +} + +void gts_gui::cb_valinp_rgb_gamma_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_rgb_gamma)->value(o->value()); +} +void gts_gui::cb_valinp_rgb_gamma(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_rgb_gamma_i(o,v); +} + +void gts_gui::cb_scrbar_rgb_gamma_i(Fl_Scrollbar* o, void*) { + valinp_rgb_gamma->value(((Fl_Valuator *)o)->value()); +} +void gts_gui::cb_scrbar_rgb_gamma(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_rgb_gamma_i(o,v); +} + +void gts_gui::cb_button_preview_scan_i(Fl_Button*, void*) { + cl_gts_master.cb_scan_and_preview(); +} +void gts_gui::cb_button_preview_scan(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_button_preview_scan_i(o,v); +} + +void gts_gui::cb_window_scan_and_save_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_scan_and_save->hide(); +cl_gts_gui.menite_scan_and_save->clear(); +} +void gts_gui::cb_window_scan_and_save(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_scan_and_save_i(o,v); +} + +void gts_gui::cb_chkbtn_scan_filter_trace_sw_i(Fl_Check_Button* o, void*) { + cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}; +} +void gts_gui::cb_chkbtn_scan_filter_trace_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chkbtn_scan_filter_trace_sw_i(o,v); +} + +void gts_gui::cb_chkbtn_scan_filter_erase_dot_noise_sw_i(Fl_Check_Button* o, void*) { + cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}; +} +void gts_gui::cb_chkbtn_scan_filter_erase_dot_noise_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chkbtn_scan_filter_erase_dot_noise_sw_i(o,v); +} + +void gts_gui::cb_filinp_scan_save_dir_path_i(Fl_File_Input*, void*) { + cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file(); +} +void gts_gui::cb_filinp_scan_save_dir_path(Fl_File_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_filinp_scan_save_dir_path_i(o,v); +} + +void gts_gui::cb_12_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_browse_save_folder(); +cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file(); +} +void gts_gui::cb_12(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_12_i(o,v); +} + +void gts_gui::cb_strinp_scan_save_file_head_i(Fl_Input* o, void*) { + cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file(); +if (cl_gts_master.cl_number.is_scan()) { + output_number_file_head_name->value( o->value() ); +}; +} +void gts_gui::cb_strinp_scan_save_file_head(Fl_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_strinp_scan_save_file_head_i(o,v); +} + +void gts_gui::cb_output_scan_save_number_format_i(Fl_Output* o, void*) { + cl_gts_master.cl_set_number_format.cb_dialog_set_number_format( + window_scan_and_save ,o +); +} +void gts_gui::cb_output_scan_save_number_format(Fl_Output* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_output_scan_save_number_format_i(o,v); +} + +void gts_gui::cb_choice_scan_save_image_format_i(Fl_Choice*, void*) { + cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file(); +} +void gts_gui::cb_choice_scan_save_image_format(Fl_Choice* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_choice_scan_save_image_format_i(o,v); +} + +void gts_gui::cb_choice_scan_num_continue_type_i(Fl_Choice* o, void*) { + cl_gts_master.cl_scan_and_save.cb_change_num_continue_type(o->value()); +} +void gts_gui::cb_choice_scan_num_continue_type(Fl_Choice* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_choice_scan_num_continue_type_i(o,v); +} + +Fl_Menu_Item gts_gui::menu_choice_scan_num_continue_type[] = { + {"\345\201\234\346\255\242\347\225\252\345\217\267", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\343\202\250\343\203\263\343\203\211\343\203\254\343\202\271", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0} +}; + +Fl_Menu_Item gts_gui::menu_choice_scan_num_endless_direction[] = { + {"+1", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"-1", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0} +}; + +void gts_gui::cb_13_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_set_number(); +cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file(); +} +void gts_gui::cb_13(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_13_i(o,v); +} + +void gts_gui::cb_button_scan_save_i(Fl_Button*, void*) { + cl_gts_master.cl_scan_and_save.cb_start(); +} +void gts_gui::cb_button_scan_save(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_button_scan_save_i(o,v); +} + +void gts_gui::cb_window_trace_files_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_trace_files->hide(); +cl_gts_gui.menite_trace_files->clear(); +} +void gts_gui::cb_window_trace_files(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_trace_files_i(o,v); +} + +void gts_gui::cb_14_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_files.cb_browse_open_file(); +} +void gts_gui::cb_14(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_14_i(o,v); +} + +void gts_gui::cb_15_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_files.cb_rename(); +} +void gts_gui::cb_15(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_15_i(o,v); +} + +void gts_gui::cb_16_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_files.cb_renumber(); +} +void gts_gui::cb_16(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_16_i(o,v); +} + +void gts_gui::cb_chkbtn_trace_filter_trace_sw_i(Fl_Check_Button* o, void*) { + cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}; +} +void gts_gui::cb_chkbtn_trace_filter_trace_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chkbtn_trace_filter_trace_sw_i(o,v); +} + +void gts_gui::cb_chkbtn_trace_filter_erase_dot_noise_sw_i(Fl_Check_Button* o, void*) { + cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}; +} +void gts_gui::cb_chkbtn_trace_filter_erase_dot_noise_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chkbtn_trace_filter_erase_dot_noise_sw_i(o,v); +} + +void gts_gui::cb_filinp_trace_save_dir_path_i(Fl_File_Input*, void*) { + cl_gts_master.cl_trace_files.cb_check_existing_saved_file(); +} +void gts_gui::cb_filinp_trace_save_dir_path(Fl_File_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_filinp_trace_save_dir_path_i(o,v); +} + +void gts_gui::cb_17_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_files.cb_browse_save_folder(); +cl_gts_master.cl_trace_files.cb_check_existing_saved_file(); +} +void gts_gui::cb_17(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_17_i(o,v); +} + +void gts_gui::cb_strinp_trace_save_file_head_i(Fl_Input* o, void*) { + cl_gts_master.cl_trace_files.cb_check_existing_saved_file(); +if (cl_gts_master.cl_number.is_trace()) { + output_number_file_head_name->value( o->value() ); +}; +} +void gts_gui::cb_strinp_trace_save_file_head(Fl_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_strinp_trace_save_file_head_i(o,v); +} + +void gts_gui::cb_output_trace_save_number_format_i(Fl_Output* o, void*) { + cl_gts_master.cl_set_number_format.cb_dialog_set_number_format( + window_trace_files ,o +); +} +void gts_gui::cb_output_trace_save_number_format(Fl_Output* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_output_trace_save_number_format_i(o,v); +} + +void gts_gui::cb_choice_trace_save_image_format_i(Fl_Choice*, void*) { + cl_gts_master.cl_trace_files.cb_check_existing_saved_file(); +} +void gts_gui::cb_choice_trace_save_image_format(Fl_Choice* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_choice_trace_save_image_format_i(o,v); +} + +void gts_gui::cb_18_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_files.cb_set_number(); +cl_gts_master.cl_trace_files.cb_check_existing_saved_file(); +} +void gts_gui::cb_18(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_18_i(o,v); +} + +void gts_gui::cb_22_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_files.cb_start(); +} +void gts_gui::cb_22(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_22_i(o,v); +} + +void gts_gui::cb_window_number_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_number->hide(); +cl_gts_gui.menite_number->clear(); +} +void gts_gui::cb_window_number(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_number_i(o,v); +} + +void gts_gui::cb_19_i(Fl_Menu_*, void*) { + cl_gts_master.cl_number.select_all(); +} +void gts_gui::cb_19(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_19_i(o,v); +} + +void gts_gui::cb_1a_i(Fl_Menu_*, void*) { + cl_gts_master.cl_number.cb_remove_selected(); +} +void gts_gui::cb_1a(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_1a_i(o,v); +} + +Fl_Menu_Item gts_gui::menu_1[] = { + {"\347\267\250\351\233\206", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\345\205\250\351\201\270\346\212\236", 0x40061, (Fl_Callback*)gts_gui::cb_19, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"\345\211\212\351\231\244", 0x40078, (Fl_Callback*)gts_gui::cb_1a, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0} +}; + +void gts_gui::cb_norinp_number_input_i(Fl_Input*, void*) { + cl_gts_master.cl_number.cb_set_list_from_string(); +} +void gts_gui::cb_norinp_number_input(Fl_Input* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_norinp_number_input_i(o,v); +} + +void gts_gui::cb_selbro_number_list_i(Fl_Browser*, void*) { + cl_gts_master.cb_number_read_and_trace_and_preview(); +} +void gts_gui::cb_selbro_number_list(Fl_Browser* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_selbro_number_list_i(o,v); +} + +void gts_gui::cb_window_trace_batch_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_trace_batch->hide(); /* Window閉じる */ +cl_gts_gui.menite_trace_batch->clear(); /* menuのcheck外す */; +} +void gts_gui::cb_window_trace_batch(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_trace_batch_i(o,v); +} + +void gts_gui::cb_1b_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_batch.cb_add_or_select(); +} +void gts_gui::cb_1b(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_1b_i(o,v); +} + +void gts_gui::cb_1c_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_batch.cb_upper(); +} +void gts_gui::cb_1c(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_1c_i(o,v); +} + +void gts_gui::cb_1d_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_batch.cb_lower(); +} +void gts_gui::cb_1d(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_1d_i(o,v); +} + +void gts_gui::cb_1e_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_batch.cb_delete(); +} +void gts_gui::cb_1e(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_1e_i(o,v); +} + +void gts_gui::cb_1f_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_batch.cb_run(); +} +void gts_gui::cb_1f(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_1f_i(o,v); +} + +void gts_gui::cb_window_trace_params_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_trace_params->hide(); +cl_gts_gui.menite_trace_params->clear(); +} +void gts_gui::cb_window_trace_params(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_trace_params_i(o,v); +} + +void gts_gui::cb_button_trace_params_i(fltk_button_trace_params*, void*) { + cl_gts_master.cl_config.open_only_trace_params(); +} +void gts_gui::cb_button_trace_params(fltk_button_trace_params* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_button_trace_params_i(o,v); +} + +void gts_gui::cb_20_i(Fl_Button* o, void*) { + if (o->value()) { +window_trace_params->size( + togbut_trace_open_right_middle_sw->x()+togbut_trace_open_right_middle_sw->w()+5 + ,window_trace_params->h()); +togbut_trace_open_right_middle_sw->value(0); +} else { +window_trace_params->size( o->x() + o->w() + 5 ,window_trace_params->h()); +}; +} +void gts_gui::cb_20(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_20_i(o,v); +} + +#include +static const unsigned char idata_icon_open_close_right[] = +{192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,192,192,192,192, +192,192,192,192,192,192,192,192,24,24,24,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,24,24, +24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,24,24,24,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192, +24,24,24,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,24,24,24,24,24,24,0,0,0,24,24,24,192,192,192,192,192,192,192,192,192, +192,192,192,24,24,24,0,0,0,24,24,24,24,24,24,192,192,192,192,192,192,192,192, +192,24,24,24,24,24,24,0,0,0,0,0,0,24,24,24,192,192,192,192,192,192,192,192,192, +192,192,192,24,24,24,0,0,0,0,0,0,24,24,24,24,24,24,192,192,192,24,24,24,24,24, +24,0,0,0,0,0,0,0,0,0,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192, +24,24,24,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,24,24,24,24,24,24,0,0,0,0,0,0,0,0, +0,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,0,0,0,0,0, +0,0,0,0,24,24,24,24,24,24,192,192,192,24,24,24,24,24,24,0,0,0,0,0,0,24,24,24, +192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,0,0,0,0,0,0,24,24,24, +24,24,24,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,0,0,0,24,24,24, +192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,0,0,0,24,24,24,24,24, +24,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24, +24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24, +24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192, +192,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,192,192,192,192, +192,192,192,192,192,192,192,192,24,24,24,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192}; +static Fl_Image *image_icon_open_close_right() { + static Fl_Image *image = new Fl_RGB_Image(idata_icon_open_close_right, 16, 16, 3, 0); + return image; +} + +void gts_gui::cb_togbut_trace_open_under_sw_i(Fl_Button* o, void*) { + if (o->value()) { +window_trace_params->size(window_trace_params->w(),group_trace_params->h()); +} else { +window_trace_params->size(window_trace_params->w(),cl_gts_master.cl_trace_params.cb_get_window_height_active()); +}; +} +void gts_gui::cb_togbut_trace_open_under_sw(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_togbut_trace_open_under_sw_i(o,v); +} + +static const unsigned char idata_icon_open_close_under[] = +{192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,24,24,24,24,24,24,24,24,24,24,24,24,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,0,0,0,0,0,0,24,24,24,24, +24,24,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,0,0,0,0,0,0,0,0,0,0,0,0, +24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,24,24,24,24,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, +24,24,24,24,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,24,24,24,24, +24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,0, +0,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,24,24, +24,24,24,24,0,0,0,0,0,0,24,24,24,24,24,24,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,24,24,24,24,24,24,24,24,24,24,24,24,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,24,24,24,24,24,24,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192}; +static Fl_Image *image_icon_open_close_under() { + static Fl_Image *image = new Fl_RGB_Image(idata_icon_open_close_under, 16, 16, 3, 0); + return image; +} + +void gts_gui::cb_togbut_trace_open_right_middle_sw_i(Fl_Button* o, void*) { + if (o->value()) { +window_trace_params->size(group_trace_params->w(),window_trace_params->h()); +} else { +window_trace_params->size( o->x() + o->w() + 5 ,window_trace_params->h()); +}; +} +void gts_gui::cb_togbut_trace_open_right_middle_sw(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_togbut_trace_open_right_middle_sw_i(o,v); +} + +static const unsigned char idata_icon_open_close_right_11x11[] = +{192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,24,24,24, +192,192,192,192,192,192,192,192,192,0,0,0,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,0,0,0,24,24,24,192,192,192,192,192,192,192,192,192,0,0, +0,24,24,24,192,192,192,192,192,192,192,192,192,0,0,0,0,0,0,24,24,24,192,192, +192,192,192,192,192,192,192,0,0,0,24,24,24,0,0,0,192,192,192,0,0,0,0,0,0,0,0,0, +24,24,24,192,192,192,192,192,192,192,192,192,0,0,0,24,24,24,0,0,0,0,0,0,192, +192,192,0,0,0,0,0,0,24,24,24,192,192,192,192,192,192,192,192,192,0,0,0,24,24,24, +0,0,0,192,192,192,192,192,192,192,192,192,0,0,0,24,24,24,192,192,192,192,192, +192,192,192,192,0,0,0,24,24,24,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,24,24,24,192,192,192,192,192,192,192,192,192,0,0,0,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192}; +static Fl_Image *image_icon_open_close_right_11x11() { + static Fl_Image *image = new Fl_RGB_Image(idata_icon_open_close_right_11x11, 11, 11, 3, 0); + return image; +} + +void gts_gui::cb_chebut_trace_display_target_sw_i(Fl_Check_Button*, void*) { + image_view->redraw(); +} +void gts_gui::cb_chebut_trace_display_target_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_chebut_trace_display_target_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_display_main_sw_i(Fl_Check_Button*, void*) { + image_view->redraw(); +} +void gts_gui::cb_chebut_trace_display_main_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_chebut_trace_display_main_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_0_enable_sw_i(Fl_Check_Button* o, void*) { + if (o->value()) {group_trace_0->activate(); } +else {group_trace_0->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_chebut_trace_0_enable_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chebut_trace_0_enable_sw_i(o,v); +} + +void gts_gui::cb_button_trace_0_target_rgb_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,0 +); +} +void gts_gui::cb_button_trace_0_target_rgb(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_0_target_rgb_i(o,v); +} + +void gts_gui::cb_valinp_trace_0_thickness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_trace_0_thickness)->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_valinp_trace_0_thickness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_0_thickness_i(o,v); +} + +void gts_gui::cb_scrbar_trace_0_thickness_i(Fl_Scrollbar* o, void*) { + valinp_trace_0_thickness->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_scrbar_trace_0_thickness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_scrbar_trace_0_thickness_i(o,v); +} + +void gts_gui::cb_button_trace_0_hue_min_i(Fl_Button* o, void*) { + //cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,0 ); +} +void gts_gui::cb_button_trace_0_hue_min(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_0_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_0_hue_min_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_0_hue_min(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_0_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_0_hue_max_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_0_hue_max(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_0_hue_max_i(o,v); +} + +void gts_gui::cb_button_trace_0_hue_minmax_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/0 ); +} +void gts_gui::cb_button_trace_0_hue_minmax(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_0_hue_minmax_i(o,v); +} + +void gts_gui::cb_chebut_trace_0_rotate360_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_0_rotate360_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_0_rotate360_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_0_display_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_0_display_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_0_display_sw_i(o,v); +} + +void gts_gui::cb_valinp_trace_0_slope_deg_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_0_slope_deg(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_0_slope_deg_i(o,v); +} + +void gts_gui::cb_valinp_trace_0_intercept_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_0_intercept(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_0_intercept_i(o,v); +} + +void gts_gui::cb_chebut_trace_1_enable_sw_i(Fl_Check_Button* o, void*) { + if (o->value()) {group_trace_1->activate(); } +else {group_trace_1->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_chebut_trace_1_enable_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chebut_trace_1_enable_sw_i(o,v); +} + +void gts_gui::cb_button_trace_1_target_rgb_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,1 +); +} +void gts_gui::cb_button_trace_1_target_rgb(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_1_target_rgb_i(o,v); +} + +void gts_gui::cb_valinp_trace_1_thickness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_trace_1_thickness)->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_valinp_trace_1_thickness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_1_thickness_i(o,v); +} + +void gts_gui::cb_scrbar_trace_1_thickness_i(Fl_Scrollbar* o, void*) { + valinp_trace_1_thickness->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_scrbar_trace_1_thickness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_scrbar_trace_1_thickness_i(o,v); +} + +void gts_gui::cb_button_trace_1_hue_min_i(Fl_Button* o, void*) { + //cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,1 ); +} +void gts_gui::cb_button_trace_1_hue_min(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_1_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_1_hue_min_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_1_hue_min(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_1_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_1_hue_max_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_1_hue_max(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_1_hue_max_i(o,v); +} + +void gts_gui::cb_button_trace_1_hue_minmax_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/1 ); +} +void gts_gui::cb_button_trace_1_hue_minmax(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_1_hue_minmax_i(o,v); +} + +void gts_gui::cb_chebut_trace_1_rotate360_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_1_rotate360_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_1_rotate360_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_1_display_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_1_display_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_1_display_sw_i(o,v); +} + +void gts_gui::cb_valinp_trace_1_slope_deg_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_1_slope_deg(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_1_slope_deg_i(o,v); +} + +void gts_gui::cb_valinp_trace_1_intercept_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_1_intercept(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_1_intercept_i(o,v); +} + +void gts_gui::cb_chebut_trace_2_enable_sw_i(Fl_Check_Button* o, void*) { + if (o->value()) {group_trace_2->activate(); } +else {group_trace_2->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_chebut_trace_2_enable_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chebut_trace_2_enable_sw_i(o,v); +} + +void gts_gui::cb_button_trace_2_target_rgb_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,2 +); +} +void gts_gui::cb_button_trace_2_target_rgb(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_2_target_rgb_i(o,v); +} + +void gts_gui::cb_valinp_trace_2_thickness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_trace_2_thickness)->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_valinp_trace_2_thickness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_2_thickness_i(o,v); +} + +void gts_gui::cb_scrbar_trace_2_thickness_i(Fl_Scrollbar* o, void*) { + valinp_trace_2_thickness->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_scrbar_trace_2_thickness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_scrbar_trace_2_thickness_i(o,v); +} + +void gts_gui::cb_button_trace_2_hue_min_i(Fl_Button* o, void*) { + //cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,2 ); +} +void gts_gui::cb_button_trace_2_hue_min(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_2_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_2_hue_min_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_2_hue_min(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_2_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_2_hue_max_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_2_hue_max(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_2_hue_max_i(o,v); +} + +void gts_gui::cb_button_trace_2_hue_minmax_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/2 ); +} +void gts_gui::cb_button_trace_2_hue_minmax(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_2_hue_minmax_i(o,v); +} + +void gts_gui::cb_chebut_trace_2_rotate360_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_2_rotate360_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_2_rotate360_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_2_display_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_2_display_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_2_display_sw_i(o,v); +} + +void gts_gui::cb_valinp_trace_2_slope_deg_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_2_slope_deg(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_2_slope_deg_i(o,v); +} + +void gts_gui::cb_valinp_trace_2_intercept_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_2_intercept(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_2_intercept_i(o,v); +} + +void gts_gui::cb_chebut_trace_3_enable_sw_i(Fl_Check_Button* o, void*) { + if (o->value()) {group_trace_3->activate(); } +else {group_trace_3->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_chebut_trace_3_enable_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chebut_trace_3_enable_sw_i(o,v); +} + +void gts_gui::cb_button_trace_3_target_rgb_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,3 +); +} +void gts_gui::cb_button_trace_3_target_rgb(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_3_target_rgb_i(o,v); +} + +void gts_gui::cb_valinp_trace_3_thickness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_trace_3_thickness)->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_valinp_trace_3_thickness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_3_thickness_i(o,v); +} + +void gts_gui::cb_scrbar_trace_3_thickness_i(Fl_Scrollbar* o, void*) { + valinp_trace_3_thickness->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_scrbar_trace_3_thickness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_scrbar_trace_3_thickness_i(o,v); +} + +void gts_gui::cb_button_trace_3_hue_min_i(Fl_Button* o, void*) { + //cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,3 ); +} +void gts_gui::cb_button_trace_3_hue_min(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_3_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_3_hue_min_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_3_hue_min(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_3_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_3_hue_max_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_3_hue_max(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_3_hue_max_i(o,v); +} + +void gts_gui::cb_button_trace_3_hue_minmax_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/3 ); +} +void gts_gui::cb_button_trace_3_hue_minmax(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_3_hue_minmax_i(o,v); +} + +void gts_gui::cb_chebut_trace_3_rotate360_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_3_rotate360_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_3_rotate360_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_3_display_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_3_display_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_3_display_sw_i(o,v); +} + +void gts_gui::cb_valinp_trace_3_slope_deg_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_3_slope_deg(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_3_slope_deg_i(o,v); +} + +void gts_gui::cb_valinp_trace_3_intercept_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_3_intercept(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_3_intercept_i(o,v); +} + +void gts_gui::cb_chebut_trace_4_enable_sw_i(Fl_Check_Button* o, void*) { + if (o->value()) {group_trace_4->activate(); } +else {group_trace_4->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_chebut_trace_4_enable_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chebut_trace_4_enable_sw_i(o,v); +} + +void gts_gui::cb_button_trace_4_target_rgb_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,4 +); +} +void gts_gui::cb_button_trace_4_target_rgb(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_4_target_rgb_i(o,v); +} + +void gts_gui::cb_valinp_trace_4_thickness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_trace_4_thickness)->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_valinp_trace_4_thickness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_4_thickness_i(o,v); +} + +void gts_gui::cb_scrbar_trace_4_thickness_i(Fl_Scrollbar* o, void*) { + valinp_trace_4_thickness->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_scrbar_trace_4_thickness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_scrbar_trace_4_thickness_i(o,v); +} + +void gts_gui::cb_button_trace_4_hue_min_i(Fl_Button* o, void*) { + //cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,4 ); +} +void gts_gui::cb_button_trace_4_hue_min(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_4_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_4_hue_min_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_4_hue_min(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_4_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_4_hue_max_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_4_hue_max(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_4_hue_max_i(o,v); +} + +void gts_gui::cb_button_trace_4_hue_minmax_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/4 ); +} +void gts_gui::cb_button_trace_4_hue_minmax(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_4_hue_minmax_i(o,v); +} + +void gts_gui::cb_chebut_trace_4_rotate360_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_4_rotate360_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_4_rotate360_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_4_display_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_4_display_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_4_display_sw_i(o,v); +} + +void gts_gui::cb_valinp_trace_4_slope_deg_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_4_slope_deg(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_4_slope_deg_i(o,v); +} + +void gts_gui::cb_valinp_trace_4_intercept_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_4_intercept(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_4_intercept_i(o,v); +} + +void gts_gui::cb_chebut_trace_5_enable_sw_i(Fl_Check_Button* o, void*) { + if (o->value()) {group_trace_5->activate(); } +else {group_trace_5->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_chebut_trace_5_enable_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_chebut_trace_5_enable_sw_i(o,v); +} + +void gts_gui::cb_button_trace_5_target_rgb_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,5 +); +} +void gts_gui::cb_button_trace_5_target_rgb(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_5_target_rgb_i(o,v); +} + +void gts_gui::cb_valinp_trace_5_thickness_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_trace_5_thickness)->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_valinp_trace_5_thickness(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_5_thickness_i(o,v); +} + +void gts_gui::cb_scrbar_trace_5_thickness_i(Fl_Scrollbar* o, void*) { + valinp_trace_5_thickness->value(o->value()); +image_view->redraw(); +} +void gts_gui::cb_scrbar_trace_5_thickness(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_scrbar_trace_5_thickness_i(o,v); +} + +void gts_gui::cb_button_trace_5_hue_min_i(Fl_Button* o, void*) { + //cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,5 ); +} +void gts_gui::cb_button_trace_5_hue_min(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_5_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_5_hue_min_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_5_hue_min(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_5_hue_min_i(o,v); +} + +void gts_gui::cb_valinp_trace_5_hue_max_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_5_hue_max(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_5_hue_max_i(o,v); +} + +void gts_gui::cb_button_trace_5_hue_minmax_i(Fl_Button* o, void*) { + cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/5 ); +} +void gts_gui::cb_button_trace_5_hue_minmax(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_trace_5_hue_minmax_i(o,v); +} + +void gts_gui::cb_chebut_trace_5_rotate360_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_5_rotate360_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_5_rotate360_sw_i(o,v); +} + +void gts_gui::cb_chebut_trace_5_display_sw_i(Fl_Check_Button*, void*) { + hsv_view->redraw(); +} +void gts_gui::cb_chebut_trace_5_display_sw(Fl_Check_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_chebut_trace_5_display_sw_i(o,v); +} + +void gts_gui::cb_valinp_trace_5_slope_deg_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_5_slope_deg(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_5_slope_deg_i(o,v); +} + +void gts_gui::cb_valinp_trace_5_intercept_i(Fl_Value_Input*, void*) { + image_view->redraw(); +} +void gts_gui::cb_valinp_trace_5_intercept(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_valinp_trace_5_intercept_i(o,v); +} + +void gts_gui::cb_button_change_0_1_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_swap_widget_set(0,1); +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_button_change_0_1(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_button_change_0_1_i(o,v); +} + +static const unsigned char idata_icon_change_updown[] = +{192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,187,187,187,165,165,165,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,188,188,188,62,62,62,35,35,35,185, +185,185,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +106,106,106,0,0,0,0,0,0,56,56,56,186,186,186,192,192,192,192,192,192,192,192, +192,192,192,192,154,154,154,4,4,4,0,0,0,0,0,0,0,0,0,96,96,96,192,192,192,192, +192,192,192,192,192,164,164,164,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,145,145,145, +192,192,192,192,192,192,129,129,129,90,90,90,45,45,45,0,0,0,0,0,0,17,17,17,90, +90,90,94,94,94,188,188,188,192,192,192,192,192,192,192,192,192,98,98,98,0,0,0, +0,0,0,35,35,35,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,98,98,98,0,0,0,0,0,0,35,35,35,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,98,98,98,0,0,0,0,0,0,35,35,35,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,98,98,98,0,0,0,0,0, +0,35,35,35,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,98,98,98,0,0,0,0,0,0,35,35,35,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,98,98,98,0,0,0,0,0,0,35,35,35,192,192,192,192, +192,192,192,192,192,192,192,192,143,143,143,116,116,116,59,59,59,0,0,0,0,0,0,21, +21,21,116,116,116,117,117,117,188,188,188,192,192,192,157,157,157,2,2,2,0,0,0, +0,0,0,0,0,0,0,0,0,1,1,1,130,130,130,192,192,192,192,192,192,192,192,192,141, +141,141,1,1,1,0,0,0,0,0,0,0,0,0,85,85,85,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,96,96,96,0,0,0,0,0,0,44,44,44,183,183,183,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,185,185,185,48,48,48,27,27,27, +181,181,181,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,183,183,183,157,157,157,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, +192,192,192,192,192,192,192,192,192,192,192,192}; +static Fl_Image *image_icon_change_updown() { + static Fl_Image *image = new Fl_RGB_Image(idata_icon_change_updown, 10, 20, 3, 0); + return image; +} + +void gts_gui::cb_button_change_1_2_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_swap_widget_set(1,2); +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_button_change_1_2(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_button_change_1_2_i(o,v); +} + +void gts_gui::cb_button_change_2_3_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_swap_widget_set(2,3); +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_button_change_2_3(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_button_change_2_3_i(o,v); +} + +void gts_gui::cb_button_change_3_4_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_swap_widget_set(3,4); +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_button_change_3_4(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_button_change_3_4_i(o,v); +} + +void gts_gui::cb_button_change_4_5_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_swap_widget_set(4,5); +image_view->redraw(); +window_trace_hue_minmax->hide(); +} +void gts_gui::cb_button_change_4_5(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_button_change_4_5_i(o,v); +} + +void gts_gui::cb_window_trace_hsv_view_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_trace_hsv_view->hide(); +cl_gts_gui.menite_trace_hsv_view->clear(); +} +void gts_gui::cb_window_trace_hsv_view(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_trace_hsv_view_i(o,v); +} + +void gts_gui::cb_menite_hsv_dot_normal_i(Fl_Menu_*, void*) { + image_view->redraw(); +} +void gts_gui::cb_menite_hsv_dot_normal(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_hsv_dot_normal_i(o,v); +} + +void gts_gui::cb_menite_hsv_dot_trace_area_i(Fl_Menu_*, void*) { + image_view->redraw(); +} +void gts_gui::cb_menite_hsv_dot_trace_area(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_hsv_dot_trace_area_i(o,v); +} + +void gts_gui::cb_menite_hsv_dot_white_i(Fl_Menu_*, void*) { + image_view->redraw(); +} +void gts_gui::cb_menite_hsv_dot_white(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_hsv_dot_white_i(o,v); +} + +void gts_gui::cb_menite_hsv_dot_black_i(Fl_Menu_*, void*) { + image_view->redraw(); +} +void gts_gui::cb_menite_hsv_dot_black(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_hsv_dot_black_i(o,v); +} + +void gts_gui::cb_menite_hsv_random_position_i(Fl_Menu_*, void*) { + image_view->redraw(); +} +void gts_gui::cb_menite_hsv_random_position(Fl_Menu_* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_menite_hsv_random_position_i(o,v); +} + +Fl_Menu_Item gts_gui::menu_2[] = { + {"View", 0, 0, 0, 64, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Color of Display", 0, 0, 0, 80, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Color", 0, (Fl_Callback*)gts_gui::cb_menite_hsv_dot_normal, 0, 12, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Trace Area", 0, (Fl_Callback*)gts_gui::cb_menite_hsv_dot_trace_area, 0, 8, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"White", 0, (Fl_Callback*)gts_gui::cb_menite_hsv_dot_white, 0, 8, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {"Black", 0, (Fl_Callback*)gts_gui::cb_menite_hsv_dot_black, 0, 8, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {"Random Position", 0, (Fl_Callback*)gts_gui::cb_menite_hsv_random_position, 0, 2, (uchar)FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0} +}; +Fl_Menu_Item* gts_gui::menite_hsv_dot_normal = gts_gui::menu_2 + 2; +Fl_Menu_Item* gts_gui::menite_hsv_dot_trace_area = gts_gui::menu_2 + 3; +Fl_Menu_Item* gts_gui::menite_hsv_dot_white = gts_gui::menu_2 + 4; +Fl_Menu_Item* gts_gui::menite_hsv_dot_black = gts_gui::menu_2 + 5; +Fl_Menu_Item* gts_gui::menite_hsv_random_position = gts_gui::menu_2 + 7; + +void gts_gui::cb_window_set_number_format_i(Fl_Double_Window* o, void*) { + o->hide(); +} +void gts_gui::cb_window_set_number_format(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_set_number_format_i(o,v); +} + +void gts_gui::cb_choice_input_num_form_separator_i(Fl_Choice*, void*) { + cl_gts_master.cl_set_number_format.cb_separator(); +} +void gts_gui::cb_choice_input_num_form_separator(Fl_Choice* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_choice_input_num_form_separator_i(o,v); +} + +void gts_gui::cb_counte_input_num_form_num_of_digits_i(Fl_Counter*, void*) { + cl_gts_master.cl_set_number_format.cb_digits(); +} +void gts_gui::cb_counte_input_num_form_num_of_digits(Fl_Counter* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_counte_input_num_form_num_of_digits_i(o,v); +} + +void gts_gui::cb_23_i(Fl_Button*, void*) { + cl_gts_master.cl_set_number_format.cb_ok(); +} +void gts_gui::cb_23(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_23_i(o,v); +} + +void gts_gui::cb_24_i(Fl_Button*, void*) { + window_set_number_format->hide(); +} +void gts_gui::cb_24(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_24_i(o,v); +} + +void gts_gui::cb_window_set_aspect_ratio_i(Fl_Double_Window* o, void*) { + o->hide(); +} +void gts_gui::cb_window_set_aspect_ratio(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_set_aspect_ratio_i(o,v); +} + +void gts_gui::cb_25_i(Fl_Button*, void*) { + cl_gts_master.cl_area_and_rot90.cb_ok_aspect_ratio(); +} +void gts_gui::cb_25(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_25_i(o,v); +} + +void gts_gui::cb_26_i(Fl_Button*, void*) { + window_set_aspect_ratio->hide(); +} +void gts_gui::cb_26(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->user_data()))->cb_26_i(o,v); +} + +void gts_gui::cb_window_set_color_i(Fl_Double_Window* o, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_cancel(); +o->hide(); +} +void gts_gui::cb_window_set_color(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_set_color_i(o,v); +} + +void gts_gui::cb_valinp_set_color_hue_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_set_color_hue)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true); +} +void gts_gui::cb_valinp_set_color_hue(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_set_color_hue_i(o,v); +} + +void gts_gui::cb_scrbar_set_color_hue_i(Fl_Scrollbar* o, void*) { + valinp_set_color_hue->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true); +} +void gts_gui::cb_scrbar_set_color_hue(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_set_color_hue_i(o,v); +} + +void gts_gui::cb_valinp_set_color_sat_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_set_color_sat)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true); +} +void gts_gui::cb_valinp_set_color_sat(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_set_color_sat_i(o,v); +} + +void gts_gui::cb_scrbar_set_color_sat_i(Fl_Scrollbar* o, void*) { + valinp_set_color_sat->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true); +} +void gts_gui::cb_scrbar_set_color_sat(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_set_color_sat_i(o,v); +} + +void gts_gui::cb_valinp_set_color_val_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_set_color_val)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true); +} +void gts_gui::cb_valinp_set_color_val(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_set_color_val_i(o,v); +} + +void gts_gui::cb_scrbar_set_color_val_i(Fl_Scrollbar* o, void*) { + valinp_set_color_val->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true); +} +void gts_gui::cb_scrbar_set_color_val(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_set_color_val_i(o,v); +} + +void gts_gui::cb_valinp_set_color_red_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_set_color_red)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(); +} +void gts_gui::cb_valinp_set_color_red(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_set_color_red_i(o,v); +} + +void gts_gui::cb_scrbar_set_color_red_i(Fl_Scrollbar* o, void*) { + valinp_set_color_red->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(); +} +void gts_gui::cb_scrbar_set_color_red(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_set_color_red_i(o,v); +} + +void gts_gui::cb_valinp_set_color_gre_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_set_color_gre)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(); +} +void gts_gui::cb_valinp_set_color_gre(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_set_color_gre_i(o,v); +} + +void gts_gui::cb_scrbar_set_color_gre_i(Fl_Scrollbar* o, void*) { + valinp_set_color_gre->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(); +} +void gts_gui::cb_scrbar_set_color_gre(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_set_color_gre_i(o,v); +} + +void gts_gui::cb_valinp_set_color_blu_i(Fl_Value_Input* o, void*) { + ((Fl_Valuator *)scrbar_set_color_blu)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(); +} +void gts_gui::cb_valinp_set_color_blu(Fl_Value_Input* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_valinp_set_color_blu_i(o,v); +} + +void gts_gui::cb_scrbar_set_color_blu_i(Fl_Scrollbar* o, void*) { + valinp_set_color_blu->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(); +} +void gts_gui::cb_scrbar_set_color_blu(Fl_Scrollbar* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_scrbar_set_color_blu_i(o,v); +} + +void gts_gui::cb_27_i(Fl_Button*, void*) { + window_set_color->hide(); +} +void gts_gui::cb_27(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_27_i(o,v); +} + +void gts_gui::cb_28_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_target_rgb_color_cancel(); +window_set_color->hide(); +} +void gts_gui::cb_28(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_28_i(o,v); +} + +void gts_gui::cb_window_trace_hue_minmax_i(Fl_Double_Window*, void*) { + cl_gts_gui.window_trace_hue_minmax->hide(); +cl_gts_gui.menite_trace_hue_minmax->clear(); +} +void gts_gui::cb_window_trace_hue_minmax(Fl_Double_Window* o, void* v) { + ((gts_gui*)(o->user_data()))->cb_window_trace_hue_minmax_i(o,v); +} + +void gts_gui::cb_radbut_hue_min_sw_i(Fl_Button*, void*) { + cyclic_color_wheel->set_min_or_max(false); +cyclic_color_wheel->redraw(); +} +void gts_gui::cb_radbut_hue_min_sw(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_radbut_hue_min_sw_i(o,v); +} + +void gts_gui::cb_radbut_hue_max_sw_i(Fl_Button*, void*) { + cyclic_color_wheel->set_min_or_max(true); +cyclic_color_wheel->redraw(); +} +void gts_gui::cb_radbut_hue_max_sw(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->parent()->user_data()))->cb_radbut_hue_max_sw_i(o,v); +} + +void gts_gui::cb_29_i(Fl_Button*, void*) { + cl_gts_master.cl_trace_params.cb_hue_min_or_max_cancel(); +cyclic_color_wheel->set_reset(); +cyclic_color_wheel->redraw(); +} +void gts_gui::cb_29(Fl_Button* o, void* v) { + ((gts_gui*)(o->parent()->parent()->user_data()))->cb_29_i(o,v); +} + +Fl_Double_Window* gts_gui::make_window() { + { window_main_view = new Fl_Double_Window(720, 565, "GTS"); + window_main_view->callback((Fl_Callback*)cb_window_main_view, (void*)(this)); + { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 720, 25); + o->menu(menu_); + } // Fl_Menu_Bar* o + { image_view = new fl_gl_image_view(0, 25, 705, 525, "label"); + image_view->box(FL_NO_BOX); + image_view->color(FL_BACKGROUND_COLOR); + image_view->selection_color(FL_BACKGROUND_COLOR); + image_view->labeltype(FL_NORMAL_LABEL); + image_view->labelfont(0); + image_view->labelsize(14); + image_view->labelcolor(FL_FOREGROUND_COLOR); + image_view->align(Fl_Align(FL_ALIGN_CENTER)); + image_view->when(FL_WHEN_RELEASE); + Fl_Group::current()->resizable(image_view); + } // fl_gl_image_view* image_view + { scrbar_view_x = new Fl_Scrollbar(0, 550, 705, 15); + scrbar_view_x->type(1); + scrbar_view_x->box(FL_BORDER_BOX); + scrbar_view_x->callback((Fl_Callback*)cb_scrbar_view_x); + } // Fl_Scrollbar* scrbar_view_x + { scrbar_view_y = new Fl_Scrollbar(705, 25, 15, 525); + scrbar_view_y->box(FL_BORDER_BOX); + scrbar_view_y->callback((Fl_Callback*)cb_scrbar_view_y); + } // Fl_Scrollbar* scrbar_view_y + window_main_view->end(); + } // Fl_Double_Window* window_main_view + { window_next_scan = new Fl_Double_Window(545, 100, "\346\254\241\343\201\256\343\202\271\343\202\255\343\203\243\343\203\263"); + window_next_scan->user_data((void*)(this)); + { button_rescan = new Fl_Button(60, 75, 110, 25, "\345\220\214\347\225\252\345\217\267 (Space)"); + button_rescan->shortcut(0x20); + button_rescan->callback((Fl_Callback*)cb_button_rescan); + } // Fl_Button* button_rescan + { Fl_Button* o = new Fl_Button(325, 40, 120, 60, "\346\254\241\347\225\252\345\217\267 (Enter)"); + o->shortcut(0xff0d); + o->callback((Fl_Callback*)cb_Enter); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(455, 75, 90, 25, "\344\270\255\346\255\242 (Esc)"); + o->shortcut(0xff1b); + o->callback((Fl_Callback*)cb_Esc); + } // Fl_Button* o + { norout_crnt_scan_level = new Fl_Output(0, 0, 545, 40); + norout_crnt_scan_level->box(FL_BORDER_BOX); + norout_crnt_scan_level->textsize(30); + } // Fl_Output* norout_crnt_scan_level + { norout_crnt_scan_number = new Fl_Output(0, 75, 60, 25); + norout_crnt_scan_number->box(FL_BORDER_BOX); + } // Fl_Output* norout_crnt_scan_number + { norout_next_scan_number = new Fl_Output(180, 40, 145, 60); + norout_next_scan_number->box(FL_BORDER_BOX); + norout_next_scan_number->textsize(60); + norout_next_scan_number->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Output* norout_next_scan_number + window_next_scan->set_modal(); + window_next_scan->end(); + } // Fl_Double_Window* window_next_scan + { window_next_scan_non_modal = new Fl_Double_Window(545, 100, "\346\254\241\343\201\256\344\277\235\345\255\230 (\347\224\273\345\203\217\ +\345\207\246\347\220\206\345\244\211\346\233\264\345\217\257\350\203\275)"); + window_next_scan_non_modal->callback((Fl_Callback*)cb_window_next_scan_non_modal, (void*)(this)); + { norout_next_save_non_modal = new Fl_Output(0, 10, 545, 25); + norout_next_save_non_modal->box(FL_BORDER_BOX); + } // Fl_Output* norout_next_save_non_modal + { button_next_save_non_modal = new Fl_Button(325, 45, 110, 45, "\344\277\235\345\255\230 (Enter)"); + button_next_save_non_modal->shortcut(0xff0d); + button_next_save_non_modal->callback((Fl_Callback*)cb_button_next_save_non_modal); + } // Fl_Button* button_next_save_non_modal + { Fl_Button* o = new Fl_Button(455, 65, 80, 25, "\344\270\255\346\255\242 (Esc)"); + o->shortcut(0xff1b); + o->callback((Fl_Callback*)cb_Esc1); + } // Fl_Button* o + window_next_scan_non_modal->set_non_modal(); + window_next_scan_non_modal->end(); + } // Fl_Double_Window* window_next_scan_non_modal + { window_area_and_rot90 = new Fl_Double_Window(200, 295, "\343\202\265\343\202\244\343\202\272\343\201\250\350\247\243\345\203\217\345\ +\272\246"); + window_area_and_rot90->callback((Fl_Callback*)cb_window_area_and_rot90, (void*)(this)); + { button_area_and_rot90 = new fltk_button_area_and_rot90(5, 5, 130, 25, "\343\201\223\343\201\256\350\250\255\345\256\232\343\202\222\350\252\255\350\ +\276\274\343\201\277..."); + button_area_and_rot90->box(FL_UP_BOX); + button_area_and_rot90->color(FL_BACKGROUND_COLOR); + button_area_and_rot90->selection_color(FL_BACKGROUND_COLOR); + button_area_and_rot90->labeltype(FL_NORMAL_LABEL); + button_area_and_rot90->labelfont(0); + button_area_and_rot90->labelsize(14); + button_area_and_rot90->labelcolor(FL_FOREGROUND_COLOR); + button_area_and_rot90->callback((Fl_Callback*)cb_button_area_and_rot90); + button_area_and_rot90->align(Fl_Align(FL_ALIGN_CENTER)); + button_area_and_rot90->when(FL_WHEN_RELEASE); + } // fltk_button_area_and_rot90* button_area_and_rot90 + { Fl_Group* o = new Fl_Group(1, 35, 198, 25, "\350\247\243\345\203\217\345\272\246"); + o->box(FL_BORDER_FRAME); + o->color((Fl_Color)41); + o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); + { valinp_area_reso = new Fl_Value_Input(85, 35, 40, 25, "DPI"); + valinp_area_reso->box(FL_BORDER_BOX); + valinp_area_reso->minimum(50); + valinp_area_reso->maximum(600); + valinp_area_reso->value(400); + valinp_area_reso->callback((Fl_Callback*)cb_valinp_area_reso); + valinp_area_reso->align(Fl_Align(FL_ALIGN_RIGHT)); + valinp_area_reso->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_reso + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 65, 198, 25, "\345\233\236\350\273\242"); + o->box(FL_BORDER_FRAME); + o->color((Fl_Color)41); + o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); + { choice_rot90 = new Fl_Choice(57, 65, 90, 25, "\345\272\246"); + choice_rot90->box(FL_BORDER_BOX); + choice_rot90->down_box(FL_BORDER_BOX); + choice_rot90->callback((Fl_Callback*)cb_choice_rot90); + choice_rot90->align(Fl_Align(FL_ALIGN_RIGHT)); + choice_rot90->menu(menu_choice_rot90); + } // Fl_Choice* choice_rot90 + o->end(); + } // Fl_Group* o + { button_scan_crop = new Fl_Button(105, 95, 90, 25, "\343\202\265\343\202\244\343\202\272\350\250\255\345\256\232"); + button_scan_crop->tooltip("Scan Overall and Crop"); + button_scan_crop->callback((Fl_Callback*)cb_button_scan_crop); + } // Fl_Button* button_scan_crop + { Fl_Group* o = new Fl_Group(0, 125, 200, 165); + o->labeltype(FL_ENGRAVED_LABEL); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { group_area_crop = new Fl_Group(1, 140, 198, 150, "\347\257\204\345\233\262"); + group_area_crop->box(FL_BORDER_FRAME); + group_area_crop->color((Fl_Color)41); + group_area_crop->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(4, 160, 192, 25, "\343\202\252\343\203\225\343\202\273\343\203\203\343\203\210(\345\267\246\ +\344\270\212\345\216\237\347\202\271)"); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { valinp_area_offset_cm_x = new Fl_Value_Input(25, 160, 55, 25, "X"); + valinp_area_offset_cm_x->box(FL_BORDER_BOX); + valinp_area_offset_cm_x->maximum(60); + valinp_area_offset_cm_x->callback((Fl_Callback*)cb_valinp_area_offset_cm_x); + valinp_area_offset_cm_x->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_offset_cm_x + { valinp_area_offset_cm_y = new Fl_Value_Input(100, 160, 55, 25, "Y"); + valinp_area_offset_cm_y->box(FL_BORDER_BOX); + valinp_area_offset_cm_y->maximum(60); + valinp_area_offset_cm_y->callback((Fl_Callback*)cb_valinp_area_offset_cm_y); + valinp_area_offset_cm_y->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_offset_cm_y + { Fl_Text_Display* o = new Fl_Text_Display(163, 165, 0, 0, "cm"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(4, 210, 192, 75, "\343\202\265\343\202\244\343\202\272"); + o->box(FL_BORDER_FRAME); + o->color((Fl_Color)41); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(5, 220, 150, 25); + o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); + { valinp_area_size_cm_w = new Fl_Value_Input(25, 220, 55, 25, "W"); + valinp_area_size_cm_w->box(FL_BORDER_BOX); + valinp_area_size_cm_w->maximum(60); + valinp_area_size_cm_w->callback((Fl_Callback*)cb_valinp_area_size_cm_w); + valinp_area_size_cm_w->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_size_cm_w + { valinp_area_size_cm_h = new Fl_Value_Input(100, 220, 55, 25, "H"); + valinp_area_size_cm_h->box(FL_BORDER_BOX); + valinp_area_size_cm_h->maximum(60); + valinp_area_size_cm_h->callback((Fl_Callback*)cb_valinp_area_size_cm_h); + valinp_area_size_cm_h->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_size_cm_h + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(5, 250, 150, 25); + o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); + { valinp_area_size_pixel_w = new Fl_Value_Input(25, 250, 55, 25, "W"); + valinp_area_size_pixel_w->box(FL_BORDER_BOX); + valinp_area_size_pixel_w->maximum(10000); + valinp_area_size_pixel_w->callback((Fl_Callback*)cb_valinp_area_size_pixel_w); + valinp_area_size_pixel_w->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_size_pixel_w + { valinp_area_size_pixel_h = new Fl_Value_Input(100, 250, 55, 25, "H"); + valinp_area_size_pixel_h->box(FL_BORDER_BOX); + valinp_area_size_pixel_h->maximum(10000); + valinp_area_size_pixel_h->callback((Fl_Callback*)cb_valinp_area_size_pixel_h); + valinp_area_size_pixel_h->when(FL_WHEN_RELEASE); + } // Fl_Value_Input* valinp_area_size_pixel_h + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(155, 220, 35, 55); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE)); + { radbut_area_reso_fix_cm = new Fl_Button(155, 220, 35, 25, "cm"); + radbut_area_reso_fix_cm->type(102); + } // Fl_Button* radbut_area_reso_fix_cm + { radbut_area_reso_fix_pixel = new Fl_Button(155, 250, 35, 25, "pixel"); + radbut_area_reso_fix_pixel->type(102); + radbut_area_reso_fix_pixel->value(1); + } // Fl_Button* radbut_area_reso_fix_pixel + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Button* o = new Fl_Button(75, 195, 100, 20, "\346\257\224\347\216\207\350\250\255\345\256\232..."); + o->callback((Fl_Callback*)cb_f); + } // Fl_Button* o + group_area_crop->end(); + } // Fl_Group* group_area_crop + { Fl_Button* o = new Fl_Button(75, 125, 80, 20, "\346\234\200\345\244\247\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_10); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 310, 198, 41, "Scanner"); + o->box(FL_BORDER_FRAME); + o->color((Fl_Color)41); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { txtout_scanner_type = new Fl_Output(2, 310, 196, 20); + txtout_scanner_type->box(FL_NO_BOX); + txtout_scanner_type->color(FL_BACKGROUND_COLOR); + txtout_scanner_type->textsize(13); + } // Fl_Output* txtout_scanner_type + { Fl_Group* o = new Fl_Group(2, 330, 196, 20); + o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); + { valout_scanner_size_cm_w = new Fl_Value_Output(30, 330, 55, 20, "W"); + valout_scanner_size_cm_w->box(FL_FLAT_BOX); + valout_scanner_size_cm_w->maximum(60); + } // Fl_Value_Output* valout_scanner_size_cm_w + { valout_scanner_size_cm_h = new Fl_Value_Output(100, 330, 55, 20, "H"); + valout_scanner_size_cm_h->box(FL_FLAT_BOX); + valout_scanner_size_cm_h->maximum(60); + } // Fl_Value_Output* valout_scanner_size_cm_h + { Fl_Text_Display* o = new Fl_Text_Display(165, 332, 0, 0, "cm"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + window_area_and_rot90->set_non_modal(); + window_area_and_rot90->end(); + } // Fl_Double_Window* window_area_and_rot90 + { window_pixel_type_and_bright = new Fl_Double_Window(200, 220, "\343\202\277\343\202\244\343\203\227\351\201\270\346\212\236\343\201\250\346\ +\230\216\343\202\213\343\201\225"); + window_pixel_type_and_bright->callback((Fl_Callback*)cb_window_pixel_type_and_bright, (void*)(this)); + { Fl_Group* o = new Fl_Group(0, 5, 200, 25); + { button_pixel_type_and_bright = new fltk_button_pixel_type_and_bright(5, 5, 130, 25, "\343\201\223\343\201\256\350\250\255\345\256\232\343\202\222\350\252\255\350\ +\276\274\343\201\277..."); + button_pixel_type_and_bright->box(FL_UP_BOX); + button_pixel_type_and_bright->color(FL_BACKGROUND_COLOR); + button_pixel_type_and_bright->selection_color(FL_BACKGROUND_COLOR); + button_pixel_type_and_bright->labeltype(FL_NORMAL_LABEL); + button_pixel_type_and_bright->labelfont(0); + button_pixel_type_and_bright->labelsize(14); + button_pixel_type_and_bright->labelcolor(FL_FOREGROUND_COLOR); + button_pixel_type_and_bright->callback((Fl_Callback*)cb_button_pixel_type_and_bright); + button_pixel_type_and_bright->align(Fl_Align(FL_ALIGN_CENTER)); + button_pixel_type_and_bright->when(FL_WHEN_RELEASE); + } // fltk_button_pixel_type_and_bright* button_pixel_type_and_bright + { Fl_Box* o = new Fl_Box(135, 5, 65, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 35, 200, 25); + { new Fl_Box(0, 35, 75, 25); + } // Fl_Box* o + { choice_pixel_type = new Fl_Choice(75, 35, 120, 25, "\347\224\273\345\203\217\343\202\277\343\202\244\343\203\227"); + choice_pixel_type->box(FL_BORDER_BOX); + choice_pixel_type->down_box(FL_BORDER_BOX); + choice_pixel_type->callback((Fl_Callback*)cb_choice_pixel_type); + choice_pixel_type->menu(menu_choice_pixel_type); + } // Fl_Choice* choice_pixel_type + { Fl_Box* o = new Fl_Box(195, 35, 5, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + { group_bw = new Fl_Group(0, 80, 200, 110); + { Fl_Group* o = new Fl_Group(0, 80, 200, 25); + { valinp_bw_threshold = new Fl_Value_Input(5, 80, 35, 25); + valinp_bw_threshold->box(FL_BORDER_BOX); + valinp_bw_threshold->maximum(255); + valinp_bw_threshold->value(180); + valinp_bw_threshold->callback((Fl_Callback*)cb_valinp_bw_threshold); + } // Fl_Value_Input* valinp_bw_threshold + { scrbar_bw_threshold = new Fl_Scrollbar(45, 85, 150, 20, "\347\231\275\351\273\222\343\201\227\343\201\215\343\201\204\345\200\244"); + scrbar_bw_threshold->type(1); + scrbar_bw_threshold->box(FL_BORDER_BOX); + scrbar_bw_threshold->maximum(255); + scrbar_bw_threshold->Fl_Slider::value(180); + scrbar_bw_threshold->callback((Fl_Callback*)cb_scrbar_bw_threshold); + scrbar_bw_threshold->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_bw_threshold); + scrbar_bw_threshold->linesize(1); + } // Fl_Scrollbar* scrbar_bw_threshold + o->end(); + Fl_Group::current()->resizable(o); + } // Fl_Group* o + group_bw->end(); + } // Fl_Group* group_bw + { group_grays = new Fl_Group(0, 80, 200, 110); + group_grays->hide(); + { Fl_Group* o = new Fl_Group(0, 80, 200, 25); + { valinp_grayscale_brightness = new Fl_Value_Input(5, 80, 45, 25); + valinp_grayscale_brightness->box(FL_BORDER_BOX); + valinp_grayscale_brightness->minimum(-1000); + valinp_grayscale_brightness->maximum(1000); + valinp_grayscale_brightness->callback((Fl_Callback*)cb_valinp_grayscale_brightness); + } // Fl_Value_Input* valinp_grayscale_brightness + { scrbar_grayscale_brightness = new Fl_Scrollbar(55, 85, 140, 20, "\346\230\216\343\202\213\343\201\225"); + scrbar_grayscale_brightness->type(1); + scrbar_grayscale_brightness->box(FL_BORDER_BOX); + scrbar_grayscale_brightness->minimum(-1000); + scrbar_grayscale_brightness->maximum(1000); + scrbar_grayscale_brightness->callback((Fl_Callback*)cb_scrbar_grayscale_brightness); + scrbar_grayscale_brightness->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_grayscale_brightness); + scrbar_grayscale_brightness->linesize(1); + } // Fl_Scrollbar* scrbar_grayscale_brightness + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 120, 200, 25); + { valinp_grayscale_contrast = new Fl_Value_Input(5, 120, 45, 25); + valinp_grayscale_contrast->box(FL_BORDER_BOX); + valinp_grayscale_contrast->minimum(-1000); + valinp_grayscale_contrast->maximum(1000); + valinp_grayscale_contrast->callback((Fl_Callback*)cb_valinp_grayscale_contrast); + } // Fl_Value_Input* valinp_grayscale_contrast + { scrbar_grayscale_contrast = new Fl_Scrollbar(55, 125, 140, 20, "\343\202\263\343\203\263\343\203\210\343\203\251\343\202\271\343\203\210"); + scrbar_grayscale_contrast->type(1); + scrbar_grayscale_contrast->box(FL_BORDER_BOX); + scrbar_grayscale_contrast->minimum(-1000); + scrbar_grayscale_contrast->maximum(1000); + scrbar_grayscale_contrast->callback((Fl_Callback*)cb_scrbar_grayscale_contrast); + scrbar_grayscale_contrast->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_grayscale_contrast); + scrbar_grayscale_contrast->linesize(1); + } // Fl_Scrollbar* scrbar_grayscale_contrast + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 160, 200, 25); + { valinp_grayscale_gamma = new Fl_Value_Input(5, 160, 45, 25); + valinp_grayscale_gamma->box(FL_BORDER_BOX); + valinp_grayscale_gamma->minimum(0.5); + valinp_grayscale_gamma->maximum(5); + valinp_grayscale_gamma->value(1); + valinp_grayscale_gamma->callback((Fl_Callback*)cb_valinp_grayscale_gamma); + } // Fl_Value_Input* valinp_grayscale_gamma + { scrbar_grayscale_gamma = new Fl_Scrollbar(55, 165, 140, 20, "\343\202\254\343\203\263\343\203\236"); + scrbar_grayscale_gamma->type(1); + scrbar_grayscale_gamma->box(FL_BORDER_BOX); + scrbar_grayscale_gamma->minimum(0.5); + scrbar_grayscale_gamma->maximum(5); + scrbar_grayscale_gamma->step(0.01); + scrbar_grayscale_gamma->Fl_Slider::value(1); + scrbar_grayscale_gamma->callback((Fl_Callback*)cb_scrbar_grayscale_gamma); + scrbar_grayscale_gamma->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_grayscale_gamma); + scrbar_grayscale_gamma->linesize(1); + } // Fl_Scrollbar* scrbar_grayscale_gamma + o->end(); + } // Fl_Group* o + group_grays->end(); + } // Fl_Group* group_grays + { group_rgb = new Fl_Group(0, 80, 200, 110); + group_rgb->hide(); + { Fl_Group* o = new Fl_Group(0, 80, 200, 25); + { valinp_rgb_brightness = new Fl_Value_Input(5, 80, 45, 25); + valinp_rgb_brightness->box(FL_BORDER_BOX); + valinp_rgb_brightness->minimum(-1000); + valinp_rgb_brightness->maximum(1000); + valinp_rgb_brightness->callback((Fl_Callback*)cb_valinp_rgb_brightness); + } // Fl_Value_Input* valinp_rgb_brightness + { scrbar_rgb_brightness = new Fl_Scrollbar(55, 85, 140, 20, "\346\230\216\343\202\213\343\201\225"); + scrbar_rgb_brightness->type(1); + scrbar_rgb_brightness->box(FL_BORDER_BOX); + scrbar_rgb_brightness->minimum(-1000); + scrbar_rgb_brightness->maximum(1000); + scrbar_rgb_brightness->callback((Fl_Callback*)cb_scrbar_rgb_brightness); + scrbar_rgb_brightness->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_rgb_brightness); + scrbar_rgb_brightness->linesize(1); + } // Fl_Scrollbar* scrbar_rgb_brightness + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 120, 200, 25); + { valinp_rgb_contrast = new Fl_Value_Input(5, 120, 45, 25); + valinp_rgb_contrast->box(FL_BORDER_BOX); + valinp_rgb_contrast->minimum(-1000); + valinp_rgb_contrast->maximum(1000); + valinp_rgb_contrast->callback((Fl_Callback*)cb_valinp_rgb_contrast); + } // Fl_Value_Input* valinp_rgb_contrast + { scrbar_rgb_contrast = new Fl_Scrollbar(55, 125, 140, 20, "\343\202\263\343\203\263\343\203\210\343\203\251\343\202\271\343\203\210"); + scrbar_rgb_contrast->type(1); + scrbar_rgb_contrast->box(FL_BORDER_BOX); + scrbar_rgb_contrast->minimum(-1000); + scrbar_rgb_contrast->maximum(1000); + scrbar_rgb_contrast->callback((Fl_Callback*)cb_scrbar_rgb_contrast); + scrbar_rgb_contrast->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_rgb_contrast); + scrbar_rgb_contrast->linesize(1); + } // Fl_Scrollbar* scrbar_rgb_contrast + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 160, 200, 25); + { valinp_rgb_gamma = new Fl_Value_Input(5, 160, 45, 25); + valinp_rgb_gamma->box(FL_BORDER_BOX); + valinp_rgb_gamma->minimum(0.5); + valinp_rgb_gamma->maximum(5); + valinp_rgb_gamma->value(1); + valinp_rgb_gamma->callback((Fl_Callback*)cb_valinp_rgb_gamma); + } // Fl_Value_Input* valinp_rgb_gamma + { scrbar_rgb_gamma = new Fl_Scrollbar(55, 165, 140, 20, "\343\202\254\343\203\263\343\203\236"); + scrbar_rgb_gamma->type(1); + scrbar_rgb_gamma->box(FL_BORDER_BOX); + scrbar_rgb_gamma->minimum(0.5); + scrbar_rgb_gamma->maximum(5); + scrbar_rgb_gamma->step(0.01); + scrbar_rgb_gamma->Fl_Slider::value(1); + scrbar_rgb_gamma->callback((Fl_Callback*)cb_scrbar_rgb_gamma); + scrbar_rgb_gamma->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(scrbar_rgb_gamma); + scrbar_rgb_gamma->linesize(1); + } // Fl_Scrollbar* scrbar_rgb_gamma + o->end(); + } // Fl_Group* o + group_rgb->end(); + } // Fl_Group* group_rgb + { Fl_Group* o = new Fl_Group(0, 190, 200, 25); + { Fl_Box* o = new Fl_Box(0, 190, 105, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { button_preview_scan = new Fl_Button(105, 190, 90, 25, "\343\203\227\343\203\254\343\203\223\343\203\245\343\203\274"); + button_preview_scan->callback((Fl_Callback*)cb_button_preview_scan); + } // Fl_Button* button_preview_scan + o->end(); + } // Fl_Group* o + window_pixel_type_and_bright->set_non_modal(); + window_pixel_type_and_bright->size_range(200, 220, 1000, 220); + window_pixel_type_and_bright->end(); + window_pixel_type_and_bright->resizable(window_pixel_type_and_bright); + } // Fl_Double_Window* window_pixel_type_and_bright + { window_scan_and_save = new Fl_Double_Window(200, 330, "\347\224\273\345\203\217\344\277\235\345\255\230\345\240\264\346\211\200"); + window_scan_and_save->callback((Fl_Callback*)cb_window_scan_and_save, (void*)(this)); + { Fl_Group* o = new Fl_Group(1, 20, 198, 65, "\345\207\246\347\220\206"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 25, 198, 25); + { chkbtn_scan_filter_trace_sw = new Fl_Check_Button(5, 25, 130, 25, "2\345\200\244\345\214\226"); + chkbtn_scan_filter_trace_sw->down_box(FL_DOWN_BOX); + chkbtn_scan_filter_trace_sw->value(1); + chkbtn_scan_filter_trace_sw->callback((Fl_Callback*)cb_chkbtn_scan_filter_trace_sw); + } // Fl_Check_Button* chkbtn_scan_filter_trace_sw + { Fl_Box* o = new Fl_Box(135, 25, 64, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 55, 198, 25); + { chkbtn_scan_filter_erase_dot_noise_sw = new Fl_Check_Button(5, 55, 130, 25, "\343\203\211\343\203\203\343\203\210\343\203\216\343\202\244\343\202\272\351\ +\231\244\345\216\273"); + chkbtn_scan_filter_erase_dot_noise_sw->down_box(FL_DOWN_BOX); + chkbtn_scan_filter_erase_dot_noise_sw->callback((Fl_Callback*)cb_chkbtn_scan_filter_erase_dot_noise_sw); + } // Fl_Check_Button* chkbtn_scan_filter_erase_dot_noise_sw + { Fl_Box* o = new Fl_Box(135, 55, 64, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 105, 198, 75, "\344\277\235\345\255\230\345\240\264\346\211\200"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 110, 198, 35); + { filinp_scan_save_dir_path = new Fl_File_Input(65, 110, 115, 35, "\343\203\225\343\202\251\343\203\253\343\203\200\345\220\215"); + filinp_scan_save_dir_path->callback((Fl_Callback*)cb_filinp_scan_save_dir_path); + filinp_scan_save_dir_path->when(FL_WHEN_CHANGED); + Fl_Group::current()->resizable(filinp_scan_save_dir_path); + } // Fl_File_Input* filinp_scan_save_dir_path + { Fl_Button* o = new Fl_Button(180, 120, 15, 24, "..."); + o->callback((Fl_Callback*)cb_12); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 150, 198, 25); + { new Fl_Box(1, 150, 49, 25); + } // Fl_Box* o + { strinp_scan_save_file_head = new Fl_Input(65, 150, 35, 25, "\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215"); + strinp_scan_save_file_head->box(FL_BORDER_BOX); + strinp_scan_save_file_head->callback((Fl_Callback*)cb_strinp_scan_save_file_head); + strinp_scan_save_file_head->when(FL_WHEN_CHANGED); + Fl_Group::current()->resizable(strinp_scan_save_file_head); + } // Fl_Input* strinp_scan_save_file_head + { Fl_Output* o = output_scan_save_number_format = new Fl_Output(100, 150, 45, 25); + output_scan_save_number_format->box(FL_BORDER_BOX); + output_scan_save_number_format->callback((Fl_Callback*)cb_output_scan_save_number_format); + o->value(".0000"); + } // Fl_Output* output_scan_save_number_format + { choice_scan_save_image_format = new Fl_Choice(145, 150, 54, 25); + choice_scan_save_image_format->box(FL_BORDER_BOX); + choice_scan_save_image_format->down_box(FL_BORDER_BOX); + choice_scan_save_image_format->callback((Fl_Callback*)cb_choice_scan_save_image_format); + } // Fl_Choice* choice_scan_save_image_format + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 200, 198, 95, "\343\203\212\343\203\263\343\203\220\343\203\274"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 205, 198, 25); + { new Fl_Box(1, 205, 94, 25); + } // Fl_Box* o + { valinp_scan_num_start = new Fl_Value_Input(95, 205, 50, 25, "\351\226\213\345\247\213\347\225\252\345\217\267"); + valinp_scan_num_start->box(FL_BORDER_BOX); + valinp_scan_num_start->minimum(1); + valinp_scan_num_start->maximum(9999); + valinp_scan_num_start->value(1); + } // Fl_Value_Input* valinp_scan_num_start + { Fl_Box* o = new Fl_Box(145, 205, 54, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 235, 198, 25); + { choice_scan_num_continue_type = new Fl_Choice(5, 235, 90, 25); + choice_scan_num_continue_type->box(FL_BORDER_BOX); + choice_scan_num_continue_type->down_box(FL_BORDER_BOX); + choice_scan_num_continue_type->callback((Fl_Callback*)cb_choice_scan_num_continue_type); + choice_scan_num_continue_type->menu(menu_choice_scan_num_continue_type); + } // Fl_Choice* choice_scan_num_continue_type + { choice_scan_num_endless_direction = new Fl_Choice(95, 235, 50, 25); + choice_scan_num_endless_direction->box(FL_BORDER_BOX); + choice_scan_num_endless_direction->down_box(FL_BORDER_BOX); + choice_scan_num_endless_direction->menu(menu_choice_scan_num_endless_direction); + } // Fl_Choice* choice_scan_num_endless_direction + { valinp_scan_num_end = new Fl_Value_Input(95, 235, 50, 25); + valinp_scan_num_end->box(FL_BORDER_BOX); + valinp_scan_num_end->minimum(1); + valinp_scan_num_end->maximum(9999); + valinp_scan_num_end->value(1); + } // Fl_Value_Input* valinp_scan_num_end + { Fl_Box* o = new Fl_Box(145, 235, 54, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 265, 198, 25); + { Fl_Box* o = new Fl_Box(1, 265, 119, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Button* o = new Fl_Button(120, 265, 75, 25, "\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_13); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 300, 198, 25); + { chkbtn_scan_adjustable_per_frame_sw = new Fl_Check_Button(5, 300, 95, 25, "\344\277\235\345\255\230\345\211\215\347\242\272\350\252\215"); + chkbtn_scan_adjustable_per_frame_sw->down_box(FL_DOWN_BOX); + } // Fl_Check_Button* chkbtn_scan_adjustable_per_frame_sw + { Fl_Box* o = new Fl_Box(100, 300, 5, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { button_scan_save = new Fl_Button(105, 300, 90, 25, "\343\202\271\343\202\255\343\203\243\343\203\263\344\277\235\345\255\230"); + button_scan_save->tooltip("Scan and Save Files"); + button_scan_save->callback((Fl_Callback*)cb_button_scan_save); + } // Fl_Button* button_scan_save + o->end(); + } // Fl_Group* o + window_scan_and_save->set_non_modal(); + window_scan_and_save->size_range(200, 330, 1000, 330); + window_scan_and_save->end(); + window_scan_and_save->resizable(window_scan_and_save); + } // Fl_Double_Window* window_scan_and_save + { window_trace_files = new Fl_Double_Window(200, 385, "2\345\200\244\345\214\226\343\203\220\343\203\203\343\203\201"); + window_trace_files->callback((Fl_Callback*)cb_window_trace_files, (void*)(this)); + { Fl_Group* o = new Fl_Group(1, 20, 198, 125, "\351\226\213\343\201\217"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 25, 198, 70); + { Fl_Group* o = new Fl_Group(1, 25, 183, 65); + { Fl_Group* o = new Fl_Group(1, 25, 183, 35); + { new Fl_Box(1, 25, 49, 35); + } // Fl_Box* o + { filinp_trace_open_dir_path = new Fl_File_Input(65, 25, 119, 35, "\343\203\225\343\202\251\343\203\253\343\203\200\345\220\215"); + filinp_trace_open_dir_path->box(FL_BORDER_BOX); + filinp_trace_open_dir_path->when(FL_WHEN_CHANGED); + Fl_Group::current()->resizable(filinp_trace_open_dir_path); + } // Fl_File_Input* filinp_trace_open_dir_path + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 65, 183, 25); + { new Fl_Box(1, 65, 49, 25); + } // Fl_Box* o + { strinp_trace_open_file_head = new Fl_Input(65, 65, 20, 25, "\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215"); + strinp_trace_open_file_head->box(FL_BORDER_BOX); + strinp_trace_open_file_head->when(FL_WHEN_CHANGED); + Fl_Group::current()->resizable(strinp_trace_open_file_head); + } // Fl_Input* strinp_trace_open_file_head + { strinp_trace_open_number_format = new Fl_Input(85, 65, 45, 25); + strinp_trace_open_number_format->box(FL_BORDER_BOX); + } // Fl_Input* strinp_trace_open_number_format + { choice_trace_open_image_format = new Fl_Choice(130, 65, 54, 25); + choice_trace_open_image_format->box(FL_BORDER_BOX); + choice_trace_open_image_format->down_box(FL_BORDER_BOX); + } // Fl_Choice* choice_trace_open_image_format + o->end(); + } // Fl_Group* o + o->end(); + Fl_Group::current()->resizable(o); + } // Fl_Group* o + { Fl_Button* o = new Fl_Button(184, 35, 14, 55, "..."); + o->callback((Fl_Callback*)cb_14); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 95, 198, 45); + { Fl_Box* o = new Fl_Box(1, 95, 109, 45); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Button* o = new Fl_Button(110, 95, 85, 20, "\343\203\252\343\203\215\343\203\274\343\203\240..."); + o->tooltip("Rename"); + o->callback((Fl_Callback*)cb_15); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(110, 120, 85, 20, "\343\203\252\343\203\212\343\203\263\343\203\220\343\203\274..."); + o->tooltip("Renumber"); + o->callback((Fl_Callback*)cb_16); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 165, 198, 35, "\345\207\246\347\220\206"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 175, 198, 25); + o->hide(); + { chkbtn_trace_filter_trace_sw = new Fl_Check_Button(5, 175, 130, 25, "Trace"); + chkbtn_trace_filter_trace_sw->box(FL_SHADOW_BOX); + chkbtn_trace_filter_trace_sw->down_box(FL_DOWN_BOX); + chkbtn_trace_filter_trace_sw->value(1); + chkbtn_trace_filter_trace_sw->callback((Fl_Callback*)cb_chkbtn_trace_filter_trace_sw); + } // Fl_Check_Button* chkbtn_trace_filter_trace_sw + { Fl_Box* o = new Fl_Box(135, 175, 64, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 170, 198, 25); + { chkbtn_trace_filter_erase_dot_noise_sw = new Fl_Check_Button(5, 170, 130, 25, "\343\203\211\343\203\203\343\203\210\343\203\216\343\202\244\343\202\272\351\ +\231\244\345\216\273"); + chkbtn_trace_filter_erase_dot_noise_sw->down_box(FL_DOWN_BOX); + chkbtn_trace_filter_erase_dot_noise_sw->callback((Fl_Callback*)cb_chkbtn_trace_filter_erase_dot_noise_sw); + } // Fl_Check_Button* chkbtn_trace_filter_erase_dot_noise_sw + { Fl_Box* o = new Fl_Box(135, 170, 64, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 220, 198, 75, "\344\277\235\345\255\230\345\240\264\346\211\200"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 225, 198, 35); + { new Fl_Box(1, 225, 49, 35); + } // Fl_Box* o + { filinp_trace_save_dir_path = new Fl_File_Input(65, 225, 119, 35, "\343\203\225\343\202\251\343\203\253\343\203\200\345\220\215"); + filinp_trace_save_dir_path->box(FL_BORDER_BOX); + filinp_trace_save_dir_path->callback((Fl_Callback*)cb_filinp_trace_save_dir_path); + filinp_trace_save_dir_path->when(FL_WHEN_CHANGED); + Fl_Group::current()->resizable(filinp_trace_save_dir_path); + } // Fl_File_Input* filinp_trace_save_dir_path + { Fl_Button* o = new Fl_Button(184, 235, 15, 25, "..."); + o->callback((Fl_Callback*)cb_17); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 265, 198, 25); + { new Fl_Box(1, 265, 49, 25); + } // Fl_Box* o + { strinp_trace_save_file_head = new Fl_Input(65, 265, 35, 25, "\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215"); + strinp_trace_save_file_head->box(FL_BORDER_BOX); + strinp_trace_save_file_head->callback((Fl_Callback*)cb_strinp_trace_save_file_head); + strinp_trace_save_file_head->when(FL_WHEN_CHANGED); + Fl_Group::current()->resizable(strinp_trace_save_file_head); + } // Fl_Input* strinp_trace_save_file_head + { Fl_Output* o = output_trace_save_number_format = new Fl_Output(100, 265, 45, 25); + output_trace_save_number_format->box(FL_BORDER_BOX); + output_trace_save_number_format->callback((Fl_Callback*)cb_output_trace_save_number_format); + o->value(".0000"); + } // Fl_Output* output_trace_save_number_format + { choice_trace_save_image_format = new Fl_Choice(145, 265, 54, 25); + choice_trace_save_image_format->box(FL_BORDER_BOX); + choice_trace_save_image_format->down_box(FL_BORDER_BOX); + choice_trace_save_image_format->callback((Fl_Callback*)cb_choice_trace_save_image_format); + } // Fl_Choice* choice_trace_save_image_format + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 315, 198, 35, "\343\203\212\343\203\263\343\203\220\343\203\274"); + o->box(FL_BORDER_BOX); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + { Fl_Group* o = new Fl_Group(1, 320, 198, 25); + { valout_trace_num_start = new Fl_Value_Output(21, 320, 40, 25, "\345\247\213"); + valout_trace_num_start->box(FL_BORDER_BOX); + } // Fl_Value_Output* valout_trace_num_start + { valout_trace_num_end = new Fl_Value_Output(79, 320, 40, 25, "\347\265\202"); + valout_trace_num_end->box(FL_BORDER_BOX); + } // Fl_Value_Output* valout_trace_num_end + { Fl_Box* o = new Fl_Box(119, 320, 1, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Button* o = new Fl_Button(120, 320, 75, 25, "\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_18); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(1, 355, 198, 25); + { Fl_Box* o = new Fl_Box(1, 355, 104, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Button* o = new Fl_Button(105, 355, 90, 25, "\343\203\225\343\202\241\343\202\244\343\203\253""2\345\200\244\345\214\226"); + o->tooltip("Trace and Save Files"); + o->callback((Fl_Callback*)cb_22); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + window_trace_files->set_non_modal(); + window_trace_files->size_range(200, 385, 1000, 385); + window_trace_files->end(); + window_trace_files->resizable(window_trace_files); + } // Fl_Double_Window* window_trace_files + { window_number = new Fl_Double_Window(116, 350, "\343\203\212\343\203\263\343\203\220\343\203\274"); + window_number->callback((Fl_Callback*)cb_window_number, (void*)(this)); + { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 116, 25); + o->menu(menu_1); + } // Fl_Menu_Bar* o + { norinp_number_input = new Fl_Input(0, 25, 116, 25); + norinp_number_input->box(FL_BORDER_BOX); + norinp_number_input->callback((Fl_Callback*)cb_norinp_number_input); + norinp_number_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + norinp_number_input->when(FL_WHEN_ENTER_KEY); + } // Fl_Input* norinp_number_input + { Fl_Group* o = new Fl_Group(0, 50, 116, 25); + { new Fl_Box(0, 50, 50, 25); + } // Fl_Box* o + { output_number_action_type = new Fl_Output(50, 50, 66, 25, "\344\275\234\346\245\255\345\220\215"); + output_number_action_type->box(FL_BORDER_BOX); + Fl_Group::current()->resizable(output_number_action_type); + } // Fl_Output* output_number_action_type + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 75, 116, 25); + { new Fl_Box(0, 75, 50, 25); + } // Fl_Box* o + { output_number_file_head_name = new Fl_Output(50, 75, 66, 25, "\344\277\235\345\255\230\345\220\215"); + output_number_file_head_name->box(FL_BORDER_BOX); + Fl_Group::current()->resizable(output_number_file_head_name); + } // Fl_Output* output_number_file_head_name + o->end(); + } // Fl_Group* o + { selbro_number_list = new Fl_Browser(0, 100, 116, 250); + selbro_number_list->type(3); + selbro_number_list->box(FL_BORDER_BOX); + selbro_number_list->callback((Fl_Callback*)cb_selbro_number_list); + Fl_Group::current()->resizable(selbro_number_list); + } // Fl_Browser* selbro_number_list + window_number->set_non_modal(); + window_number->size_range(116, 0, 200, 4000); + window_number->end(); + } // Fl_Double_Window* window_number + { window_trace_batch = new Fl_Double_Window(300, 185, "\344\270\200\346\213\254""2\345\200\244\345\214\226\343\203\220\343\203\203\ +\343\203\201"); + window_trace_batch->callback((Fl_Callback*)cb_window_trace_batch, (void*)(this)); + { Fl_Group* o = new Fl_Group(0, 4, 300, 30); + { Fl_Button* o = new Fl_Button(5, 5, 45, 25, "\350\277\275\345\212\240..."); + o->callback((Fl_Callback*)cb_1b); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(55, 5, 45, 25, "\344\270\212\343\201\270"); + o->callback((Fl_Callback*)cb_1c); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(105, 5, 45, 25, "\344\270\213\343\201\270"); + o->callback((Fl_Callback*)cb_1d); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(160, 5, 45, 25, "\345\211\212\351\231\244"); + o->callback((Fl_Callback*)cb_1e); + } // Fl_Button* o + { Fl_Box* o = new Fl_Box(205, 5, 50, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Button* o = new Fl_Button(255, 5, 40, 25, "\345\256\237\350\241\214"); + o->callback((Fl_Callback*)cb_1f); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 35, 300, 150); + { selbro_trace_batch_config_list = new Fl_Browser(0, 35, 300, 150); + selbro_trace_batch_config_list->type(3); + selbro_trace_batch_config_list->box(FL_BORDER_BOX); + Fl_Group::current()->resizable(selbro_trace_batch_config_list); + } // Fl_Browser* selbro_trace_batch_config_list + o->end(); + Fl_Group::current()->resizable(o); + } // Fl_Group* o + window_trace_batch->set_non_modal(); + window_trace_batch->size_range(240, 30); + window_trace_batch->end(); + } // Fl_Double_Window* window_trace_batch + { window_trace_params = new Fl_Double_Window(465, 250, "\347\267\232\343\201\256\350\252\277\346\225\264"); + window_trace_params->callback((Fl_Callback*)cb_window_trace_params, (void*)(this)); + { group_trace_params = new Fl_Group(0, 0, 465, 250); + { button_trace_params = new fltk_button_trace_params(5, 5, 130, 25, "\343\201\223\343\201\256\350\250\255\345\256\232\343\202\222\350\252\255\350\ +\276\274\343\201\277..."); + button_trace_params->box(FL_UP_BOX); + button_trace_params->color(FL_BACKGROUND_COLOR); + button_trace_params->selection_color(FL_BACKGROUND_COLOR); + button_trace_params->labeltype(FL_NORMAL_LABEL); + button_trace_params->labelfont(0); + button_trace_params->labelsize(14); + button_trace_params->labelcolor(FL_FOREGROUND_COLOR); + button_trace_params->callback((Fl_Callback*)cb_button_trace_params); + button_trace_params->align(Fl_Align(FL_ALIGN_CENTER)); + button_trace_params->when(FL_WHEN_RELEASE); + } // fltk_button_trace_params* button_trace_params + { Fl_Button* o = new Fl_Button(175, 5, 20, 20); + o->type(1); + o->value(1); + o->image( image_icon_open_close_right() ); + o->callback((Fl_Callback*)cb_20); + } // Fl_Button* o + { togbut_trace_open_under_sw = new Fl_Button(205, 5, 20, 20); + togbut_trace_open_under_sw->type(1); + togbut_trace_open_under_sw->value(1); + togbut_trace_open_under_sw->image( image_icon_open_close_under() ); + togbut_trace_open_under_sw->callback((Fl_Callback*)cb_togbut_trace_open_under_sw); + } // Fl_Button* togbut_trace_open_under_sw + { togbut_trace_open_right_middle_sw = new Fl_Button(367, 5, 15, 15); + togbut_trace_open_right_middle_sw->type(1); + togbut_trace_open_right_middle_sw->value(1); + togbut_trace_open_right_middle_sw->image( image_icon_open_close_right_11x11() ); + togbut_trace_open_right_middle_sw->callback((Fl_Callback*)cb_togbut_trace_open_right_middle_sw); + } // Fl_Button* togbut_trace_open_right_middle_sw + { chebut_trace_display_target_sw = new Fl_Check_Button(325, 5, 17, 25, "Target"); + chebut_trace_display_target_sw->down_box(FL_DOWN_BOX); + chebut_trace_display_target_sw->callback((Fl_Callback*)cb_chebut_trace_display_target_sw); + chebut_trace_display_target_sw->align(Fl_Align(FL_ALIGN_LEFT)); + chebut_trace_display_target_sw->hide(); + } // Fl_Check_Button* chebut_trace_display_target_sw + { chebut_trace_display_main_sw = new Fl_Check_Button(365, 20, 17, 20, "\347\257\204\345\233\262\345\206\205\345\244\226\345\214\272\345\210\206\343\ +\201\221\342\206\222"); + chebut_trace_display_main_sw->down_box(FL_DOWN_BOX); + chebut_trace_display_main_sw->labelsize(12); + chebut_trace_display_main_sw->callback((Fl_Callback*)cb_chebut_trace_display_main_sw); + chebut_trace_display_main_sw->align(Fl_Align(FL_ALIGN_LEFT_TOP)); + } // Fl_Check_Button* chebut_trace_display_main_sw + { Fl_Group* o = new Fl_Group(0, 34, 450, 31); + { Fl_Text_Display* o = new Fl_Text_Display(22, 45, 0, 0, "\350\211\262"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(50, 45, 0, 0, "|----------- \345\244\252\343\201\225 -----------|"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(213, 58, 0, 0, "\344\270\212\344\270\213\346\217\233"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(229, 63, 0, 0, "\342\206\223"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + o->hide(); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(265, 35, 0, 0, "|---- \350\211\262\347\233\270 ----|"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(250, 48, 0, 0, "ed."); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + o->hide(); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(265, 50, 0, 0, "\346\234\200\345\260\217"); + o->labelsize(12); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(300, 50, 0, 0, "\346\234\200\345\244\247"); + o->labelsize(12); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(335, 50, 0, 0, "\347\267\250"); + o->labelsize(12); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(365, 45, 0, 0, "\347\244\272"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(390, 45, 0, 0, "\345\202\276\346\226\234"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(393, 48, 0, 0, "\342\206\223"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + o->hide(); + } // Fl_Text_Display* o + { Fl_Text_Display* o = new Fl_Text_Display(425, 45, 0, 0, "\345\210\207\347\211\207"); + o->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); + } // Fl_Text_Display* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 65, 465, 25); + { chebut_trace_0_enable_sw = new Fl_Check_Button(2, 65, 17, 25); + chebut_trace_0_enable_sw->down_box(FL_DOWN_BOX); + chebut_trace_0_enable_sw->value(1); + chebut_trace_0_enable_sw->callback((Fl_Callback*)cb_chebut_trace_0_enable_sw); + chebut_trace_0_enable_sw->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Check_Button* chebut_trace_0_enable_sw + { group_trace_0 = new Fl_Group(0, 65, 465, 25); + { button_trace_0_target_rgb = new Fl_Button(23, 65, 25, 25); + button_trace_0_target_rgb->color((Fl_Color)16); + button_trace_0_target_rgb->callback((Fl_Callback*)cb_button_trace_0_target_rgb); + } // Fl_Button* button_trace_0_target_rgb + { valinp_trace_0_thickness = new Fl_Value_Input(50, 65, 30, 25); + valinp_trace_0_thickness->box(FL_BORDER_BOX); + valinp_trace_0_thickness->maximum(100); + valinp_trace_0_thickness->value(70); + valinp_trace_0_thickness->callback((Fl_Callback*)cb_valinp_trace_0_thickness); + } // Fl_Value_Input* valinp_trace_0_thickness + { scrbar_trace_0_thickness = new Fl_Scrollbar(82, 67, 115, 20); + scrbar_trace_0_thickness->type(1); + scrbar_trace_0_thickness->box(FL_BORDER_BOX); + scrbar_trace_0_thickness->maximum(100); + scrbar_trace_0_thickness->Fl_Slider::value(70); + scrbar_trace_0_thickness->callback((Fl_Callback*)cb_scrbar_trace_0_thickness); + scrbar_trace_0_thickness->linesize(1); + } // Fl_Scrollbar* scrbar_trace_0_thickness + { button_trace_0_hue_min = new Fl_Button(250, 65, 15, 25, "..."); + button_trace_0_hue_min->callback((Fl_Callback*)cb_button_trace_0_hue_min); + button_trace_0_hue_min->hide(); + } // Fl_Button* button_trace_0_hue_min + { valinp_trace_0_hue_min = new Fl_Value_Input(265, 65, 35, 25); + valinp_trace_0_hue_min->box(FL_BORDER_BOX); + valinp_trace_0_hue_min->maximum(360); + valinp_trace_0_hue_min->value(-1); + valinp_trace_0_hue_min->callback((Fl_Callback*)cb_valinp_trace_0_hue_min); + valinp_trace_0_hue_min->hide(); + } // Fl_Value_Input* valinp_trace_0_hue_min + { valinp_trace_0_hue_max = new Fl_Value_Input(300, 65, 35, 25); + valinp_trace_0_hue_max->box(FL_BORDER_BOX); + valinp_trace_0_hue_max->maximum(360); + valinp_trace_0_hue_max->value(-1); + valinp_trace_0_hue_max->callback((Fl_Callback*)cb_valinp_trace_0_hue_max); + valinp_trace_0_hue_max->hide(); + } // Fl_Value_Input* valinp_trace_0_hue_max + { button_trace_0_hue_minmax = new Fl_Button(335, 65, 15, 25, "..."); + button_trace_0_hue_minmax->callback((Fl_Callback*)cb_button_trace_0_hue_minmax); + button_trace_0_hue_minmax->hide(); + } // Fl_Button* button_trace_0_hue_minmax + { chebut_trace_0_rotate360_sw = new Fl_Check_Button(350, 65, 15, 25); + chebut_trace_0_rotate360_sw->down_box(FL_DOWN_BOX); + chebut_trace_0_rotate360_sw->callback((Fl_Callback*)cb_chebut_trace_0_rotate360_sw); + chebut_trace_0_rotate360_sw->hide(); + } // Fl_Check_Button* chebut_trace_0_rotate360_sw + { chebut_trace_0_display_sw = new Fl_Check_Button(365, 65, 17, 25); + chebut_trace_0_display_sw->down_box(FL_DOWN_BOX); + chebut_trace_0_display_sw->callback((Fl_Callback*)cb_chebut_trace_0_display_sw); + } // Fl_Check_Button* chebut_trace_0_display_sw + { valinp_trace_0_slope_deg = new Fl_Value_Input(390, 65, 30, 25); + valinp_trace_0_slope_deg->box(FL_BORDER_BOX); + valinp_trace_0_slope_deg->maximum(90); + valinp_trace_0_slope_deg->value(45); + valinp_trace_0_slope_deg->callback((Fl_Callback*)cb_valinp_trace_0_slope_deg); + } // Fl_Value_Input* valinp_trace_0_slope_deg + { valinp_trace_0_intercept = new Fl_Value_Input(425, 65, 35, 25); + valinp_trace_0_intercept->box(FL_BORDER_BOX); + valinp_trace_0_intercept->maximum(100); + valinp_trace_0_intercept->value(100); + valinp_trace_0_intercept->callback((Fl_Callback*)cb_valinp_trace_0_intercept); + } // Fl_Value_Input* valinp_trace_0_intercept + group_trace_0->end(); + } // Fl_Group* group_trace_0 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 95, 465, 25); + { chebut_trace_1_enable_sw = new Fl_Check_Button(2, 95, 17, 25); + chebut_trace_1_enable_sw->down_box(FL_DOWN_BOX); + chebut_trace_1_enable_sw->value(1); + chebut_trace_1_enable_sw->callback((Fl_Callback*)cb_chebut_trace_1_enable_sw); + chebut_trace_1_enable_sw->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Check_Button* chebut_trace_1_enable_sw + { group_trace_1 = new Fl_Group(0, 95, 465, 25); + { button_trace_1_target_rgb = new Fl_Button(23, 95, 25, 25); + button_trace_1_target_rgb->color((Fl_Color)17); + button_trace_1_target_rgb->callback((Fl_Callback*)cb_button_trace_1_target_rgb); + } // Fl_Button* button_trace_1_target_rgb + { valinp_trace_1_thickness = new Fl_Value_Input(50, 95, 30, 25); + valinp_trace_1_thickness->box(FL_BORDER_BOX); + valinp_trace_1_thickness->maximum(100); + valinp_trace_1_thickness->value(70); + valinp_trace_1_thickness->callback((Fl_Callback*)cb_valinp_trace_1_thickness); + } // Fl_Value_Input* valinp_trace_1_thickness + { scrbar_trace_1_thickness = new Fl_Scrollbar(82, 97, 115, 20); + scrbar_trace_1_thickness->type(1); + scrbar_trace_1_thickness->box(FL_BORDER_BOX); + scrbar_trace_1_thickness->maximum(100); + scrbar_trace_1_thickness->Fl_Slider::value(70); + scrbar_trace_1_thickness->callback((Fl_Callback*)cb_scrbar_trace_1_thickness); + scrbar_trace_1_thickness->linesize(1); + } // Fl_Scrollbar* scrbar_trace_1_thickness + { button_trace_1_hue_min = new Fl_Button(250, 95, 15, 25, "..."); + button_trace_1_hue_min->callback((Fl_Callback*)cb_button_trace_1_hue_min); + button_trace_1_hue_min->hide(); + } // Fl_Button* button_trace_1_hue_min + { valinp_trace_1_hue_min = new Fl_Value_Input(265, 95, 35, 25); + valinp_trace_1_hue_min->box(FL_BORDER_BOX); + valinp_trace_1_hue_min->maximum(360); + valinp_trace_1_hue_min->value(300); + valinp_trace_1_hue_min->callback((Fl_Callback*)cb_valinp_trace_1_hue_min); + } // Fl_Value_Input* valinp_trace_1_hue_min + { valinp_trace_1_hue_max = new Fl_Value_Input(300, 95, 35, 25); + valinp_trace_1_hue_max->box(FL_BORDER_BOX); + valinp_trace_1_hue_max->maximum(360); + valinp_trace_1_hue_max->value(60); + valinp_trace_1_hue_max->callback((Fl_Callback*)cb_valinp_trace_1_hue_max); + } // Fl_Value_Input* valinp_trace_1_hue_max + { button_trace_1_hue_minmax = new Fl_Button(335, 95, 15, 25, "..."); + button_trace_1_hue_minmax->callback((Fl_Callback*)cb_button_trace_1_hue_minmax); + } // Fl_Button* button_trace_1_hue_minmax + { chebut_trace_1_rotate360_sw = new Fl_Check_Button(350, 95, 15, 25); + chebut_trace_1_rotate360_sw->down_box(FL_DOWN_BOX); + chebut_trace_1_rotate360_sw->callback((Fl_Callback*)cb_chebut_trace_1_rotate360_sw); + chebut_trace_1_rotate360_sw->hide(); + } // Fl_Check_Button* chebut_trace_1_rotate360_sw + { chebut_trace_1_display_sw = new Fl_Check_Button(365, 95, 17, 25); + chebut_trace_1_display_sw->down_box(FL_DOWN_BOX); + chebut_trace_1_display_sw->callback((Fl_Callback*)cb_chebut_trace_1_display_sw); + } // Fl_Check_Button* chebut_trace_1_display_sw + { valinp_trace_1_slope_deg = new Fl_Value_Input(390, 95, 30, 25); + valinp_trace_1_slope_deg->box(FL_BORDER_BOX); + valinp_trace_1_slope_deg->maximum(90); + valinp_trace_1_slope_deg->value(45); + valinp_trace_1_slope_deg->callback((Fl_Callback*)cb_valinp_trace_1_slope_deg); + } // Fl_Value_Input* valinp_trace_1_slope_deg + { valinp_trace_1_intercept = new Fl_Value_Input(425, 95, 35, 25); + valinp_trace_1_intercept->box(FL_BORDER_BOX); + valinp_trace_1_intercept->maximum(100); + valinp_trace_1_intercept->value(100); + valinp_trace_1_intercept->callback((Fl_Callback*)cb_valinp_trace_1_intercept); + } // Fl_Value_Input* valinp_trace_1_intercept + group_trace_1->end(); + } // Fl_Group* group_trace_1 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 125, 465, 25); + { chebut_trace_2_enable_sw = new Fl_Check_Button(2, 125, 17, 25); + chebut_trace_2_enable_sw->down_box(FL_DOWN_BOX); + chebut_trace_2_enable_sw->value(1); + chebut_trace_2_enable_sw->callback((Fl_Callback*)cb_chebut_trace_2_enable_sw); + chebut_trace_2_enable_sw->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Check_Button* chebut_trace_2_enable_sw + { group_trace_2 = new Fl_Group(0, 125, 465, 25); + { button_trace_2_target_rgb = new Fl_Button(23, 125, 25, 25); + button_trace_2_target_rgb->color((Fl_Color)18); + button_trace_2_target_rgb->callback((Fl_Callback*)cb_button_trace_2_target_rgb); + } // Fl_Button* button_trace_2_target_rgb + { valinp_trace_2_thickness = new Fl_Value_Input(50, 125, 30, 25); + valinp_trace_2_thickness->box(FL_BORDER_BOX); + valinp_trace_2_thickness->maximum(100); + valinp_trace_2_thickness->value(70); + valinp_trace_2_thickness->callback((Fl_Callback*)cb_valinp_trace_2_thickness); + } // Fl_Value_Input* valinp_trace_2_thickness + { scrbar_trace_2_thickness = new Fl_Scrollbar(82, 127, 115, 20); + scrbar_trace_2_thickness->type(1); + scrbar_trace_2_thickness->box(FL_BORDER_BOX); + scrbar_trace_2_thickness->maximum(100); + scrbar_trace_2_thickness->Fl_Slider::value(70); + scrbar_trace_2_thickness->callback((Fl_Callback*)cb_scrbar_trace_2_thickness); + scrbar_trace_2_thickness->linesize(1); + } // Fl_Scrollbar* scrbar_trace_2_thickness + { button_trace_2_hue_min = new Fl_Button(250, 125, 15, 25, "..."); + button_trace_2_hue_min->callback((Fl_Callback*)cb_button_trace_2_hue_min); + button_trace_2_hue_min->hide(); + } // Fl_Button* button_trace_2_hue_min + { valinp_trace_2_hue_min = new Fl_Value_Input(265, 125, 35, 25); + valinp_trace_2_hue_min->box(FL_BORDER_BOX); + valinp_trace_2_hue_min->maximum(360); + valinp_trace_2_hue_min->value(180); + valinp_trace_2_hue_min->callback((Fl_Callback*)cb_valinp_trace_2_hue_min); + } // Fl_Value_Input* valinp_trace_2_hue_min + { valinp_trace_2_hue_max = new Fl_Value_Input(300, 125, 35, 25); + valinp_trace_2_hue_max->box(FL_BORDER_BOX); + valinp_trace_2_hue_max->maximum(360); + valinp_trace_2_hue_max->value(300); + valinp_trace_2_hue_max->callback((Fl_Callback*)cb_valinp_trace_2_hue_max); + } // Fl_Value_Input* valinp_trace_2_hue_max + { button_trace_2_hue_minmax = new Fl_Button(335, 125, 15, 25, "..."); + button_trace_2_hue_minmax->callback((Fl_Callback*)cb_button_trace_2_hue_minmax); + } // Fl_Button* button_trace_2_hue_minmax + { chebut_trace_2_rotate360_sw = new Fl_Check_Button(350, 125, 15, 25); + chebut_trace_2_rotate360_sw->down_box(FL_DOWN_BOX); + chebut_trace_2_rotate360_sw->callback((Fl_Callback*)cb_chebut_trace_2_rotate360_sw); + chebut_trace_2_rotate360_sw->hide(); + } // Fl_Check_Button* chebut_trace_2_rotate360_sw + { chebut_trace_2_display_sw = new Fl_Check_Button(365, 125, 17, 25); + chebut_trace_2_display_sw->down_box(FL_DOWN_BOX); + chebut_trace_2_display_sw->callback((Fl_Callback*)cb_chebut_trace_2_display_sw); + } // Fl_Check_Button* chebut_trace_2_display_sw + { valinp_trace_2_slope_deg = new Fl_Value_Input(390, 125, 30, 25); + valinp_trace_2_slope_deg->box(FL_BORDER_BOX); + valinp_trace_2_slope_deg->maximum(90); + valinp_trace_2_slope_deg->value(45); + valinp_trace_2_slope_deg->callback((Fl_Callback*)cb_valinp_trace_2_slope_deg); + } // Fl_Value_Input* valinp_trace_2_slope_deg + { valinp_trace_2_intercept = new Fl_Value_Input(425, 125, 35, 25); + valinp_trace_2_intercept->box(FL_BORDER_BOX); + valinp_trace_2_intercept->maximum(100); + valinp_trace_2_intercept->value(100); + valinp_trace_2_intercept->callback((Fl_Callback*)cb_valinp_trace_2_intercept); + } // Fl_Value_Input* valinp_trace_2_intercept + group_trace_2->end(); + } // Fl_Group* group_trace_2 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 155, 465, 25); + { chebut_trace_3_enable_sw = new Fl_Check_Button(2, 155, 17, 25); + chebut_trace_3_enable_sw->down_box(FL_DOWN_BOX); + chebut_trace_3_enable_sw->value(1); + chebut_trace_3_enable_sw->callback((Fl_Callback*)cb_chebut_trace_3_enable_sw); + chebut_trace_3_enable_sw->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Check_Button* chebut_trace_3_enable_sw + { group_trace_3 = new Fl_Group(0, 155, 465, 25); + { button_trace_3_target_rgb = new Fl_Button(23, 155, 25, 25); + button_trace_3_target_rgb->color((Fl_Color)19); + button_trace_3_target_rgb->callback((Fl_Callback*)cb_button_trace_3_target_rgb); + } // Fl_Button* button_trace_3_target_rgb + { valinp_trace_3_thickness = new Fl_Value_Input(50, 155, 30, 25); + valinp_trace_3_thickness->box(FL_BORDER_BOX); + valinp_trace_3_thickness->maximum(100); + valinp_trace_3_thickness->value(70); + valinp_trace_3_thickness->callback((Fl_Callback*)cb_valinp_trace_3_thickness); + } // Fl_Value_Input* valinp_trace_3_thickness + { scrbar_trace_3_thickness = new Fl_Scrollbar(82, 157, 115, 20); + scrbar_trace_3_thickness->type(1); + scrbar_trace_3_thickness->box(FL_BORDER_BOX); + scrbar_trace_3_thickness->maximum(100); + scrbar_trace_3_thickness->Fl_Slider::value(70); + scrbar_trace_3_thickness->callback((Fl_Callback*)cb_scrbar_trace_3_thickness); + scrbar_trace_3_thickness->linesize(1); + } // Fl_Scrollbar* scrbar_trace_3_thickness + { button_trace_3_hue_min = new Fl_Button(250, 155, 15, 25, "..."); + button_trace_3_hue_min->callback((Fl_Callback*)cb_button_trace_3_hue_min); + button_trace_3_hue_min->hide(); + } // Fl_Button* button_trace_3_hue_min + { valinp_trace_3_hue_min = new Fl_Value_Input(265, 155, 35, 25); + valinp_trace_3_hue_min->box(FL_BORDER_BOX); + valinp_trace_3_hue_min->maximum(360); + valinp_trace_3_hue_min->value(60); + valinp_trace_3_hue_min->callback((Fl_Callback*)cb_valinp_trace_3_hue_min); + } // Fl_Value_Input* valinp_trace_3_hue_min + { valinp_trace_3_hue_max = new Fl_Value_Input(300, 155, 35, 25); + valinp_trace_3_hue_max->box(FL_BORDER_BOX); + valinp_trace_3_hue_max->maximum(360); + valinp_trace_3_hue_max->value(180); + valinp_trace_3_hue_max->callback((Fl_Callback*)cb_valinp_trace_3_hue_max); + } // Fl_Value_Input* valinp_trace_3_hue_max + { button_trace_3_hue_minmax = new Fl_Button(335, 155, 15, 25, "..."); + button_trace_3_hue_minmax->callback((Fl_Callback*)cb_button_trace_3_hue_minmax); + } // Fl_Button* button_trace_3_hue_minmax + { chebut_trace_3_rotate360_sw = new Fl_Check_Button(350, 155, 15, 25); + chebut_trace_3_rotate360_sw->down_box(FL_DOWN_BOX); + chebut_trace_3_rotate360_sw->callback((Fl_Callback*)cb_chebut_trace_3_rotate360_sw); + chebut_trace_3_rotate360_sw->hide(); + } // Fl_Check_Button* chebut_trace_3_rotate360_sw + { chebut_trace_3_display_sw = new Fl_Check_Button(365, 155, 17, 25); + chebut_trace_3_display_sw->down_box(FL_DOWN_BOX); + chebut_trace_3_display_sw->callback((Fl_Callback*)cb_chebut_trace_3_display_sw); + } // Fl_Check_Button* chebut_trace_3_display_sw + { valinp_trace_3_slope_deg = new Fl_Value_Input(390, 155, 30, 25); + valinp_trace_3_slope_deg->box(FL_BORDER_BOX); + valinp_trace_3_slope_deg->maximum(90); + valinp_trace_3_slope_deg->value(45); + valinp_trace_3_slope_deg->callback((Fl_Callback*)cb_valinp_trace_3_slope_deg); + } // Fl_Value_Input* valinp_trace_3_slope_deg + { valinp_trace_3_intercept = new Fl_Value_Input(425, 155, 35, 25); + valinp_trace_3_intercept->box(FL_BORDER_BOX); + valinp_trace_3_intercept->maximum(100); + valinp_trace_3_intercept->value(100); + valinp_trace_3_intercept->callback((Fl_Callback*)cb_valinp_trace_3_intercept); + } // Fl_Value_Input* valinp_trace_3_intercept + group_trace_3->end(); + } // Fl_Group* group_trace_3 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 185, 465, 25); + { chebut_trace_4_enable_sw = new Fl_Check_Button(2, 185, 17, 25); + chebut_trace_4_enable_sw->down_box(FL_DOWN_BOX); + chebut_trace_4_enable_sw->callback((Fl_Callback*)cb_chebut_trace_4_enable_sw); + chebut_trace_4_enable_sw->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Check_Button* chebut_trace_4_enable_sw + { group_trace_4 = new Fl_Group(0, 185, 465, 25); + group_trace_4->deactivate(); + { button_trace_4_target_rgb = new Fl_Button(23, 185, 25, 25); + button_trace_4_target_rgb->color((Fl_Color)20); + button_trace_4_target_rgb->callback((Fl_Callback*)cb_button_trace_4_target_rgb); + } // Fl_Button* button_trace_4_target_rgb + { valinp_trace_4_thickness = new Fl_Value_Input(50, 185, 30, 25); + valinp_trace_4_thickness->box(FL_BORDER_BOX); + valinp_trace_4_thickness->maximum(100); + valinp_trace_4_thickness->value(70); + valinp_trace_4_thickness->callback((Fl_Callback*)cb_valinp_trace_4_thickness); + } // Fl_Value_Input* valinp_trace_4_thickness + { scrbar_trace_4_thickness = new Fl_Scrollbar(82, 187, 115, 20); + scrbar_trace_4_thickness->type(1); + scrbar_trace_4_thickness->box(FL_BORDER_BOX); + scrbar_trace_4_thickness->maximum(100); + scrbar_trace_4_thickness->Fl_Slider::value(70); + scrbar_trace_4_thickness->callback((Fl_Callback*)cb_scrbar_trace_4_thickness); + scrbar_trace_4_thickness->linesize(1); + } // Fl_Scrollbar* scrbar_trace_4_thickness + { button_trace_4_hue_min = new Fl_Button(250, 185, 15, 25, "..."); + button_trace_4_hue_min->callback((Fl_Callback*)cb_button_trace_4_hue_min); + button_trace_4_hue_min->hide(); + } // Fl_Button* button_trace_4_hue_min + { valinp_trace_4_hue_min = new Fl_Value_Input(265, 185, 35, 25); + valinp_trace_4_hue_min->box(FL_BORDER_BOX); + valinp_trace_4_hue_min->maximum(360); + valinp_trace_4_hue_min->value(180); + valinp_trace_4_hue_min->callback((Fl_Callback*)cb_valinp_trace_4_hue_min); + } // Fl_Value_Input* valinp_trace_4_hue_min + { valinp_trace_4_hue_max = new Fl_Value_Input(300, 185, 35, 25); + valinp_trace_4_hue_max->box(FL_BORDER_BOX); + valinp_trace_4_hue_max->maximum(360); + valinp_trace_4_hue_max->value(180); + valinp_trace_4_hue_max->callback((Fl_Callback*)cb_valinp_trace_4_hue_max); + } // Fl_Value_Input* valinp_trace_4_hue_max + { button_trace_4_hue_minmax = new Fl_Button(335, 185, 15, 25, "..."); + button_trace_4_hue_minmax->callback((Fl_Callback*)cb_button_trace_4_hue_minmax); + } // Fl_Button* button_trace_4_hue_minmax + { chebut_trace_4_rotate360_sw = new Fl_Check_Button(350, 185, 17, 25); + chebut_trace_4_rotate360_sw->down_box(FL_DOWN_BOX); + chebut_trace_4_rotate360_sw->callback((Fl_Callback*)cb_chebut_trace_4_rotate360_sw); + chebut_trace_4_rotate360_sw->hide(); + } // Fl_Check_Button* chebut_trace_4_rotate360_sw + { chebut_trace_4_display_sw = new Fl_Check_Button(365, 185, 17, 25); + chebut_trace_4_display_sw->down_box(FL_DOWN_BOX); + chebut_trace_4_display_sw->callback((Fl_Callback*)cb_chebut_trace_4_display_sw); + } // Fl_Check_Button* chebut_trace_4_display_sw + { valinp_trace_4_slope_deg = new Fl_Value_Input(390, 185, 30, 25); + valinp_trace_4_slope_deg->box(FL_BORDER_BOX); + valinp_trace_4_slope_deg->maximum(90); + valinp_trace_4_slope_deg->value(45); + valinp_trace_4_slope_deg->callback((Fl_Callback*)cb_valinp_trace_4_slope_deg); + } // Fl_Value_Input* valinp_trace_4_slope_deg + { valinp_trace_4_intercept = new Fl_Value_Input(425, 185, 35, 25); + valinp_trace_4_intercept->box(FL_BORDER_BOX); + valinp_trace_4_intercept->maximum(100); + valinp_trace_4_intercept->value(100); + valinp_trace_4_intercept->callback((Fl_Callback*)cb_valinp_trace_4_intercept); + } // Fl_Value_Input* valinp_trace_4_intercept + group_trace_4->end(); + } // Fl_Group* group_trace_4 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 215, 465, 25); + { chebut_trace_5_enable_sw = new Fl_Check_Button(2, 215, 17, 25); + chebut_trace_5_enable_sw->down_box(FL_DOWN_BOX); + chebut_trace_5_enable_sw->callback((Fl_Callback*)cb_chebut_trace_5_enable_sw); + chebut_trace_5_enable_sw->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Check_Button* chebut_trace_5_enable_sw + { group_trace_5 = new Fl_Group(0, 215, 465, 25); + group_trace_5->deactivate(); + { button_trace_5_target_rgb = new Fl_Button(23, 215, 25, 25); + button_trace_5_target_rgb->color((Fl_Color)21); + button_trace_5_target_rgb->callback((Fl_Callback*)cb_button_trace_5_target_rgb); + } // Fl_Button* button_trace_5_target_rgb + { valinp_trace_5_thickness = new Fl_Value_Input(50, 215, 30, 25); + valinp_trace_5_thickness->box(FL_BORDER_BOX); + valinp_trace_5_thickness->maximum(100); + valinp_trace_5_thickness->value(70); + valinp_trace_5_thickness->callback((Fl_Callback*)cb_valinp_trace_5_thickness); + } // Fl_Value_Input* valinp_trace_5_thickness + { scrbar_trace_5_thickness = new Fl_Scrollbar(82, 217, 115, 20); + scrbar_trace_5_thickness->type(1); + scrbar_trace_5_thickness->box(FL_BORDER_BOX); + scrbar_trace_5_thickness->maximum(100); + scrbar_trace_5_thickness->Fl_Slider::value(70); + scrbar_trace_5_thickness->callback((Fl_Callback*)cb_scrbar_trace_5_thickness); + scrbar_trace_5_thickness->linesize(1); + } // Fl_Scrollbar* scrbar_trace_5_thickness + { button_trace_5_hue_min = new Fl_Button(250, 215, 15, 25, "..."); + button_trace_5_hue_min->callback((Fl_Callback*)cb_button_trace_5_hue_min); + button_trace_5_hue_min->hide(); + } // Fl_Button* button_trace_5_hue_min + { valinp_trace_5_hue_min = new Fl_Value_Input(265, 215, 35, 25); + valinp_trace_5_hue_min->box(FL_BORDER_BOX); + valinp_trace_5_hue_min->maximum(360); + valinp_trace_5_hue_min->value(300); + valinp_trace_5_hue_min->callback((Fl_Callback*)cb_valinp_trace_5_hue_min); + } // Fl_Value_Input* valinp_trace_5_hue_min + { valinp_trace_5_hue_max = new Fl_Value_Input(300, 215, 35, 25); + valinp_trace_5_hue_max->box(FL_BORDER_BOX); + valinp_trace_5_hue_max->maximum(360); + valinp_trace_5_hue_max->value(300); + valinp_trace_5_hue_max->callback((Fl_Callback*)cb_valinp_trace_5_hue_max); + } // Fl_Value_Input* valinp_trace_5_hue_max + { button_trace_5_hue_minmax = new Fl_Button(335, 215, 15, 25, "..."); + button_trace_5_hue_minmax->callback((Fl_Callback*)cb_button_trace_5_hue_minmax); + } // Fl_Button* button_trace_5_hue_minmax + { chebut_trace_5_rotate360_sw = new Fl_Check_Button(350, 215, 17, 25); + chebut_trace_5_rotate360_sw->down_box(FL_DOWN_BOX); + chebut_trace_5_rotate360_sw->callback((Fl_Callback*)cb_chebut_trace_5_rotate360_sw); + chebut_trace_5_rotate360_sw->hide(); + } // Fl_Check_Button* chebut_trace_5_rotate360_sw + { chebut_trace_5_display_sw = new Fl_Check_Button(365, 215, 17, 25); + chebut_trace_5_display_sw->down_box(FL_DOWN_BOX); + chebut_trace_5_display_sw->callback((Fl_Callback*)cb_chebut_trace_5_display_sw); + } // Fl_Check_Button* chebut_trace_5_display_sw + { valinp_trace_5_slope_deg = new Fl_Value_Input(390, 215, 30, 25); + valinp_trace_5_slope_deg->box(FL_BORDER_BOX); + valinp_trace_5_slope_deg->maximum(90); + valinp_trace_5_slope_deg->value(45); + valinp_trace_5_slope_deg->callback((Fl_Callback*)cb_valinp_trace_5_slope_deg); + } // Fl_Value_Input* valinp_trace_5_slope_deg + { valinp_trace_5_intercept = new Fl_Value_Input(425, 215, 35, 25); + valinp_trace_5_intercept->box(FL_BORDER_BOX); + valinp_trace_5_intercept->maximum(100); + valinp_trace_5_intercept->value(100); + valinp_trace_5_intercept->callback((Fl_Callback*)cb_valinp_trace_5_intercept); + } // Fl_Value_Input* valinp_trace_5_intercept + group_trace_5->end(); + } // Fl_Group* group_trace_5 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(225, 80, 15, 145); + { button_change_0_1 = new Fl_Button(225, 80, 15, 25); + button_change_0_1->image( image_icon_change_updown() ); + button_change_0_1->callback((Fl_Callback*)cb_button_change_0_1); + } // Fl_Button* button_change_0_1 + { button_change_1_2 = new Fl_Button(225, 110, 15, 25); + button_change_1_2->image( image_icon_change_updown() ); + button_change_1_2->callback((Fl_Callback*)cb_button_change_1_2); + } // Fl_Button* button_change_1_2 + { button_change_2_3 = new Fl_Button(225, 140, 15, 25); + button_change_2_3->image( image_icon_change_updown() ); + button_change_2_3->callback((Fl_Callback*)cb_button_change_2_3); + } // Fl_Button* button_change_2_3 + { button_change_3_4 = new Fl_Button(225, 170, 15, 25); + button_change_3_4->image( image_icon_change_updown() ); + button_change_3_4->callback((Fl_Callback*)cb_button_change_3_4); + } // Fl_Button* button_change_3_4 + { button_change_4_5 = new Fl_Button(225, 200, 15, 25); + button_change_4_5->image( image_icon_change_updown() ); + button_change_4_5->callback((Fl_Callback*)cb_button_change_4_5); + } // Fl_Button* button_change_4_5 + o->end(); + } // Fl_Group* o + group_trace_params->end(); + } // Fl_Group* group_trace_params + window_trace_params->set_non_modal(); + window_trace_params->end(); + } // Fl_Double_Window* window_trace_params + { window_trace_hsv_view = new Fl_Double_Window(500, 500, "\347\267\232\343\201\256HSV\350\211\262\347\253\213\344\275\223"); + window_trace_hsv_view->callback((Fl_Callback*)cb_window_trace_hsv_view, (void*)(this)); + { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 500, 25); + o->hide(); + o->menu(menu_2); + } // Fl_Menu_Bar* o + { hsv_view = new fl_gl_hsv_view(0, 0, 500, 500); + hsv_view->box(FL_NO_BOX); + hsv_view->color(FL_BACKGROUND_COLOR); + hsv_view->selection_color(FL_BACKGROUND_COLOR); + hsv_view->labeltype(FL_NORMAL_LABEL); + hsv_view->labelfont(0); + hsv_view->labelsize(14); + hsv_view->labelcolor(FL_FOREGROUND_COLOR); + hsv_view->align(Fl_Align(FL_ALIGN_CENTER)); + hsv_view->when(FL_WHEN_RELEASE); + Fl_Group::current()->resizable(hsv_view); + } // fl_gl_hsv_view* hsv_view + window_trace_hsv_view->set_non_modal(); + window_trace_hsv_view->end(); + } // Fl_Double_Window* window_trace_hsv_view + { window_set_number_format = new Fl_Double_Window(200, 150, "\351\200\243\347\225\252\346\233\270\345\274\217"); + window_set_number_format->callback((Fl_Callback*)cb_window_set_number_format, (void*)(this)); + { choice_input_num_form_separator = new Fl_Choice(80, 10, 105, 25, "\345\214\272\345\210\207"); + choice_input_num_form_separator->box(FL_BORDER_BOX); + choice_input_num_form_separator->down_box(FL_BORDER_BOX); + choice_input_num_form_separator->callback((Fl_Callback*)cb_choice_input_num_form_separator); + } // Fl_Choice* choice_input_num_form_separator + { counte_input_num_form_num_of_digits = new Fl_Counter(120, 40, 65, 25, "\346\241\201\346\225\260"); + counte_input_num_form_num_of_digits->type(1); + counte_input_num_form_num_of_digits->box(FL_BORDER_BOX); + counte_input_num_form_num_of_digits->minimum(2); + counte_input_num_form_num_of_digits->maximum(4); + counte_input_num_form_num_of_digits->step(1); + counte_input_num_form_num_of_digits->callback((Fl_Callback*)cb_counte_input_num_form_num_of_digits); + counte_input_num_form_num_of_digits->align(Fl_Align(FL_ALIGN_LEFT)); + } // Fl_Counter* counte_input_num_form_num_of_digits + { output_input_num_form_sample = new Fl_Output(60, 80, 80, 25); + output_input_num_form_sample->box(FL_BORDER_BOX); + } // Fl_Output* output_input_num_form_sample + { Fl_Button* o = new Fl_Button(20, 115, 60, 25, "\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_23); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(120, 115, 60, 25, "\343\202\255\343\203\243\343\203\263\343\202\273\343\203\253"); + o->callback((Fl_Callback*)cb_24); + } // Fl_Button* o + window_set_number_format->set_modal(); + window_set_number_format->end(); + } // Fl_Double_Window* window_set_number_format + { window_set_aspect_ratio = new Fl_Double_Window(160, 90, "\347\270\246\346\250\252\346\257\224"); + window_set_aspect_ratio->callback((Fl_Callback*)cb_window_set_aspect_ratio, (void*)(this)); + { Fl_Group* o = new Fl_Group(0, 15, 150, 25); + { radbut_area_aspect_ratio_w = new Fl_Button(10, 15, 15, 25, "W"); + radbut_area_aspect_ratio_w->type(102); + radbut_area_aspect_ratio_w->value(1); + } // Fl_Button* radbut_area_aspect_ratio_w + { valinp_area_aspect_ratio_w = new Fl_Value_Input(25, 15, 55, 25); + valinp_area_aspect_ratio_w->box(FL_BORDER_BOX); + valinp_area_aspect_ratio_w->value(16); + } // Fl_Value_Input* valinp_area_aspect_ratio_w + { radbut_area_aspect_ratio_h = new Fl_Button(80, 15, 15, 25, "H"); + radbut_area_aspect_ratio_h->type(102); + } // Fl_Button* radbut_area_aspect_ratio_h + { valinp_area_aspect_ratio_h = new Fl_Value_Input(95, 15, 55, 25); + valinp_area_aspect_ratio_h->box(FL_BORDER_BOX); + valinp_area_aspect_ratio_h->value(9); + } // Fl_Value_Input* valinp_area_aspect_ratio_h + o->end(); + } // Fl_Group* o + { Fl_Button* o = new Fl_Button(15, 55, 60, 25, "\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_25); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(85, 55, 60, 25, "\343\202\255\343\203\243\343\203\263\343\202\273\343\203\253"); + o->callback((Fl_Callback*)cb_26); + } // Fl_Button* o + window_set_aspect_ratio->set_modal(); + window_set_aspect_ratio->end(); + } // Fl_Double_Window* window_set_aspect_ratio + { window_set_color = new Fl_Double_Window(200, 205, "\350\211\262"); + window_set_color->callback((Fl_Callback*)cb_window_set_color, (void*)(this)); + { Fl_Group* o = new Fl_Group(0, 5, 200, 141); + { Fl_Group* o = new Fl_Group(0, 5, 200, 20); + { valinp_set_color_hue = new Fl_Value_Input(20, 5, 35, 18, "H"); + valinp_set_color_hue->box(FL_BORDER_BOX); + valinp_set_color_hue->maximum(360); + valinp_set_color_hue->callback((Fl_Callback*)cb_valinp_set_color_hue); + } // Fl_Value_Input* valinp_set_color_hue + { scrbar_set_color_hue = new Fl_Scrollbar(60, 5, 135, 18); + scrbar_set_color_hue->type(1); + scrbar_set_color_hue->box(FL_BORDER_BOX); + scrbar_set_color_hue->maximum(360); + scrbar_set_color_hue->callback((Fl_Callback*)cb_scrbar_set_color_hue); + Fl_Group::current()->resizable(scrbar_set_color_hue); + scrbar_set_color_hue->linesize(1); + } // Fl_Scrollbar* scrbar_set_color_hue + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 28, 200, 20); + { valinp_set_color_sat = new Fl_Value_Input(20, 28, 35, 18, "S"); + valinp_set_color_sat->box(FL_BORDER_BOX); + valinp_set_color_sat->maximum(100); + valinp_set_color_sat->callback((Fl_Callback*)cb_valinp_set_color_sat); + } // Fl_Value_Input* valinp_set_color_sat + { scrbar_set_color_sat = new Fl_Scrollbar(60, 28, 135, 18); + scrbar_set_color_sat->type(1); + scrbar_set_color_sat->box(FL_BORDER_BOX); + scrbar_set_color_sat->maximum(100); + scrbar_set_color_sat->callback((Fl_Callback*)cb_scrbar_set_color_sat); + Fl_Group::current()->resizable(scrbar_set_color_sat); + scrbar_set_color_sat->linesize(1); + } // Fl_Scrollbar* scrbar_set_color_sat + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 51, 200, 20); + { valinp_set_color_val = new Fl_Value_Input(20, 51, 35, 18, "V"); + valinp_set_color_val->box(FL_BORDER_BOX); + valinp_set_color_val->maximum(100); + valinp_set_color_val->callback((Fl_Callback*)cb_valinp_set_color_val); + } // Fl_Value_Input* valinp_set_color_val + { scrbar_set_color_val = new Fl_Scrollbar(60, 51, 135, 18); + scrbar_set_color_val->type(1); + scrbar_set_color_val->box(FL_BORDER_BOX); + scrbar_set_color_val->maximum(100); + scrbar_set_color_val->callback((Fl_Callback*)cb_scrbar_set_color_val); + Fl_Group::current()->resizable(scrbar_set_color_val); + scrbar_set_color_val->linesize(1); + } // Fl_Scrollbar* scrbar_set_color_val + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 80, 200, 20); + { valinp_set_color_red = new Fl_Value_Input(20, 80, 35, 18, "R"); + valinp_set_color_red->box(FL_BORDER_BOX); + valinp_set_color_red->maximum(255); + valinp_set_color_red->callback((Fl_Callback*)cb_valinp_set_color_red); + } // Fl_Value_Input* valinp_set_color_red + { scrbar_set_color_red = new Fl_Scrollbar(60, 80, 135, 18); + scrbar_set_color_red->type(1); + scrbar_set_color_red->box(FL_BORDER_BOX); + scrbar_set_color_red->maximum(255); + scrbar_set_color_red->callback((Fl_Callback*)cb_scrbar_set_color_red); + Fl_Group::current()->resizable(scrbar_set_color_red); + scrbar_set_color_red->linesize(1); + } // Fl_Scrollbar* scrbar_set_color_red + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 103, 200, 20); + { valinp_set_color_gre = new Fl_Value_Input(20, 103, 35, 18, "G"); + valinp_set_color_gre->box(FL_BORDER_BOX); + valinp_set_color_gre->maximum(255); + valinp_set_color_gre->callback((Fl_Callback*)cb_valinp_set_color_gre); + } // Fl_Value_Input* valinp_set_color_gre + { scrbar_set_color_gre = new Fl_Scrollbar(60, 103, 135, 18); + scrbar_set_color_gre->type(1); + scrbar_set_color_gre->box(FL_BORDER_BOX); + scrbar_set_color_gre->maximum(255); + scrbar_set_color_gre->callback((Fl_Callback*)cb_scrbar_set_color_gre); + Fl_Group::current()->resizable(scrbar_set_color_gre); + scrbar_set_color_gre->linesize(1); + } // Fl_Scrollbar* scrbar_set_color_gre + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 126, 200, 20); + { valinp_set_color_blu = new Fl_Value_Input(20, 126, 35, 18, "B"); + valinp_set_color_blu->box(FL_BORDER_BOX); + valinp_set_color_blu->maximum(255); + valinp_set_color_blu->callback((Fl_Callback*)cb_valinp_set_color_blu); + } // Fl_Value_Input* valinp_set_color_blu + { scrbar_set_color_blu = new Fl_Scrollbar(60, 126, 135, 18); + scrbar_set_color_blu->type(1); + scrbar_set_color_blu->box(FL_BORDER_BOX); + scrbar_set_color_blu->maximum(255); + scrbar_set_color_blu->callback((Fl_Callback*)cb_scrbar_set_color_blu); + Fl_Group::current()->resizable(scrbar_set_color_blu); + scrbar_set_color_blu->linesize(1); + } // Fl_Scrollbar* scrbar_set_color_blu + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 150, 200, 50); + { Fl_Box* o = new Fl_Box(0, 150, 65, 50); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Group* o = new Fl_Group(65, 150, 130, 50); + { box_set_color_ok = new Fl_Box(65, 150, 65, 20); + box_set_color_ok->box(FL_FLAT_BOX); + } // Fl_Box* box_set_color_ok + { box_set_color_cancel = new Fl_Box(130, 150, 65, 20); + box_set_color_cancel->box(FL_FLAT_BOX); + box_set_color_cancel->color((Fl_Color)22); + } // Fl_Box* box_set_color_cancel + { Fl_Button* o = new Fl_Button(65, 175, 60, 25, "\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_27); + } // Fl_Button* o + { Fl_Button* o = new Fl_Button(135, 175, 60, 25, "\343\202\255\343\203\243\343\203\263\343\202\273\343\203\253"); + o->callback((Fl_Callback*)cb_28); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + o->end(); + } // Fl_Group* o + window_set_color->set_modal(); + window_set_color->size_range(200, 205, 1000, 205); + window_set_color->end(); + window_set_color->resizable(window_set_color); + } // Fl_Double_Window* window_set_color + { window_trace_hue_minmax = new Fl_Double_Window(200, 70, "\347\267\232\343\201\256\350\211\262\347\233\270\347\257\204\345\233\262"); + window_trace_hue_minmax->callback((Fl_Callback*)cb_window_trace_hue_minmax, (void*)(this)); + { Fl_Group* o = new Fl_Group(0, 0, 200, 40); + { new Fl_Box(0, 0, 200, 5); + } // Fl_Box* o + { cyclic_color_wheel = new fl_gl_cyclic_color_wheel(0, 5, 200, 30); + cyclic_color_wheel->box(FL_NO_BOX); + cyclic_color_wheel->color(FL_BACKGROUND_COLOR); + cyclic_color_wheel->selection_color(FL_BACKGROUND_COLOR); + cyclic_color_wheel->labeltype(FL_NORMAL_LABEL); + cyclic_color_wheel->labelfont(0); + cyclic_color_wheel->labelsize(14); + cyclic_color_wheel->labelcolor(FL_FOREGROUND_COLOR); + cyclic_color_wheel->align(Fl_Align(FL_ALIGN_CENTER)); + cyclic_color_wheel->when(FL_WHEN_RELEASE); + Fl_Group::current()->resizable(cyclic_color_wheel); + } // fl_gl_cyclic_color_wheel* cyclic_color_wheel + { new Fl_Box(0, 35, 200, 5); + } // Fl_Box* o + o->end(); + Fl_Group::current()->resizable(o); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(0, 40, 200, 30); + { Fl_Group* o = new Fl_Group(0, 40, 75, 30); + { radbut_hue_min_sw = new Fl_Button(5, 40, 35, 25, "\346\234\200\345\260\217"); + radbut_hue_min_sw->type(102); + radbut_hue_min_sw->value(1); + radbut_hue_min_sw->callback((Fl_Callback*)cb_radbut_hue_min_sw); + } // Fl_Button* radbut_hue_min_sw + { radbut_hue_max_sw = new Fl_Button(40, 40, 35, 25, "\346\234\200\345\244\247"); + radbut_hue_max_sw->type(102); + radbut_hue_max_sw->callback((Fl_Callback*)cb_radbut_hue_max_sw); + } // Fl_Button* radbut_hue_max_sw + o->end(); + } // Fl_Group* o + { Fl_Box* o = new Fl_Box(75, 40, 70, 25); + Fl_Group::current()->resizable(o); + } // Fl_Box* o + { Fl_Button* o = new Fl_Button(145, 40, 50, 25, "\343\203\252\343\202\273\343\203\203\343\203\210"); + o->callback((Fl_Callback*)cb_29); + } // Fl_Button* o + o->end(); + } // Fl_Group* o + window_trace_hue_minmax->set_non_modal(); + window_trace_hue_minmax->size_range(200, 70, 1000, 100); + window_trace_hue_minmax->end(); + } // Fl_Double_Window* window_trace_hue_minmax + return window_trace_hue_minmax; +} +gts_gui cl_gts_gui; diff --git a/sources/libcpp83gts_callback_and_action/gts_gui_ja.fl b/sources/libcpp83gts_callback_and_action/gts_gui_ja.fl new file mode 100644 index 0000000..5173c8d --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/gts_gui_ja.fl @@ -0,0 +1,2127 @@ +# data file for the Fltk User Interface Designer (fluid) +version 1.0304 +header_name {.h} +code_name {.cpp} +decl {\#include } { + comment {for "Help" --> "About This Application..."} private local +} + +decl {\#include } { + comment {for "Help" --> "About This Application..."} private local +} + +decl {\#include "gts_master.h"} {private local +} + +class gts_gui {open +} { + Function {make_window()} {open + } { + Fl_Window window_main_view { + label GTS + callback {cl_gts_master.cb_quit();} + xywh {50 50 720 565} type Double resizable visible + } { + Fl_Menu_Bar {} {open + xywh {0 0 720 25} + } { + Submenu {} { + label {ファイル} open + xywh {5 5 100 20} + } { + MenuItem {} { + label {画像 開く(1枚)...} + callback {cl_gts_master.cl_image.open();} + xywh {0 0 30 20} shortcut 0x4006f + } + MenuItem {} { + label {画像 別名で保存(1枚)...} + callback {cl_gts_master.cl_image.save_as();} + xywh {0 0 30 20} shortcut 0x50073 divider + } + MenuItem {} { + label {設定 読込み...} + callback {cl_gts_master.cl_config.open();} + xywh {5 5 100 20} shortcut 0x8006f + } + MenuItem {} { + label {設定 保存} + callback {cl_gts_master.cl_config.save();} + xywh {5 5 100 20} shortcut 0x80073 + } + MenuItem {} { + label {設定 別名で保存...} + callback {cl_gts_master.cl_config.save_as();} + xywh {5 5 100 20} shortcut 0x90073 divider + } + MenuItem {} { + label {終了} + callback {// cl_gts_master.reserve_by_menu(E_ACT_QUIT); +cl_gts_master.cb_quit();} + xywh {10 10 100 20} shortcut 0x40071 + } + } + Submenu {} { + label {実行} open + xywh {5 5 100 20} + } { + MenuItem menite_scan_crop { + label {サイズ設定} + callback {cl_gts_master.cl_area_and_rot90.cb_scan_full_area_and_crop();} + tooltip {Scan Overall and Crop} xywh {0 0 30 20} + } + MenuItem menite_preview_scan { + label {プレビュー} + callback {cl_gts_master.cb_scan_and_preview();} + xywh {5 5 100 20} shortcut 0x70 + } + MenuItem menite_scan_save { + label {スキャン保存} + callback {cl_gts_master.cl_scan_and_save.cb_start();} + tooltip {Scan and Save Files} xywh {5 5 100 20} shortcut 0xff0d divider + } + MenuItem {} { + label {ファイル2値化} + callback {cl_gts_master.cl_trace_files.cb_start();} + tooltip {Trace and Save Files} xywh {5 5 100 20} shortcut 0x54 + } + MenuItem {} { + label {リネーム} + callback {cl_gts_master.cl_trace_files.cb_rename();} + xywh {0 0 30 20} + } + MenuItem {} { + label {リナンバー} + callback {cl_gts_master.cl_trace_files.cb_renumber();} + xywh {0 0 30 20} + } + } + Submenu {} { + label {ウインドウ} open + xywh {10 10 100 20} + } { + MenuItem menite_area_and_rot90 { + label {サイズと解像度} + callback {if (menite_area_and_rot90->value()) { + window_main_view->show();/* Need for Minimize */ + window_area_and_rot90->show(); +} else { + window_area_and_rot90->hide(); +}} + xywh {5 5 100 20} type Toggle shortcut 0xffbe + } + MenuItem menite_pixel_type_and_bright { + label {タイプ選択と明るさ} + callback {if (menite_pixel_type_and_bright->value()) { + window_main_view->show();/* Need for Minimize */ + window_pixel_type_and_bright->show(); +} else { + window_pixel_type_and_bright->hide(); +}} + xywh {5 5 100 20} type Toggle shortcut 0xffbf + } + MenuItem menite_number { + label {ナンバー} + callback {if (menite_number->value()) { + window_main_view->show();/* Need for Minimize */ + window_number->show(); +} else { + window_number->hide(); +}} + xywh {5 5 100 20} type Toggle shortcut 0xffc0 divider + } + MenuItem menite_scan_and_save { + label {画像保存場所} + callback {if (menite_scan_and_save->value()) { + window_main_view->show();/* Need for Minimize */ + window_scan_and_save->show(); +} else { + window_scan_and_save->hide(); +}} + xywh {10 10 100 20} type Toggle shortcut 0xffc1 + } + MenuItem menite_trace_files { + label {2値化バッチ} + callback {if (menite_trace_files->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_files->show(); +} else { + window_trace_files->hide(); +}} + xywh {0 0 30 20} type Toggle shortcut 0xffc2 divider + } + MenuItem menite_trace_params { + label {線の調整} + callback {if (menite_trace_params->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_params->show(); +} else { + window_trace_params->hide(); +}} + xywh {0 0 30 20} type Toggle shortcut 0xffc3 + } + MenuItem menite_trace_hsv_view { + label {線のHSV色立体} + callback {if (menite_trace_hsv_view->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_hsv_view->show(); +} else { + window_trace_hsv_view->hide(); +}} + xywh {0 0 30 20} type Toggle shortcut 0xffc4 + } + MenuItem menite_trace_hue_minmax { + label {線の色相範囲} + callback {if (menite_trace_hue_minmax->value()) { + cl_gts_master.cl_trace_params.cb_hue_minmax_init_editor( + cl_gts_master.cl_trace_params.get_hue_minmax_editing_number() + ); + window_main_view->show();/* Need for Minimize */ + window_trace_hue_minmax->show(); +} else { + window_trace_hue_minmax->hide(); +}} + xywh {0 0 30 20} type Toggle + } + MenuItem menite_trace_batch { + label {一括2値化バッチ} + callback {if (menite_trace_batch->value()) { + window_main_view->show();/* Need for Minimize */ + window_trace_batch->show(); +} else { + window_trace_batch->hide(); +}} + xywh {0 0 100 20} type Toggle + } + MenuItem menite_sane_device { + label {Select SANE device} + xywh {0 0 100 20} hide + } + } + Submenu {} { + label {表示} open + xywh {10 10 100 20} + } { + Submenu {} { + label {ズーム} open + xywh {25 25 100 20} + } { + MenuItem {} { + label {画面中心から拡大} + callback {cl_gts_master.reserve_by_menu(E_ACT_ZOOM_IN_TWICE_AT_CEN);} + xywh {30 30 100 20} shortcut 0x7a + } + MenuItem {} { + label {画面中心から縮小} + callback {cl_gts_master.reserve_by_menu(E_ACT_ZOOM_OUT_HALF_AT_CEN);} + xywh {30 30 100 20} shortcut 0x78 + } + MenuItem {} { + label {カーソル位置から拡大} + callback {cl_gts_master.reserve_by_menu(E_ACT_ZOOM_IN_TWICE_AT_POS);} + xywh {0 0 30 20} shortcut 0x1007a + } + MenuItem {} { + label {カーソル位置から縮小} + callback {cl_gts_master.reserve_by_menu(E_ACT_ZOOM_OUT_HALF_AT_POS);} + xywh {0 0 30 20} shortcut 0x10078 + } + MenuItem {} { + label {ピクセル等倍} + callback {cl_gts_master.reserve_by_menu(E_ACT_ZOOM_E01);} + xywh {30 30 100 20} shortcut 0x6e + } + MenuItem {} { + label {全体表示} + callback {cl_gts_master.reserve_by_menu(E_ACT_ALL_VIEW);} + xywh {25 25 100 20} shortcut 0x6d + } + } + Submenu {} { + label {フレーム} open + xywh {0 0 62 20} + } { + MenuItem menite_frame_cyclic { + label {循環} + xywh {0 0 30 20} type Toggle + } + MenuItem {} { + label {逆送り} + callback {if (cl_gts_master.cl_number.selected_prev_frame()) { + cl_gts_master.cb_number_read_and_trace_and_preview(); +}} + xywh {0 0 30 20} shortcut 0xff52 + } + MenuItem {} { + label {順送り} + callback {if (cl_gts_master.cl_number.selected_next_frame()) { + cl_gts_master.cb_number_read_and_trace_and_preview(); +}} + xywh {0 0 30 20} shortcut 0xff54 + } + } + Submenu {} { + label {2値化} open + xywh {20 20 100 20} + } { + MenuItem menite_wview_main { + label {スキャン画像} + callback {if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_main(); +} +else { + menite_wview_main->setonly(); +}} + xywh {0 0 30 20} type Radio shortcut 0xffc6 value 1 + } + MenuItem menite_wview_sub { + label {2値化画像} + callback {if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_sub(); +} +else { + menite_wview_main->setonly(); +}} + xywh {0 0 30 20} type Radio shortcut 0xffc7 + } + MenuItem menite_wview_lr { + label {左右分割} + callback {if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_lr(); +} +else { + menite_wview_main->setonly(); +}} + xywh {0 0 30 20} type Radio shortcut 0xffc8 + } + MenuItem menite_wview_ud { + label {上下分割} + callback {if (cl_gts_master.check_change_wview()) { + cl_gts_master.cb_change_wview_ud(); +} +else { + menite_wview_main->setonly(); +}} + xywh {0 0 30 20} type Radio shortcut 0xffc9 + } + } + } + Submenu {} { + label Channels + xywh {0 0 100 20} hide + } { + MenuItem {} { + label FullColor + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_RGB_TO_RGB);} + xywh {20 20 100 20} divider + } + MenuItem {} { + label Red + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_RED_TO_RED);} + xywh {20 20 100 20} + } + MenuItem {} { + label Green + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_GRE_TO_GRE);} + xywh {20 20 100 20} + } + MenuItem {} { + label Blue + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_BLU_TO_BLU);} + xywh {20 20 100 20} + } + MenuItem {} { + label {Red to grayscale} + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_RED_TO_GRAY);} + xywh {20 20 100 20} + } + MenuItem {} { + label {Green to grayscale} + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_GRE_TO_GRAY);} + xywh {20 20 100 20} + } + MenuItem {} { + label {Blue to grayscale} + callback {cl_gts_master.reserve_by_menu(E_ACT_CHANNEL_BLU_TO_GRAY);} + xywh {20 20 100 20} + } + } + Submenu {} { + label {ヘルプ} open + xywh {0 0 62 20} + } { + MenuItem menite_help_about { + label {このアプリについて...} + callback {std::ostringstream ost; +ost +<< cl_gts_master.cp_release_name() +<< '\\n' << " Version:" << cl_gts_master.cp_release_number() +<< '\\n' << " Date:" << cl_gts_master.cp_release_date() +<< '\\n' +<< '\\n' << cl_gts_master.cp_release_name() +<< " is based in part on the work of the FLTK project (http://www.fltk.org)." +<< '\\n' +<< '\\n' << "GL_Vender:" << glGetString(GL_VENDOR) // already showed Fl_Gl_Window +<< '\\n' << "GL_Renderer:" << glGetString(GL_RENDERER) // already showed Fl_Gl_Window +<< '\\n' << "GL_Version:" << glGetString(GL_VERSION) // already showed Fl_Gl_Window +<< '\\n' << "ScannerType:" << cl_gts_master.cl_iip_scan.get_cp_machine_type() +<< '\\n' << "ScannerMaxWidth(cm):" << cl_gts_gui.valout_scanner_size_cm_w->value() +<< '\\n' << "ScannerMaxHeight(cm):" << cl_gts_gui.valout_scanner_size_cm_h->value() +; +fl_message( ost.str().c_str() );} + xywh {0 0 30 20} + } + } + } + Fl_Box image_view { + label label + xywh {0 25 705 525} resizable + code0 {\#include "fl_gl_image_view.h"} + class fl_gl_image_view + } + Fl_Scrollbar scrbar_view_x { + callback {cl_gts_master.reserve_by_scroll_x( o->value() );} + xywh {0 550 705 15} type Horizontal box BORDER_BOX + } + Fl_Scrollbar scrbar_view_y { + callback {cl_gts_master.reserve_by_scroll_y( o->value() );} + xywh {705 25 15 525} box BORDER_BOX + } + } + Fl_Window window_next_scan { + label {次のスキャン} + xywh {50 50 545 100} type Double modal visible + } { + Fl_Button button_rescan { + label {同番号 (Space)} + callback {cl_gts_master.cl_scan_and_save.cb_rescan();} + xywh {60 75 110 25} shortcut 0x20 + } + Fl_Button {} { + label {次番号 (Enter)} + callback {cl_gts_master.cl_scan_and_save.cb_next();} + xywh {325 40 120 60} shortcut 0xff0d + } + Fl_Button {} { + label {中止 (Esc)} + callback {cl_gts_gui.window_next_scan_non_modal->position( +cl_gts_gui.window_next_scan->x(), +cl_gts_gui.window_next_scan->y() +); +cl_gts_gui.window_next_scan->hide();} + xywh {455 75 90 25} shortcut 0xff1b + } + Fl_Output norout_crnt_scan_level { + xywh {0 0 545 40} box BORDER_BOX textsize 30 + } + Fl_Output norout_crnt_scan_number { + xywh {0 75 60 25} box BORDER_BOX + } + Fl_Output norout_next_scan_number { + xywh {180 40 145 60} box BORDER_BOX align 6 textsize 60 + } + } + Fl_Window window_next_scan_non_modal { + label {次の保存 (画像処理変更可能)} + callback {cl_gts_master.cl_scan_and_save.cb_cancel(); +cl_gts_gui.window_next_scan->position( +cl_gts_gui.window_next_scan_non_modal->x(), +cl_gts_gui.window_next_scan_non_modal->y() +); +cl_gts_gui.window_next_scan_non_modal->hide();} + xywh {60 60 545 100} type Double non_modal visible + } { + Fl_Output norout_next_save_non_modal { + xywh {0 10 545 25} box BORDER_BOX + } + Fl_Button button_next_save_non_modal { + label {保存 (Enter)} + callback {cl_gts_master.cl_scan_and_save.cb_save(true);} + xywh {325 45 110 45} shortcut 0xff0d + } + Fl_Button {} { + label {中止 (Esc)} + callback {cl_gts_master.cl_scan_and_save.cb_cancel(); +cl_gts_gui.window_next_scan->position( +cl_gts_gui.window_next_scan_non_modal->x(), +cl_gts_gui.window_next_scan_non_modal->y() +); +cl_gts_gui.window_next_scan_non_modal->hide();} + xywh {455 65 80 25} shortcut 0xff1b + } + } + Fl_Window window_area_and_rot90 { + label {サイズと解像度} + callback {cl_gts_gui.window_area_and_rot90->hide(); +cl_gts_gui.menite_area_and_rot90->clear();} + xywh {50 50 200 295} type Double non_modal visible + } { + Fl_Button button_area_and_rot90 { + label {この設定を読込み...} + callback {cl_gts_master.cl_config.open_only_area_and_rot90();} + xywh {5 5 130 25} + code0 {\#include "cb_area_and_rot90.h"} + class fltk_button_area_and_rot90 + } + Fl_Group {} { + label {解像度} open + xywh {1 35 198 25} box BORDER_FRAME color 41 align 20 + } { + Fl_Value_Input valinp_area_reso { + label DPI + callback {cl_gts_master.cl_area_and_rot90.cb_area_reso();} + xywh {85 35 40 25} box BORDER_BOX align 8 when 4 minimum 50 maximum 600 value 400 + } + } + Fl_Group {} { + label {回転} open + xywh {1 65 198 25} box BORDER_FRAME color 41 align 20 + } { + Fl_Choice choice_rot90 { + label {度} + callback {cl_gts_master.cl_area_and_rot90.cb_rotate_per_90_when_scan();} open + xywh {57 65 90 25} box BORDER_BOX down_box BORDER_BOX align 8 + } { + MenuItem {} { + label {-90} + xywh {5 65 100 20} + } + MenuItem {} { + label 0 + xywh {5 65 100 20} + } + MenuItem {} { + label 90 + xywh {5 65 100 20} + } + MenuItem {} { + label 180 + xywh {5 65 100 20} + } + } + } + Fl_Button button_scan_crop { + label {サイズ設定} + callback {cl_gts_master.cl_area_and_rot90.cb_scan_full_area_and_crop();} + tooltip {Scan Overall and Crop} xywh {105 95 90 25} + } + Fl_Group {} {open + xywh {0 125 200 165} labeltype ENGRAVED_LABEL align 5 + } { + Fl_Group group_area_crop { + label {範囲} open + xywh {1 140 198 150} box BORDER_FRAME color 41 align 5 + } { + Fl_Group {} { + label {オフセット(左上原点)} open + xywh {4 160 192 25} align 5 + } { + Fl_Value_Input valinp_area_offset_cm_x { + label X + callback {cl_gts_master.cl_area_and_rot90.cb_area_offset_cm_x();} + xywh {25 160 55 25} box BORDER_BOX when 4 maximum 60 + } + Fl_Value_Input valinp_area_offset_cm_y { + label Y + callback {cl_gts_master.cl_area_and_rot90.cb_area_offset_cm_y();} + xywh {100 160 55 25} box BORDER_BOX when 4 maximum 60 + } + Fl_Text_Display {} { + label cm + xywh {163 165 0 0} align 6 + } + } + Fl_Group {} { + label {サイズ} open + xywh {4 210 192 75} box BORDER_FRAME color 41 align 5 + } { + Fl_Group {} {open + xywh {5 220 150 25} align 20 + } { + Fl_Value_Input valinp_area_size_cm_w { + label W + callback {cl_gts_master.cl_area_and_rot90.cb_area_size_cm_w();} + xywh {25 220 55 25} box BORDER_BOX when 4 maximum 60 + } + Fl_Value_Input valinp_area_size_cm_h { + label H + callback {cl_gts_master.cl_area_and_rot90.cb_area_size_cm_h();} + xywh {100 220 55 25} box BORDER_BOX when 4 maximum 60 + } + } + Fl_Group {} {open + xywh {5 250 150 25} align 20 + } { + Fl_Value_Input valinp_area_size_pixel_w { + label W + callback {cl_gts_master.cl_area_and_rot90.cb_area_size_pixel_w();} + xywh {25 250 55 25} box BORDER_BOX when 4 maximum 10000 + } + Fl_Value_Input valinp_area_size_pixel_h { + label H + callback {cl_gts_master.cl_area_and_rot90.cb_area_size_pixel_h();} + xywh {100 250 55 25} box BORDER_BOX when 4 maximum 10000 + } + } + Fl_Group {} {open + xywh {155 220 35 55} align 21 + } { + Fl_Button radbut_area_reso_fix_cm { + label cm + xywh {155 220 35 25} type Radio + } + Fl_Button radbut_area_reso_fix_pixel { + label pixel + xywh {155 250 35 25} type Radio value 1 + } + } + } + Fl_Button {} { + label {比率設定...} + callback {cl_gts_master.cl_area_and_rot90.cb_dialog_set_aspect_ratio( + window_area_and_rot90 ,o +);} + xywh {75 195 100 20} + } + } + Fl_Button {} { + label {最大セット} + callback {cl_gts_master.cl_area_and_rot90.cb_area_set_max();} + xywh {75 125 80 20} + } + } + Fl_Group {} { + label Scanner open + xywh {1 310 198 41} box BORDER_FRAME color 41 align 5 + } { + Fl_Output txtout_scanner_type { + xywh {2 310 196 20} box NO_BOX color 49 textsize 13 + } + Fl_Group {} {open + xywh {2 330 196 20} align 20 + } { + Fl_Value_Output valout_scanner_size_cm_w { + label W + xywh {30 330 55 20} box FLAT_BOX maximum 60 + } + Fl_Value_Output valout_scanner_size_cm_h { + label H + xywh {100 330 55 20} box FLAT_BOX maximum 60 + } + Fl_Text_Display {} { + label cm + xywh {165 332 0 0} align 6 + } + } + } + } + Fl_Window window_pixel_type_and_bright { + label {タイプ選択と明るさ} + callback {cl_gts_gui.window_pixel_type_and_bright->hide(); +cl_gts_gui.menite_pixel_type_and_bright->clear();} + xywh {50 50 200 220} type Double resizable non_modal size_range {200 220 1000 220} visible + } { + Fl_Group {} {open + xywh {0 5 200 25} + } { + Fl_Button button_pixel_type_and_bright { + label {この設定を読込み...} + callback {cl_gts_master.cl_config.open_only_pixel_type_and_bright();} + xywh {5 5 130 25} + code0 {\#include "cb_pixel_type_and_bright.h"} + class fltk_button_pixel_type_and_bright + } + Fl_Box {} { + xywh {135 5 65 25} resizable + } + } + Fl_Group {} {open + xywh {0 35 200 25} + } { + Fl_Box {} { + xywh {0 35 75 25} + } + Fl_Choice choice_pixel_type { + label {画像タイプ} + callback {cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_menu(); +cl_gts_master.cl_scan_and_save.set_gui_ext_list();} open + xywh {75 35 120 25} box BORDER_BOX down_box BORDER_BOX + } { + MenuItem {} { + label {白黒(2階調)} + xywh {20 20 100 20} + } + MenuItem {} { + label {グレー(8ビット)} + xywh {25 25 100 20} + } + MenuItem {} { + label {カラー(24ビット)} + xywh {25 25 100 20} + } + } + Fl_Box {} { + xywh {195 35 5 25} resizable + } + } + Fl_Group group_bw {open + xywh {0 80 200 110} + } { + Fl_Group {} {open + xywh {0 80 200 25} resizable + } { + Fl_Value_Input valinp_bw_threshold { + callback {((Fl_Valuator *)scrbar_bw_threshold)->value(o->value());} + xywh {5 80 35 25} box BORDER_BOX maximum 255 value 180 + } + Fl_Scrollbar scrbar_bw_threshold { + label {白黒しきい値} + callback {valinp_bw_threshold->value(o->value());} + xywh {45 85 150 20} type Horizontal box BORDER_BOX align 5 maximum 255 value 180 resizable + code0 {scrbar_bw_threshold->linesize(1);} + } + } + } + Fl_Group group_grays {open + xywh {0 80 200 110} hide + } { + Fl_Group {} {open + xywh {0 80 200 25} + } { + Fl_Value_Input valinp_grayscale_brightness { + callback {((Fl_Valuator *)scrbar_grayscale_brightness)->value(o->value());} + xywh {5 80 45 25} box BORDER_BOX minimum -1000 maximum 1000 + } + Fl_Scrollbar scrbar_grayscale_brightness { + label {明るさ} + callback {valinp_grayscale_brightness->value(o->value());} + xywh {55 85 140 20} type Horizontal box BORDER_BOX align 5 minimum -1000 maximum 1000 resizable + code0 {scrbar_grayscale_brightness->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 120 200 25} + } { + Fl_Value_Input valinp_grayscale_contrast { + callback {((Fl_Valuator *)scrbar_grayscale_contrast)->value(o->value());} + xywh {5 120 45 25} box BORDER_BOX minimum -1000 maximum 1000 + } + Fl_Scrollbar scrbar_grayscale_contrast { + label {コントラスト} + callback {valinp_grayscale_contrast->value(o->value());} + xywh {55 125 140 20} type Horizontal box BORDER_BOX align 5 minimum -1000 maximum 1000 resizable + code0 {scrbar_grayscale_contrast->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 160 200 25} + } { + Fl_Value_Input valinp_grayscale_gamma { + callback {((Fl_Valuator *)scrbar_grayscale_gamma)->value(o->value());} + xywh {5 160 45 25} box BORDER_BOX minimum 0.5 maximum 5 value 1 + } + Fl_Scrollbar scrbar_grayscale_gamma { + label {ガンマ} + callback {valinp_grayscale_gamma->value(((Fl_Valuator *)o)->value());} + xywh {55 165 140 20} type Horizontal box BORDER_BOX align 5 minimum 0.5 maximum 5 step 0.01 value 1 resizable + code0 {scrbar_grayscale_gamma->linesize(1);} + } + } + } + Fl_Group group_rgb {open + xywh {0 80 200 110} hide + } { + Fl_Group {} {open + xywh {0 80 200 25} + } { + Fl_Value_Input valinp_rgb_brightness { + callback {((Fl_Valuator *)scrbar_rgb_brightness)->value(o->value());} + xywh {5 80 45 25} box BORDER_BOX minimum -1000 maximum 1000 + } + Fl_Scrollbar scrbar_rgb_brightness { + label {明るさ} + callback {valinp_rgb_brightness->value(o->value());} + xywh {55 85 140 20} type Horizontal box BORDER_BOX align 5 minimum -1000 maximum 1000 resizable + code0 {scrbar_rgb_brightness->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 120 200 25} + } { + Fl_Value_Input valinp_rgb_contrast { + callback {((Fl_Valuator *)scrbar_rgb_contrast)->value(o->value());} + xywh {5 120 45 25} box BORDER_BOX minimum -1000 maximum 1000 + } + Fl_Scrollbar scrbar_rgb_contrast { + label {コントラスト} + callback {valinp_rgb_contrast->value(o->value());} + xywh {55 125 140 20} type Horizontal box BORDER_BOX align 5 minimum -1000 maximum 1000 resizable + code0 {scrbar_rgb_contrast->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 160 200 25} + } { + Fl_Value_Input valinp_rgb_gamma { + callback {((Fl_Valuator *)scrbar_rgb_gamma)->value(o->value());} + xywh {5 160 45 25} box BORDER_BOX minimum 0.5 maximum 5 value 1 + } + Fl_Scrollbar scrbar_rgb_gamma { + label {ガンマ} + callback {valinp_rgb_gamma->value(((Fl_Valuator *)o)->value());} + xywh {55 165 140 20} type Horizontal box BORDER_BOX align 5 minimum 0.5 maximum 5 step 0.01 value 1 resizable + code0 {scrbar_rgb_gamma->linesize(1);} + } + } + } + Fl_Group {} {open + xywh {0 190 200 25} + } { + Fl_Box {} { + xywh {0 190 105 25} resizable + } + Fl_Button button_preview_scan { + label {プレビュー} + callback {cl_gts_master.cb_scan_and_preview();} + xywh {105 190 90 25} + } + } + } + Fl_Window window_scan_and_save { + label {画像保存場所} + callback {cl_gts_gui.window_scan_and_save->hide(); +cl_gts_gui.menite_scan_and_save->clear();} + xywh {50 50 200 330} type Double resizable non_modal size_range {200 330 1000 330} visible + } { + Fl_Group {} { + label {処理} open + xywh {1 20 198 65} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 25 198 25} + } { + Fl_Check_Button chkbtn_scan_filter_trace_sw { + label {2値化} + callback {cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}} + xywh {5 25 130 25} down_box DOWN_BOX value 1 + } + Fl_Box {} { + xywh {135 25 64 25} resizable + } + } + Fl_Group {} {open + xywh {1 55 198 25} + } { + Fl_Check_Button chkbtn_scan_filter_erase_dot_noise_sw { + label {ドットノイズ除去} + callback {cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}} + xywh {5 55 130 25} down_box DOWN_BOX + } + Fl_Box {} { + xywh {135 55 64 25} resizable + } + } + } + Fl_Group {} { + label {保存場所} open + xywh {1 105 198 75} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 110 198 35} + } { + Fl_File_Input filinp_scan_save_dir_path { + label {フォルダ名} + callback {cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file();} + xywh {65 110 115 35} when 1 resizable + } + Fl_Button {} { + label {...} + callback {cl_gts_master.cl_scan_and_save.cb_browse_save_folder(); +cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file();} + xywh {180 120 15 24} + } + } + Fl_Group {} {open + xywh {1 150 198 25} + } { + Fl_Box {} { + xywh {1 150 49 25} + } + Fl_Input strinp_scan_save_file_head { + label {ファイル名} + callback {cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file(); +if (cl_gts_master.cl_number.is_scan()) { + output_number_file_head_name->value( o->value() ); +}} + xywh {65 150 35 25} box BORDER_BOX when 1 resizable + } + Fl_Output output_scan_save_number_format { + callback {cl_gts_master.cl_set_number_format.cb_dialog_set_number_format( + window_scan_and_save ,o +);} + xywh {100 150 45 25} box BORDER_BOX + code0 {o->value(".0000");} + } + Fl_Choice choice_scan_save_image_format { + callback {cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file();} open + xywh {145 150 54 25} box BORDER_BOX down_box BORDER_BOX + } {} + } + } + Fl_Group {} { + label {ナンバー} open + xywh {1 200 198 95} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 205 198 25} + } { + Fl_Box {} { + xywh {1 205 94 25} + } + Fl_Value_Input valinp_scan_num_start { + label {開始番号} + xywh {95 205 50 25} box BORDER_BOX minimum 1 maximum 9999 value 1 + } + Fl_Box {} { + xywh {145 205 54 25} resizable + } + } + Fl_Group {} {open + xywh {1 235 198 25} + } { + Fl_Choice choice_scan_num_continue_type { + callback {cl_gts_master.cl_scan_and_save.cb_change_num_continue_type(o->value());} open + xywh {5 235 90 25} box BORDER_BOX down_box BORDER_BOX + } { + MenuItem {} { + label {停止番号} + xywh {10 10 30 20} + } + MenuItem {} { + label {エンドレス} + xywh {10 10 30 20} + } + } + Fl_Choice choice_scan_num_endless_direction {open + xywh {95 235 50 25} box BORDER_BOX down_box BORDER_BOX + } { + MenuItem {} { + label {+1} + xywh {10 10 30 20} + } + MenuItem {} { + label {-1} + xywh {10 10 30 20} + } + } + Fl_Value_Input valinp_scan_num_end { + xywh {95 235 50 25} box BORDER_BOX minimum 1 maximum 9999 value 1 + } + Fl_Box {} { + xywh {145 235 54 25} resizable + } + } + Fl_Group {} {open + xywh {1 265 198 25} + } { + Fl_Box {} { + xywh {1 265 119 25} resizable + } + Fl_Button {} { + label {セット} + callback {cl_gts_master.cl_scan_and_save.cb_set_number(); +cl_gts_master.cl_scan_and_save.cb_check_existing_saved_file();} + xywh {120 265 75 25} + } + } + } + Fl_Group {} {open + xywh {1 300 198 25} + } { + Fl_Check_Button chkbtn_scan_adjustable_per_frame_sw { + label {保存前確認} + xywh {5 300 95 25} down_box DOWN_BOX + } + Fl_Box {} { + xywh {100 300 5 25} resizable + } + Fl_Button button_scan_save { + label {スキャン保存} + callback {cl_gts_master.cl_scan_and_save.cb_start();} + tooltip {Scan and Save Files} xywh {105 300 90 25} + } + } + } + Fl_Window window_trace_files { + label {2値化バッチ} + callback {cl_gts_gui.window_trace_files->hide(); +cl_gts_gui.menite_trace_files->clear();} + xywh {50 50 200 385} type Double resizable non_modal size_range {200 385 1000 385} visible + } { + Fl_Group {} { + label {開く} open + xywh {1 20 198 125} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 25 198 70} + } { + Fl_Group {} {open + xywh {1 25 183 65} resizable + } { + Fl_Group {} {open + xywh {1 25 183 35} + } { + Fl_Box {} { + xywh {1 25 49 35} + } + Fl_File_Input filinp_trace_open_dir_path { + label {フォルダ名} + xywh {65 25 119 35} box BORDER_BOX when 1 resizable + } + } + Fl_Group {} {open + xywh {1 65 183 25} + } { + Fl_Box {} { + xywh {1 65 49 25} + } + Fl_Input strinp_trace_open_file_head { + label {ファイル名} + xywh {65 65 20 25} box BORDER_BOX when 1 resizable + } + Fl_Input strinp_trace_open_number_format { + xywh {85 65 45 25} box BORDER_BOX + } + Fl_Choice choice_trace_open_image_format {open + xywh {130 65 54 25} box BORDER_BOX down_box BORDER_BOX + } {} + } + } + Fl_Button {} { + label {...} + callback {cl_gts_master.cl_trace_files.cb_browse_open_file();} + xywh {184 35 14 55} + } + } + Fl_Group {} {open + xywh {1 95 198 45} + } { + Fl_Box {} { + xywh {1 95 109 45} resizable + } + Fl_Button {} { + label {リネーム...} + callback {cl_gts_master.cl_trace_files.cb_rename();} + tooltip Rename xywh {110 95 85 20} + } + Fl_Button {} { + label {リナンバー...} + callback {cl_gts_master.cl_trace_files.cb_renumber();} + tooltip Renumber xywh {110 120 85 20} + } + } + } + Fl_Group {} { + label {処理} open + xywh {1 165 198 35} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 175 198 25} hide + } { + Fl_Check_Button chkbtn_trace_filter_trace_sw { + label Trace + callback {cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}} + xywh {5 175 130 25} box SHADOW_BOX down_box DOWN_BOX value 1 + } + Fl_Box {} { + xywh {135 175 64 25} resizable + } + } + Fl_Group {} {open + xywh {1 170 198 25} + } { + Fl_Check_Button chkbtn_trace_filter_erase_dot_noise_sw { + label {ドットノイズ除去} + callback {cl_gts_master.cb_rot_trace_enoise_preview(); +if (o->value()) { + o->box(FL_SHADOW_BOX); + o->redraw(); +} +else { + o->box(FL_FLAT_BOX); + o->redraw(); +}} + xywh {5 170 130 25} down_box DOWN_BOX + } + Fl_Box {} { + xywh {135 170 64 25} resizable + } + } + } + Fl_Group {} { + label {保存場所} open + xywh {1 220 198 75} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 225 198 35} + } { + Fl_Box {} { + xywh {1 225 49 35} + } + Fl_File_Input filinp_trace_save_dir_path { + label {フォルダ名} + callback {cl_gts_master.cl_trace_files.cb_check_existing_saved_file();} + xywh {65 225 119 35} box BORDER_BOX when 1 resizable + } + Fl_Button {} { + label {...} + callback {cl_gts_master.cl_trace_files.cb_browse_save_folder(); +cl_gts_master.cl_trace_files.cb_check_existing_saved_file();} + xywh {184 235 15 25} + } + } + Fl_Group {} {open + xywh {1 265 198 25} + } { + Fl_Box {} { + xywh {1 265 49 25} + } + Fl_Input strinp_trace_save_file_head { + label {ファイル名} + callback {cl_gts_master.cl_trace_files.cb_check_existing_saved_file(); +if (cl_gts_master.cl_number.is_trace()) { + output_number_file_head_name->value( o->value() ); +}} + xywh {65 265 35 25} box BORDER_BOX when 1 resizable + } + Fl_Output output_trace_save_number_format { + callback {cl_gts_master.cl_set_number_format.cb_dialog_set_number_format( + window_trace_files ,o +);} + xywh {100 265 45 25} box BORDER_BOX + code0 {o->value(".0000");} + } + Fl_Choice choice_trace_save_image_format { + callback {cl_gts_master.cl_trace_files.cb_check_existing_saved_file();} open + xywh {145 265 54 25} box BORDER_BOX down_box BORDER_BOX + } {} + } + } + Fl_Group {} { + label {ナンバー} open + xywh {1 315 198 35} box BORDER_BOX align 5 + } { + Fl_Group {} {open + xywh {1 320 198 25} + } { + Fl_Value_Output valout_trace_num_start { + label {始} + xywh {21 320 40 25} box BORDER_BOX + } + Fl_Value_Output valout_trace_num_end { + label {終} + xywh {79 320 40 25} box BORDER_BOX + } + Fl_Box {} { + xywh {119 320 1 25} resizable + } + Fl_Button {} { + label {セット} + callback {cl_gts_master.cl_trace_files.cb_set_number(); +cl_gts_master.cl_trace_files.cb_check_existing_saved_file();} + xywh {120 320 75 25} + } + } + } + Fl_Group {} {open + xywh {1 355 198 25} + } { + Fl_Box {} { + xywh {1 355 104 25} resizable + } + Fl_Button {} { + label {ファイル2値化} + callback {cl_gts_master.cl_trace_files.cb_start();} + tooltip {Trace and Save Files} xywh {105 355 90 25} + } + } + } + Fl_Window window_number { + label {ナンバー} + callback {cl_gts_gui.window_number->hide(); +cl_gts_gui.menite_number->clear();} + xywh {50 50 116 350} type Double resizable non_modal size_range {116 0 200 4000} visible + } { + Fl_Menu_Bar {} {open + xywh {0 0 116 25} + } { + Submenu {} { + label {編集} open + xywh {0 0 116 20} + } { + MenuItem {} { + label {全選択} + callback {cl_gts_master.cl_number.select_all();} + xywh {0 0 116 20} shortcut 0x40061 + } + MenuItem {} { + label {削除} + callback {cl_gts_master.cl_number.cb_remove_selected();} + xywh {0 0 116 20} shortcut 0x40078 + } + } + } + Fl_Input norinp_number_input { + callback {cl_gts_master.cl_number.cb_set_list_from_string();} + xywh {0 25 116 25} box BORDER_BOX align 5 when 8 + } + Fl_Group {} {open + xywh {0 50 116 25} + } { + Fl_Box {} { + xywh {0 50 50 25} + } + Fl_Output output_number_action_type { + label {作業名} + xywh {50 50 66 25} box BORDER_BOX resizable + } + } + Fl_Group {} {open + xywh {0 75 116 25} + } { + Fl_Box {} { + xywh {0 75 50 25} + } + Fl_Output output_number_file_head_name { + label {保存名} + xywh {50 75 66 25} box BORDER_BOX resizable + } + } + Fl_Browser selbro_number_list { + callback {cl_gts_master.cb_number_read_and_trace_and_preview();} + xywh {0 100 116 250} type Multi box BORDER_BOX resizable + } + } + Fl_Window window_trace_batch { + label {一括2値化バッチ} + callback {cl_gts_gui.window_trace_batch->hide(); /* Window閉じる */ +cl_gts_gui.menite_trace_batch->clear(); /* menuのcheck外す */} + xywh {50 50 300 185} type Double resizable non_modal size_range {240 30 0 0} visible + } { + Fl_Group {} {open + xywh {0 4 300 30} + } { + Fl_Button {} { + label {追加...} + callback {cl_gts_master.cl_trace_batch.cb_add_or_select();} + xywh {5 5 45 25} + } + Fl_Button {} { + label {上へ} + callback {cl_gts_master.cl_trace_batch.cb_upper();} + xywh {55 5 45 25} + } + Fl_Button {} { + label {下へ} + callback {cl_gts_master.cl_trace_batch.cb_lower();} + xywh {105 5 45 25} + } + Fl_Button {} { + label {削除} + callback {cl_gts_master.cl_trace_batch.cb_delete();} + xywh {160 5 45 25} + } + Fl_Box {} { + xywh {205 5 50 25} resizable + } + Fl_Button {} { + label {実行} + callback {cl_gts_master.cl_trace_batch.cb_run();} + xywh {255 5 40 25} + } + } + Fl_Group {} {open + xywh {0 35 300 150} resizable + } { + Fl_Browser selbro_trace_batch_config_list { + xywh {0 35 300 150} type Multi box BORDER_BOX resizable + } + } + } + Fl_Window window_trace_params { + label {線の調整} + callback {cl_gts_gui.window_trace_params->hide(); +cl_gts_gui.menite_trace_params->clear();} + xywh {50 50 465 250} type Double non_modal visible + } { + Fl_Group group_trace_params {open + xywh {0 0 465 250} + } { + Fl_Button button_trace_params { + label {この設定を読込み...} + callback {cl_gts_master.cl_config.open_only_trace_params();} + xywh {5 5 130 25} + code0 {\#include "cb_trace_params.h"} + class fltk_button_trace_params + } + Fl_Button {} { + callback {if (o->value()) { +window_trace_params->size( + togbut_trace_open_right_middle_sw->x()+togbut_trace_open_right_middle_sw->w()+5 + ,window_trace_params->h()); +togbut_trace_open_right_middle_sw->value(0); +} else { +window_trace_params->size( o->x() + o->w() + 5 ,window_trace_params->h()); +}} + image {icon_open_close_right.png} xywh {175 5 20 20} type Toggle value 1 + } + Fl_Button togbut_trace_open_under_sw { + callback {if (o->value()) { +window_trace_params->size(window_trace_params->w(),group_trace_params->h()); +} else { +window_trace_params->size(window_trace_params->w(),cl_gts_master.cl_trace_params.cb_get_window_height_active()); +}} + image {icon_open_close_under.png} xywh {205 5 20 20} type Toggle value 1 + } + Fl_Button togbut_trace_open_right_middle_sw { + callback {if (o->value()) { +window_trace_params->size(group_trace_params->w(),window_trace_params->h()); +} else { +window_trace_params->size( o->x() + o->w() + 5 ,window_trace_params->h()); +}} + image {icon_open_close_right_11x11.png} xywh {367 5 15 15} type Toggle value 1 + } + Fl_Check_Button chebut_trace_display_target_sw { + label Target + callback {image_view->redraw();} + xywh {325 5 17 25} down_box DOWN_BOX align 4 hide + } + Fl_Check_Button chebut_trace_display_main_sw { + label {範囲内外区分け→} + callback {image_view->redraw();} + xywh {365 20 17 20} down_box DOWN_BOX labelsize 12 align 7 + } + Fl_Group {} {open + xywh {0 34 450 31} + } { + Fl_Text_Display {} { + label {色} + xywh {22 45 0 0} align 6 + } + Fl_Text_Display {} { + label {|----------- 太さ -----------|} + xywh {50 45 0 0} align 6 + } + Fl_Text_Display {} { + label {上下換} + xywh {213 58 0 0} align 6 + } + Fl_Text_Display {} { + label {↓} + xywh {229 63 0 0} align 6 hide + } + Fl_Text_Display {} { + label {|---- 色相 ----|} + xywh {265 35 0 0} align 6 + } + Fl_Text_Display {} { + label {ed.} + xywh {250 48 0 0} align 6 hide + } + Fl_Text_Display {} { + label {最小} + xywh {265 50 0 0} labelsize 12 align 6 + } + Fl_Text_Display {} { + label {最大} + xywh {300 50 0 0} labelsize 12 align 6 + } + Fl_Text_Display {} { + label {編} + xywh {335 50 0 0} labelsize 12 align 6 + } + Fl_Text_Display {} { + label {示} + xywh {365 45 0 0} align 6 + } + Fl_Text_Display {} { + label {傾斜} + xywh {390 45 0 0} align 6 + } + Fl_Text_Display {} { + label {↓} + xywh {393 48 0 0} align 6 hide + } + Fl_Text_Display {} { + label {切片} + xywh {425 45 0 0} align 6 + } + } + Fl_Group {} {open + xywh {0 65 465 25} + } { + Fl_Check_Button chebut_trace_0_enable_sw { + callback {if (o->value()) {group_trace_0->activate(); } +else {group_trace_0->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide();} + xywh {2 65 17 25} down_box DOWN_BOX value 1 align 4 + } + Fl_Group group_trace_0 {open + xywh {0 65 465 25} + } { + Fl_Button button_trace_0_target_rgb { + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,0 +);} + xywh {23 65 25 25} color 16 + } + Fl_Value_Input valinp_trace_0_thickness { + callback {((Fl_Valuator *)scrbar_trace_0_thickness)->value(o->value()); +image_view->redraw();} + xywh {50 65 30 25} box BORDER_BOX maximum 100 value 70 + } + Fl_Scrollbar scrbar_trace_0_thickness { + callback {valinp_trace_0_thickness->value(o->value()); +image_view->redraw();} + xywh {82 67 115 20} type Horizontal box BORDER_BOX maximum 100 value 70 + code0 {scrbar_trace_0_thickness->linesize(1);} + } + Fl_Button button_trace_0_hue_min { + label {...} + callback {//cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,0 );} + xywh {250 65 15 25} hide + } + Fl_Value_Input valinp_trace_0_hue_min { + callback {image_view->redraw();} + xywh {265 65 35 25} box BORDER_BOX maximum 360 value -1 hide + } + Fl_Value_Input valinp_trace_0_hue_max { + callback {image_view->redraw();} + xywh {300 65 35 25} box BORDER_BOX maximum 360 value -1 hide + } + Fl_Button button_trace_0_hue_minmax { + label {...} + callback {cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/0 );} + xywh {335 65 15 25} hide + } + Fl_Check_Button chebut_trace_0_rotate360_sw { + callback {hsv_view->redraw();} + xywh {350 65 15 25} down_box DOWN_BOX hide + } + Fl_Check_Button chebut_trace_0_display_sw { + callback {hsv_view->redraw();} + xywh {365 65 17 25} down_box DOWN_BOX + } + Fl_Value_Input valinp_trace_0_slope_deg { + callback {image_view->redraw();} + xywh {390 65 30 25} box BORDER_BOX maximum 90 value 45 + } + Fl_Value_Input valinp_trace_0_intercept { + callback {image_view->redraw();} + xywh {425 65 35 25} box BORDER_BOX maximum 100 value 100 + } + } + } + Fl_Group {} {open + xywh {0 95 465 25} + } { + Fl_Check_Button chebut_trace_1_enable_sw { + callback {if (o->value()) {group_trace_1->activate(); } +else {group_trace_1->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide();} + xywh {2 95 17 25} down_box DOWN_BOX value 1 align 4 + } + Fl_Group group_trace_1 {open + xywh {0 95 465 25} + } { + Fl_Button button_trace_1_target_rgb { + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,1 +);} + xywh {23 95 25 25} color 17 + } + Fl_Value_Input valinp_trace_1_thickness { + callback {((Fl_Valuator *)scrbar_trace_1_thickness)->value(o->value()); +image_view->redraw();} + xywh {50 95 30 25} box BORDER_BOX maximum 100 value 70 + } + Fl_Scrollbar scrbar_trace_1_thickness { + callback {valinp_trace_1_thickness->value(o->value()); +image_view->redraw();} + xywh {82 97 115 20} type Horizontal box BORDER_BOX maximum 100 value 70 + code0 {scrbar_trace_1_thickness->linesize(1);} + } + Fl_Button button_trace_1_hue_min { + label {...} + callback {//cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,1 );} + xywh {250 95 15 25} hide + } + Fl_Value_Input valinp_trace_1_hue_min { + callback {image_view->redraw();} + xywh {265 95 35 25} box BORDER_BOX maximum 360 value 300 + } + Fl_Value_Input valinp_trace_1_hue_max { + callback {image_view->redraw();} + xywh {300 95 35 25} box BORDER_BOX maximum 360 value 60 + } + Fl_Button button_trace_1_hue_minmax { + label {...} + callback {cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/1 );} + xywh {335 95 15 25} + } + Fl_Check_Button chebut_trace_1_rotate360_sw { + callback {hsv_view->redraw();} + xywh {350 95 15 25} down_box DOWN_BOX hide + } + Fl_Check_Button chebut_trace_1_display_sw { + callback {hsv_view->redraw();} + xywh {365 95 17 25} down_box DOWN_BOX + } + Fl_Value_Input valinp_trace_1_slope_deg { + callback {image_view->redraw();} + xywh {390 95 30 25} box BORDER_BOX maximum 90 value 45 + } + Fl_Value_Input valinp_trace_1_intercept { + callback {image_view->redraw();} + xywh {425 95 35 25} box BORDER_BOX maximum 100 value 100 + } + } + } + Fl_Group {} {open + xywh {0 125 465 25} + } { + Fl_Check_Button chebut_trace_2_enable_sw { + callback {if (o->value()) {group_trace_2->activate(); } +else {group_trace_2->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide();} + xywh {2 125 17 25} down_box DOWN_BOX value 1 align 4 + } + Fl_Group group_trace_2 {open + xywh {0 125 465 25} + } { + Fl_Button button_trace_2_target_rgb { + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,2 +);} + xywh {23 125 25 25} color 18 + } + Fl_Value_Input valinp_trace_2_thickness { + callback {((Fl_Valuator *)scrbar_trace_2_thickness)->value(o->value()); +image_view->redraw();} + xywh {50 125 30 25} box BORDER_BOX maximum 100 value 70 + } + Fl_Scrollbar scrbar_trace_2_thickness { + callback {valinp_trace_2_thickness->value(o->value()); +image_view->redraw();} + xywh {82 127 115 20} type Horizontal box BORDER_BOX maximum 100 value 70 + code0 {scrbar_trace_2_thickness->linesize(1);} + } + Fl_Button button_trace_2_hue_min { + label {...} + callback {//cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,2 );} + xywh {250 125 15 25} hide + } + Fl_Value_Input valinp_trace_2_hue_min { + callback {image_view->redraw();} + xywh {265 125 35 25} box BORDER_BOX maximum 360 value 180 + } + Fl_Value_Input valinp_trace_2_hue_max { + callback {image_view->redraw();} + xywh {300 125 35 25} box BORDER_BOX maximum 360 value 300 + } + Fl_Button button_trace_2_hue_minmax { + label {...} + callback {cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/2 );} + xywh {335 125 15 25} + } + Fl_Check_Button chebut_trace_2_rotate360_sw { + callback {hsv_view->redraw();} + xywh {350 125 15 25} down_box DOWN_BOX hide + } + Fl_Check_Button chebut_trace_2_display_sw { + callback {hsv_view->redraw();} + xywh {365 125 17 25} down_box DOWN_BOX + } + Fl_Value_Input valinp_trace_2_slope_deg { + callback {image_view->redraw();} + xywh {390 125 30 25} box BORDER_BOX maximum 90 value 45 + } + Fl_Value_Input valinp_trace_2_intercept { + callback {image_view->redraw();} + xywh {425 125 35 25} box BORDER_BOX maximum 100 value 100 + } + } + } + Fl_Group {} {open + xywh {0 155 465 25} + } { + Fl_Check_Button chebut_trace_3_enable_sw { + callback {if (o->value()) {group_trace_3->activate(); } +else {group_trace_3->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide();} + xywh {2 155 17 25} down_box DOWN_BOX value 1 align 4 + } + Fl_Group group_trace_3 {open + xywh {0 155 465 25} + } { + Fl_Button button_trace_3_target_rgb { + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,3 +);} + xywh {23 155 25 25} color 19 + } + Fl_Value_Input valinp_trace_3_thickness { + callback {((Fl_Valuator *)scrbar_trace_3_thickness)->value(o->value()); +image_view->redraw();} + xywh {50 155 30 25} box BORDER_BOX maximum 100 value 70 + } + Fl_Scrollbar scrbar_trace_3_thickness { + callback {valinp_trace_3_thickness->value(o->value()); +image_view->redraw();} + xywh {82 157 115 20} type Horizontal box BORDER_BOX maximum 100 value 70 + code0 {scrbar_trace_3_thickness->linesize(1);} + } + Fl_Button button_trace_3_hue_min { + label {...} + callback {//cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,3 );} + xywh {250 155 15 25} hide + } + Fl_Value_Input valinp_trace_3_hue_min { + callback {image_view->redraw();} + xywh {265 155 35 25} box BORDER_BOX maximum 360 value 60 + } + Fl_Value_Input valinp_trace_3_hue_max { + callback {image_view->redraw();} + xywh {300 155 35 25} box BORDER_BOX maximum 360 value 180 + } + Fl_Button button_trace_3_hue_minmax { + label {...} + callback {cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/3 );} + xywh {335 155 15 25} + } + Fl_Check_Button chebut_trace_3_rotate360_sw { + callback {hsv_view->redraw();} + xywh {350 155 15 25} down_box DOWN_BOX hide + } + Fl_Check_Button chebut_trace_3_display_sw { + callback {hsv_view->redraw();} + xywh {365 155 17 25} down_box DOWN_BOX + } + Fl_Value_Input valinp_trace_3_slope_deg { + callback {image_view->redraw();} + xywh {390 155 30 25} box BORDER_BOX maximum 90 value 45 + } + Fl_Value_Input valinp_trace_3_intercept { + callback {image_view->redraw();} + xywh {425 155 35 25} box BORDER_BOX maximum 100 value 100 + } + } + } + Fl_Group {} {open + xywh {0 185 465 25} + } { + Fl_Check_Button chebut_trace_4_enable_sw { + callback {if (o->value()) {group_trace_4->activate(); } +else {group_trace_4->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide();} + xywh {2 185 17 25} down_box DOWN_BOX align 4 + } + Fl_Group group_trace_4 {open + xywh {0 185 465 25} deactivate + } { + Fl_Button button_trace_4_target_rgb { + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,4 +);} + xywh {23 185 25 25} color 20 + } + Fl_Value_Input valinp_trace_4_thickness { + callback {((Fl_Valuator *)scrbar_trace_4_thickness)->value(o->value()); +image_view->redraw();} + xywh {50 185 30 25} box BORDER_BOX maximum 100 value 70 + } + Fl_Scrollbar scrbar_trace_4_thickness { + callback {valinp_trace_4_thickness->value(o->value()); +image_view->redraw();} + xywh {82 187 115 20} type Horizontal box BORDER_BOX maximum 100 value 70 + code0 {scrbar_trace_4_thickness->linesize(1);} + } + Fl_Button button_trace_4_hue_min { + label {...} + callback {//cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,4 );} + xywh {250 185 15 25} hide + } + Fl_Value_Input valinp_trace_4_hue_min { + callback {image_view->redraw();} + xywh {265 185 35 25} box BORDER_BOX maximum 360 value 180 + } + Fl_Value_Input valinp_trace_4_hue_max { + callback {image_view->redraw();} + xywh {300 185 35 25} box BORDER_BOX maximum 360 value 180 + } + Fl_Button button_trace_4_hue_minmax { + label {...} + callback {cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/4 );} + xywh {335 185 15 25} + } + Fl_Check_Button chebut_trace_4_rotate360_sw { + callback {hsv_view->redraw();} + xywh {350 185 17 25} down_box DOWN_BOX hide + } + Fl_Check_Button chebut_trace_4_display_sw { + callback {hsv_view->redraw();} + xywh {365 185 17 25} down_box DOWN_BOX + } + Fl_Value_Input valinp_trace_4_slope_deg { + callback {image_view->redraw();} + xywh {390 185 30 25} box BORDER_BOX maximum 90 value 45 + } + Fl_Value_Input valinp_trace_4_intercept { + callback {image_view->redraw();} + xywh {425 185 35 25} box BORDER_BOX maximum 100 value 100 + } + } + } + Fl_Group {} {open + xywh {0 215 465 25} + } { + Fl_Check_Button chebut_trace_5_enable_sw { + callback {if (o->value()) {group_trace_5->activate(); } +else {group_trace_5->deactivate();} +image_view->redraw(); +window_trace_hue_minmax->hide();} + xywh {2 215 17 25} down_box DOWN_BOX align 4 + } + Fl_Group group_trace_5 {open + xywh {0 215 465 25} deactivate + } { + Fl_Button button_trace_5_target_rgb { + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_open_editor( + window_trace_params ,o ,5 +);} + xywh {23 215 25 25} color 21 + } + Fl_Value_Input valinp_trace_5_thickness { + callback {((Fl_Valuator *)scrbar_trace_5_thickness)->value(o->value()); +image_view->redraw();} + xywh {50 215 30 25} box BORDER_BOX maximum 100 value 70 + } + Fl_Scrollbar scrbar_trace_5_thickness { + callback {valinp_trace_5_thickness->value(o->value()); +image_view->redraw();} + xywh {82 217 115 20} type Horizontal box BORDER_BOX maximum 100 value 70 + code0 {scrbar_trace_5_thickness->linesize(1);} + } + Fl_Button button_trace_5_hue_min { + label {...} + callback {//cl_gts_master.cl_trace_params.cb_hue_min_open_editor( window_trace_params ,o ,5 );} + xywh {250 215 15 25} hide + } + Fl_Value_Input valinp_trace_5_hue_min { + callback {image_view->redraw();} + xywh {265 215 35 25} box BORDER_BOX maximum 360 value 300 + } + Fl_Value_Input valinp_trace_5_hue_max { + callback {image_view->redraw();} + xywh {300 215 35 25} box BORDER_BOX maximum 360 value 300 + } + Fl_Button button_trace_5_hue_minmax { + label {...} + callback {cl_gts_master.cl_trace_params.cb_hue_minmax_open_editor( +/* window_trace_params ,o ,*/5 );} + xywh {335 215 15 25} + } + Fl_Check_Button chebut_trace_5_rotate360_sw { + callback {hsv_view->redraw();} + xywh {350 215 17 25} down_box DOWN_BOX hide + } + Fl_Check_Button chebut_trace_5_display_sw { + callback {hsv_view->redraw();} + xywh {365 215 17 25} down_box DOWN_BOX + } + Fl_Value_Input valinp_trace_5_slope_deg { + callback {image_view->redraw();} + xywh {390 215 30 25} box BORDER_BOX maximum 90 value 45 + } + Fl_Value_Input valinp_trace_5_intercept { + callback {image_view->redraw();} + xywh {425 215 35 25} box BORDER_BOX maximum 100 value 100 + } + } + } + Fl_Group {} {open + xywh {225 80 15 145} + } { + Fl_Button button_change_0_1 { + callback {cl_gts_master.cl_trace_params.cb_swap_widget_set(0,1); +image_view->redraw(); +window_trace_hue_minmax->hide();} + image {icon_change_updown.png} xywh {225 80 15 25} + } + Fl_Button button_change_1_2 { + callback {cl_gts_master.cl_trace_params.cb_swap_widget_set(1,2); +image_view->redraw(); +window_trace_hue_minmax->hide();} + image {icon_change_updown.png} xywh {225 110 15 25} + } + Fl_Button button_change_2_3 { + callback {cl_gts_master.cl_trace_params.cb_swap_widget_set(2,3); +image_view->redraw(); +window_trace_hue_minmax->hide();} + image {icon_change_updown.png} xywh {225 140 15 25} + } + Fl_Button button_change_3_4 { + callback {cl_gts_master.cl_trace_params.cb_swap_widget_set(3,4); +image_view->redraw(); +window_trace_hue_minmax->hide();} + image {icon_change_updown.png} xywh {225 170 15 25} + } + Fl_Button button_change_4_5 { + callback {cl_gts_master.cl_trace_params.cb_swap_widget_set(4,5); +image_view->redraw(); +window_trace_hue_minmax->hide();} + image {icon_change_updown.png} xywh {225 200 15 25} + } + } + } + } + Fl_Window window_trace_hsv_view { + label {線のHSV色立体} + callback {cl_gts_gui.window_trace_hsv_view->hide(); +cl_gts_gui.menite_trace_hsv_view->clear();} + xywh {50 50 500 500} type Double resizable non_modal visible + } { + Fl_Menu_Bar {} {open + xywh {0 0 500 25} hide + } { + Submenu {} { + label View open + xywh {0 0 62 20} + } { + Submenu {} { + label {Color of Display} open + xywh {0 0 62 20} hide + } { + MenuItem menite_hsv_dot_normal { + label Color + callback {image_view->redraw();} + xywh {0 0 30 20} type Radio value 1 + } + MenuItem menite_hsv_dot_trace_area { + label {Trace Area} + callback {image_view->redraw();} + xywh {0 0 30 20} type Radio + } + MenuItem menite_hsv_dot_white { + label White + callback {image_view->redraw();} + xywh {0 0 30 20} type Radio + } + MenuItem menite_hsv_dot_black { + label Black + callback {image_view->redraw();} + xywh {0 0 30 20} type Radio + } + } + MenuItem menite_hsv_random_position { + label {Random Position} + callback {image_view->redraw();} + xywh {0 0 30 20} type Toggle + } + } + } + Fl_Box hsv_view { + xywh {0 0 500 500} resizable + code0 {\#include "fl_gl_hsv_view.h"} + class fl_gl_hsv_view + } + } + Fl_Window window_set_number_format { + label {連番書式} + callback {o->hide();} + xywh {50 50 200 150} type Double modal visible + } { + Fl_Choice choice_input_num_form_separator { + label {区切} + callback {cl_gts_master.cl_set_number_format.cb_separator();} open + xywh {80 10 105 25} box BORDER_BOX down_box BORDER_BOX + } {} + Fl_Counter counte_input_num_form_num_of_digits { + label {桁数} + callback {cl_gts_master.cl_set_number_format.cb_digits();} + xywh {120 40 65 25} type Simple box BORDER_BOX align 4 minimum 2 maximum 4 step 1 + } + Fl_Output output_input_num_form_sample { + xywh {60 80 80 25} box BORDER_BOX + } + Fl_Button {} { + label {セット} + callback {cl_gts_master.cl_set_number_format.cb_ok();} + xywh {20 115 60 25} + } + Fl_Button {} { + label {キャンセル} + callback {window_set_number_format->hide();} + xywh {120 115 60 25} + } + } + Fl_Window window_set_aspect_ratio { + label {縦横比} + callback {o->hide();} + xywh {50 50 160 90} type Double modal visible + } { + Fl_Group {} {open + xywh {0 15 150 25} + } { + Fl_Button radbut_area_aspect_ratio_w { + label W + xywh {10 15 15 25} type Radio value 1 + } + Fl_Value_Input valinp_area_aspect_ratio_w { + xywh {25 15 55 25} box BORDER_BOX value 16 + } + Fl_Button radbut_area_aspect_ratio_h { + label H + xywh {80 15 15 25} type Radio + } + Fl_Value_Input valinp_area_aspect_ratio_h { + xywh {95 15 55 25} box BORDER_BOX value 9 + } + } + Fl_Button {} { + label {セット} + callback {cl_gts_master.cl_area_and_rot90.cb_ok_aspect_ratio();} + xywh {15 55 60 25} + } + Fl_Button {} { + label {キャンセル} + callback {window_set_aspect_ratio->hide();} + xywh {85 55 60 25} + } + } + Fl_Window window_set_color { + label {色} + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_cancel(); +o->hide();} + xywh {50 50 200 205} type Double resizable modal size_range {200 205 1000 205} visible + } { + Fl_Group {} {open + xywh {0 5 200 141} + } { + Fl_Group {} {open + xywh {0 5 200 20} + } { + Fl_Value_Input valinp_set_color_hue { + label H + callback {((Fl_Valuator *)scrbar_set_color_hue)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true);} + xywh {20 5 35 18} box BORDER_BOX maximum 360 + } + Fl_Scrollbar scrbar_set_color_hue { + callback {valinp_set_color_hue->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true);} + xywh {60 5 135 18} type Horizontal box BORDER_BOX maximum 360 resizable + code0 {scrbar_set_color_hue->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 28 200 20} + } { + Fl_Value_Input valinp_set_color_sat { + label S + callback {((Fl_Valuator *)scrbar_set_color_sat)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true);} + xywh {20 28 35 18} box BORDER_BOX maximum 100 + } + Fl_Scrollbar scrbar_set_color_sat { + callback {valinp_set_color_sat->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true);} + xywh {60 28 135 18} type Horizontal box BORDER_BOX maximum 100 resizable + code0 {scrbar_set_color_sat->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 51 200 20} + } { + Fl_Value_Input valinp_set_color_val { + label V + callback {((Fl_Valuator *)scrbar_set_color_val)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true);} + xywh {20 51 35 18} box BORDER_BOX maximum 100 + } + Fl_Scrollbar scrbar_set_color_val { + callback {valinp_set_color_val->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change(true);} + xywh {60 51 135 18} type Horizontal box BORDER_BOX maximum 100 resizable + code0 {scrbar_set_color_val->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 80 200 20} + } { + Fl_Value_Input valinp_set_color_red { + label R + callback {((Fl_Valuator *)scrbar_set_color_red)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change();} + xywh {20 80 35 18} box BORDER_BOX maximum 255 + } + Fl_Scrollbar scrbar_set_color_red { + callback {valinp_set_color_red->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change();} + xywh {60 80 135 18} type Horizontal box BORDER_BOX maximum 255 resizable + code0 {scrbar_set_color_red->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 103 200 20} + } { + Fl_Value_Input valinp_set_color_gre { + label G + callback {((Fl_Valuator *)scrbar_set_color_gre)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change();} + xywh {20 103 35 18} box BORDER_BOX maximum 255 + } + Fl_Scrollbar scrbar_set_color_gre { + callback {valinp_set_color_gre->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change();} + xywh {60 103 135 18} type Horizontal box BORDER_BOX maximum 255 resizable + code0 {scrbar_set_color_gre->linesize(1);} + } + } + Fl_Group {} {open + xywh {0 126 200 20} + } { + Fl_Value_Input valinp_set_color_blu { + label B + callback {((Fl_Valuator *)scrbar_set_color_blu)->value(o->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change();} + xywh {20 126 35 18} box BORDER_BOX maximum 255 + } + Fl_Scrollbar scrbar_set_color_blu { + callback {valinp_set_color_blu->value(((Fl_Valuator *)o)->value()); +cl_gts_master.cl_trace_params.cb_target_rgb_color_change();} + xywh {60 126 135 18} type Horizontal box BORDER_BOX maximum 255 resizable + code0 {scrbar_set_color_blu->linesize(1);} + } + } + } + Fl_Group {} {open + xywh {0 150 200 50} + } { + Fl_Box {} { + xywh {0 150 65 50} resizable + } + Fl_Group {} {open + xywh {65 150 130 50} + } { + Fl_Box box_set_color_ok { + xywh {65 150 65 20} box FLAT_BOX + } + Fl_Box box_set_color_cancel { + xywh {130 150 65 20} box FLAT_BOX color 22 + } + Fl_Button {} { + label {セット} + callback {window_set_color->hide();} + xywh {65 175 60 25} + } + Fl_Button {} { + label {キャンセル} + callback {cl_gts_master.cl_trace_params.cb_target_rgb_color_cancel(); +window_set_color->hide();} + xywh {135 175 60 25} + } + } + } + } + Fl_Window window_trace_hue_minmax { + label {線の色相範囲} + callback {cl_gts_gui.window_trace_hue_minmax->hide(); +cl_gts_gui.menite_trace_hue_minmax->clear();} + xywh {50 50 200 70} type Double resizable non_modal size_range {200 70 1000 100} visible + } { + Fl_Group {} {open + xywh {0 0 200 40} resizable + } { + Fl_Box {} { + xywh {0 0 200 5} + } + Fl_Box cyclic_color_wheel { + xywh {0 5 200 30} resizable + code0 {\#include "fl_gl_cyclic_color_wheel.h"} + class fl_gl_cyclic_color_wheel + } + Fl_Box {} { + xywh {0 35 200 5} + } + } + Fl_Group {} {open + xywh {0 40 200 30} + } { + Fl_Group {} {open + xywh {0 40 75 30} + } { + Fl_Button radbut_hue_min_sw { + label {最小} + callback {cyclic_color_wheel->set_min_or_max(false); +cyclic_color_wheel->redraw();} + xywh {5 40 35 25} type Radio value 1 + } + Fl_Button radbut_hue_max_sw { + label {最大} + callback {cyclic_color_wheel->set_min_or_max(true); +cyclic_color_wheel->redraw();} + xywh {40 40 35 25} type Radio + } + } + Fl_Box {} { + xywh {75 40 70 25} resizable + } + Fl_Button {} { + label {リセット} + callback {cl_gts_master.cl_trace_params.cb_hue_min_or_max_cancel(); +cyclic_color_wheel->set_reset(); +cyclic_color_wheel->redraw();} + xywh {145 40 50 25} + } + } + } + } +} + +decl {gts_gui cl_gts_gui;} {public local +} diff --git a/sources/libcpp83gts_callback_and_action/gts_gui_ja.h b/sources/libcpp83gts_callback_and_action/gts_gui_ja.h new file mode 100644 index 0000000..c3b9e07 --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/gts_gui_ja.h @@ -0,0 +1,1113 @@ +// generated by Fast Light User Interface Designer (fluid) version 1.0304 + +#ifndef gts_gui_ja_h +#define gts_gui_ja_h +#include +#include +#include +#include "fl_gl_image_view.h" +#include +#include +#include +#include "cb_area_and_rot90.h" +#include +#include +#include +#include +#include +#include "cb_pixel_type_and_bright.h" +#include +#include +#include +#include +#include +#include "cb_trace_params.h" +#include "fl_gl_hsv_view.h" +#include +#include "fl_gl_cyclic_color_wheel.h" + +class gts_gui { +public: + Fl_Double_Window* make_window(); + Fl_Double_Window *window_main_view; +private: + inline void cb_window_main_view_i(Fl_Double_Window*, void*); + static void cb_window_main_view(Fl_Double_Window*, void*); + static Fl_Menu_Item menu_[]; + inline void cb_1_i(Fl_Menu_*, void*); + static void cb_1(Fl_Menu_*, void*); + inline void cb_11_i(Fl_Menu_*, void*); + static void cb_11(Fl_Menu_*, void*); + inline void cb__i(Fl_Menu_*, void*); + static void cb_(Fl_Menu_*, void*); + inline void cb_2_i(Fl_Menu_*, void*); + static void cb_2(Fl_Menu_*, void*); + inline void cb_3_i(Fl_Menu_*, void*); + static void cb_3(Fl_Menu_*, void*); + inline void cb_4_i(Fl_Menu_*, void*); + static void cb_4(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_scan_crop; +private: + inline void cb_menite_scan_crop_i(Fl_Menu_*, void*); + static void cb_menite_scan_crop(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_preview_scan; +private: + inline void cb_menite_preview_scan_i(Fl_Menu_*, void*); + static void cb_menite_preview_scan(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_scan_save; +private: + inline void cb_menite_scan_save_i(Fl_Menu_*, void*); + static void cb_menite_scan_save(Fl_Menu_*, void*); + inline void cb_21_i(Fl_Menu_*, void*); + static void cb_21(Fl_Menu_*, void*); + inline void cb_5_i(Fl_Menu_*, void*); + static void cb_5(Fl_Menu_*, void*); + inline void cb_6_i(Fl_Menu_*, void*); + static void cb_6(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_area_and_rot90; +private: + inline void cb_menite_area_and_rot90_i(Fl_Menu_*, void*); + static void cb_menite_area_and_rot90(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_pixel_type_and_bright; +private: + inline void cb_menite_pixel_type_and_bright_i(Fl_Menu_*, void*); + static void cb_menite_pixel_type_and_bright(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_number; +private: + inline void cb_menite_number_i(Fl_Menu_*, void*); + static void cb_menite_number(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_scan_and_save; +private: + inline void cb_menite_scan_and_save_i(Fl_Menu_*, void*); + static void cb_menite_scan_and_save(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_trace_files; +private: + inline void cb_menite_trace_files_i(Fl_Menu_*, void*); + static void cb_menite_trace_files(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_trace_params; +private: + inline void cb_menite_trace_params_i(Fl_Menu_*, void*); + static void cb_menite_trace_params(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_trace_hsv_view; +private: + inline void cb_menite_trace_hsv_view_i(Fl_Menu_*, void*); + static void cb_menite_trace_hsv_view(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_trace_hue_minmax; +private: + inline void cb_menite_trace_hue_minmax_i(Fl_Menu_*, void*); + static void cb_menite_trace_hue_minmax(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_trace_batch; +private: + inline void cb_menite_trace_batch_i(Fl_Menu_*, void*); + static void cb_menite_trace_batch(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_sane_device; +private: + inline void cb_7_i(Fl_Menu_*, void*); + static void cb_7(Fl_Menu_*, void*); + inline void cb_8_i(Fl_Menu_*, void*); + static void cb_8(Fl_Menu_*, void*); + inline void cb_9_i(Fl_Menu_*, void*); + static void cb_9(Fl_Menu_*, void*); + inline void cb_a_i(Fl_Menu_*, void*); + static void cb_a(Fl_Menu_*, void*); + inline void cb_b_i(Fl_Menu_*, void*); + static void cb_b(Fl_Menu_*, void*); + inline void cb_c_i(Fl_Menu_*, void*); + static void cb_c(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_frame_cyclic; +private: + inline void cb_d_i(Fl_Menu_*, void*); + static void cb_d(Fl_Menu_*, void*); + inline void cb_e_i(Fl_Menu_*, void*); + static void cb_e(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_wview_main; +private: + inline void cb_menite_wview_main_i(Fl_Menu_*, void*); + static void cb_menite_wview_main(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_wview_sub; +private: + inline void cb_menite_wview_sub_i(Fl_Menu_*, void*); + static void cb_menite_wview_sub(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_wview_lr; +private: + inline void cb_menite_wview_lr_i(Fl_Menu_*, void*); + static void cb_menite_wview_lr(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_wview_ud; +private: + inline void cb_menite_wview_ud_i(Fl_Menu_*, void*); + static void cb_menite_wview_ud(Fl_Menu_*, void*); + inline void cb_FullColor_i(Fl_Menu_*, void*); + static void cb_FullColor(Fl_Menu_*, void*); + inline void cb_Red_i(Fl_Menu_*, void*); + static void cb_Red(Fl_Menu_*, void*); + inline void cb_Green_i(Fl_Menu_*, void*); + static void cb_Green(Fl_Menu_*, void*); + inline void cb_Blue_i(Fl_Menu_*, void*); + static void cb_Blue(Fl_Menu_*, void*); + inline void cb_Red1_i(Fl_Menu_*, void*); + static void cb_Red1(Fl_Menu_*, void*); + inline void cb_Green1_i(Fl_Menu_*, void*); + static void cb_Green1(Fl_Menu_*, void*); + inline void cb_Blue1_i(Fl_Menu_*, void*); + static void cb_Blue1(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_help_about; +private: + inline void cb_menite_help_about_i(Fl_Menu_*, void*); + static void cb_menite_help_about(Fl_Menu_*, void*); +public: + fl_gl_image_view *image_view; + Fl_Scrollbar *scrbar_view_x; +private: + inline void cb_scrbar_view_x_i(Fl_Scrollbar*, void*); + static void cb_scrbar_view_x(Fl_Scrollbar*, void*); +public: + Fl_Scrollbar *scrbar_view_y; +private: + inline void cb_scrbar_view_y_i(Fl_Scrollbar*, void*); + static void cb_scrbar_view_y(Fl_Scrollbar*, void*); +public: + Fl_Double_Window *window_next_scan; + Fl_Button *button_rescan; +private: + inline void cb_button_rescan_i(Fl_Button*, void*); + static void cb_button_rescan(Fl_Button*, void*); + inline void cb_Enter_i(Fl_Button*, void*); + static void cb_Enter(Fl_Button*, void*); + inline void cb_Esc_i(Fl_Button*, void*); + static void cb_Esc(Fl_Button*, void*); +public: + Fl_Output *norout_crnt_scan_level; + Fl_Output *norout_crnt_scan_number; + Fl_Output *norout_next_scan_number; + Fl_Double_Window *window_next_scan_non_modal; +private: + inline void cb_window_next_scan_non_modal_i(Fl_Double_Window*, void*); + static void cb_window_next_scan_non_modal(Fl_Double_Window*, void*); +public: + Fl_Output *norout_next_save_non_modal; + Fl_Button *button_next_save_non_modal; +private: + inline void cb_button_next_save_non_modal_i(Fl_Button*, void*); + static void cb_button_next_save_non_modal(Fl_Button*, void*); + inline void cb_Esc1_i(Fl_Button*, void*); + static void cb_Esc1(Fl_Button*, void*); +public: + Fl_Double_Window *window_area_and_rot90; +private: + inline void cb_window_area_and_rot90_i(Fl_Double_Window*, void*); + static void cb_window_area_and_rot90(Fl_Double_Window*, void*); +public: + fltk_button_area_and_rot90 *button_area_and_rot90; +private: + inline void cb_button_area_and_rot90_i(fltk_button_area_and_rot90*, void*); + static void cb_button_area_and_rot90(fltk_button_area_and_rot90*, void*); +public: + Fl_Value_Input *valinp_area_reso; +private: + inline void cb_valinp_area_reso_i(Fl_Value_Input*, void*); + static void cb_valinp_area_reso(Fl_Value_Input*, void*); +public: + Fl_Choice *choice_rot90; +private: + inline void cb_choice_rot90_i(Fl_Choice*, void*); + static void cb_choice_rot90(Fl_Choice*, void*); + static Fl_Menu_Item menu_choice_rot90[]; +public: + Fl_Button *button_scan_crop; +private: + inline void cb_button_scan_crop_i(Fl_Button*, void*); + static void cb_button_scan_crop(Fl_Button*, void*); +public: + Fl_Group *group_area_crop; + Fl_Value_Input *valinp_area_offset_cm_x; +private: + inline void cb_valinp_area_offset_cm_x_i(Fl_Value_Input*, void*); + static void cb_valinp_area_offset_cm_x(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_area_offset_cm_y; +private: + inline void cb_valinp_area_offset_cm_y_i(Fl_Value_Input*, void*); + static void cb_valinp_area_offset_cm_y(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_area_size_cm_w; +private: + inline void cb_valinp_area_size_cm_w_i(Fl_Value_Input*, void*); + static void cb_valinp_area_size_cm_w(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_area_size_cm_h; +private: + inline void cb_valinp_area_size_cm_h_i(Fl_Value_Input*, void*); + static void cb_valinp_area_size_cm_h(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_area_size_pixel_w; +private: + inline void cb_valinp_area_size_pixel_w_i(Fl_Value_Input*, void*); + static void cb_valinp_area_size_pixel_w(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_area_size_pixel_h; +private: + inline void cb_valinp_area_size_pixel_h_i(Fl_Value_Input*, void*); + static void cb_valinp_area_size_pixel_h(Fl_Value_Input*, void*); +public: + Fl_Button *radbut_area_reso_fix_cm; + Fl_Button *radbut_area_reso_fix_pixel; +private: + inline void cb_f_i(Fl_Button*, void*); + static void cb_f(Fl_Button*, void*); + inline void cb_10_i(Fl_Button*, void*); + static void cb_10(Fl_Button*, void*); +public: + Fl_Output *txtout_scanner_type; + Fl_Value_Output *valout_scanner_size_cm_w; + Fl_Value_Output *valout_scanner_size_cm_h; + Fl_Double_Window *window_pixel_type_and_bright; +private: + inline void cb_window_pixel_type_and_bright_i(Fl_Double_Window*, void*); + static void cb_window_pixel_type_and_bright(Fl_Double_Window*, void*); +public: + fltk_button_pixel_type_and_bright *button_pixel_type_and_bright; +private: + inline void cb_button_pixel_type_and_bright_i(fltk_button_pixel_type_and_bright*, void*); + static void cb_button_pixel_type_and_bright(fltk_button_pixel_type_and_bright*, void*); +public: + Fl_Choice *choice_pixel_type; +private: + inline void cb_choice_pixel_type_i(Fl_Choice*, void*); + static void cb_choice_pixel_type(Fl_Choice*, void*); + static Fl_Menu_Item menu_choice_pixel_type[]; +public: + Fl_Group *group_bw; + Fl_Value_Input *valinp_bw_threshold; +private: + inline void cb_valinp_bw_threshold_i(Fl_Value_Input*, void*); + static void cb_valinp_bw_threshold(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_bw_threshold; +private: + inline void cb_scrbar_bw_threshold_i(Fl_Scrollbar*, void*); + static void cb_scrbar_bw_threshold(Fl_Scrollbar*, void*); +public: + Fl_Group *group_grays; + Fl_Value_Input *valinp_grayscale_brightness; +private: + inline void cb_valinp_grayscale_brightness_i(Fl_Value_Input*, void*); + static void cb_valinp_grayscale_brightness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_grayscale_brightness; +private: + inline void cb_scrbar_grayscale_brightness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_grayscale_brightness(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_grayscale_contrast; +private: + inline void cb_valinp_grayscale_contrast_i(Fl_Value_Input*, void*); + static void cb_valinp_grayscale_contrast(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_grayscale_contrast; +private: + inline void cb_scrbar_grayscale_contrast_i(Fl_Scrollbar*, void*); + static void cb_scrbar_grayscale_contrast(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_grayscale_gamma; +private: + inline void cb_valinp_grayscale_gamma_i(Fl_Value_Input*, void*); + static void cb_valinp_grayscale_gamma(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_grayscale_gamma; +private: + inline void cb_scrbar_grayscale_gamma_i(Fl_Scrollbar*, void*); + static void cb_scrbar_grayscale_gamma(Fl_Scrollbar*, void*); +public: + Fl_Group *group_rgb; + Fl_Value_Input *valinp_rgb_brightness; +private: + inline void cb_valinp_rgb_brightness_i(Fl_Value_Input*, void*); + static void cb_valinp_rgb_brightness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_rgb_brightness; +private: + inline void cb_scrbar_rgb_brightness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_rgb_brightness(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_rgb_contrast; +private: + inline void cb_valinp_rgb_contrast_i(Fl_Value_Input*, void*); + static void cb_valinp_rgb_contrast(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_rgb_contrast; +private: + inline void cb_scrbar_rgb_contrast_i(Fl_Scrollbar*, void*); + static void cb_scrbar_rgb_contrast(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_rgb_gamma; +private: + inline void cb_valinp_rgb_gamma_i(Fl_Value_Input*, void*); + static void cb_valinp_rgb_gamma(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_rgb_gamma; +private: + inline void cb_scrbar_rgb_gamma_i(Fl_Scrollbar*, void*); + static void cb_scrbar_rgb_gamma(Fl_Scrollbar*, void*); +public: + Fl_Button *button_preview_scan; +private: + inline void cb_button_preview_scan_i(Fl_Button*, void*); + static void cb_button_preview_scan(Fl_Button*, void*); +public: + Fl_Double_Window *window_scan_and_save; +private: + inline void cb_window_scan_and_save_i(Fl_Double_Window*, void*); + static void cb_window_scan_and_save(Fl_Double_Window*, void*); +public: + Fl_Check_Button *chkbtn_scan_filter_trace_sw; +private: + inline void cb_chkbtn_scan_filter_trace_sw_i(Fl_Check_Button*, void*); + static void cb_chkbtn_scan_filter_trace_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chkbtn_scan_filter_erase_dot_noise_sw; +private: + inline void cb_chkbtn_scan_filter_erase_dot_noise_sw_i(Fl_Check_Button*, void*); + static void cb_chkbtn_scan_filter_erase_dot_noise_sw(Fl_Check_Button*, void*); +public: + Fl_File_Input *filinp_scan_save_dir_path; +private: + inline void cb_filinp_scan_save_dir_path_i(Fl_File_Input*, void*); + static void cb_filinp_scan_save_dir_path(Fl_File_Input*, void*); + inline void cb_12_i(Fl_Button*, void*); + static void cb_12(Fl_Button*, void*); +public: + Fl_Input *strinp_scan_save_file_head; +private: + inline void cb_strinp_scan_save_file_head_i(Fl_Input*, void*); + static void cb_strinp_scan_save_file_head(Fl_Input*, void*); +public: + Fl_Output *output_scan_save_number_format; +private: + inline void cb_output_scan_save_number_format_i(Fl_Output*, void*); + static void cb_output_scan_save_number_format(Fl_Output*, void*); +public: + Fl_Choice *choice_scan_save_image_format; +private: + inline void cb_choice_scan_save_image_format_i(Fl_Choice*, void*); + static void cb_choice_scan_save_image_format(Fl_Choice*, void*); +public: + Fl_Value_Input *valinp_scan_num_start; + Fl_Choice *choice_scan_num_continue_type; +private: + inline void cb_choice_scan_num_continue_type_i(Fl_Choice*, void*); + static void cb_choice_scan_num_continue_type(Fl_Choice*, void*); + static Fl_Menu_Item menu_choice_scan_num_continue_type[]; +public: + Fl_Choice *choice_scan_num_endless_direction; + static Fl_Menu_Item menu_choice_scan_num_endless_direction[]; + Fl_Value_Input *valinp_scan_num_end; +private: + inline void cb_13_i(Fl_Button*, void*); + static void cb_13(Fl_Button*, void*); +public: + Fl_Check_Button *chkbtn_scan_adjustable_per_frame_sw; + Fl_Button *button_scan_save; +private: + inline void cb_button_scan_save_i(Fl_Button*, void*); + static void cb_button_scan_save(Fl_Button*, void*); +public: + Fl_Double_Window *window_trace_files; +private: + inline void cb_window_trace_files_i(Fl_Double_Window*, void*); + static void cb_window_trace_files(Fl_Double_Window*, void*); +public: + Fl_File_Input *filinp_trace_open_dir_path; + Fl_Input *strinp_trace_open_file_head; + Fl_Input *strinp_trace_open_number_format; + Fl_Choice *choice_trace_open_image_format; +private: + inline void cb_14_i(Fl_Button*, void*); + static void cb_14(Fl_Button*, void*); + inline void cb_15_i(Fl_Button*, void*); + static void cb_15(Fl_Button*, void*); + inline void cb_16_i(Fl_Button*, void*); + static void cb_16(Fl_Button*, void*); +public: + Fl_Check_Button *chkbtn_trace_filter_trace_sw; +private: + inline void cb_chkbtn_trace_filter_trace_sw_i(Fl_Check_Button*, void*); + static void cb_chkbtn_trace_filter_trace_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chkbtn_trace_filter_erase_dot_noise_sw; +private: + inline void cb_chkbtn_trace_filter_erase_dot_noise_sw_i(Fl_Check_Button*, void*); + static void cb_chkbtn_trace_filter_erase_dot_noise_sw(Fl_Check_Button*, void*); +public: + Fl_File_Input *filinp_trace_save_dir_path; +private: + inline void cb_filinp_trace_save_dir_path_i(Fl_File_Input*, void*); + static void cb_filinp_trace_save_dir_path(Fl_File_Input*, void*); + inline void cb_17_i(Fl_Button*, void*); + static void cb_17(Fl_Button*, void*); +public: + Fl_Input *strinp_trace_save_file_head; +private: + inline void cb_strinp_trace_save_file_head_i(Fl_Input*, void*); + static void cb_strinp_trace_save_file_head(Fl_Input*, void*); +public: + Fl_Output *output_trace_save_number_format; +private: + inline void cb_output_trace_save_number_format_i(Fl_Output*, void*); + static void cb_output_trace_save_number_format(Fl_Output*, void*); +public: + Fl_Choice *choice_trace_save_image_format; +private: + inline void cb_choice_trace_save_image_format_i(Fl_Choice*, void*); + static void cb_choice_trace_save_image_format(Fl_Choice*, void*); +public: + Fl_Value_Output *valout_trace_num_start; + Fl_Value_Output *valout_trace_num_end; +private: + inline void cb_18_i(Fl_Button*, void*); + static void cb_18(Fl_Button*, void*); + inline void cb_22_i(Fl_Button*, void*); + static void cb_22(Fl_Button*, void*); +public: + Fl_Double_Window *window_number; +private: + inline void cb_window_number_i(Fl_Double_Window*, void*); + static void cb_window_number(Fl_Double_Window*, void*); + static Fl_Menu_Item menu_1[]; + inline void cb_19_i(Fl_Menu_*, void*); + static void cb_19(Fl_Menu_*, void*); + inline void cb_1a_i(Fl_Menu_*, void*); + static void cb_1a(Fl_Menu_*, void*); +public: + Fl_Input *norinp_number_input; +private: + inline void cb_norinp_number_input_i(Fl_Input*, void*); + static void cb_norinp_number_input(Fl_Input*, void*); +public: + Fl_Output *output_number_action_type; + Fl_Output *output_number_file_head_name; + Fl_Browser *selbro_number_list; +private: + inline void cb_selbro_number_list_i(Fl_Browser*, void*); + static void cb_selbro_number_list(Fl_Browser*, void*); +public: + Fl_Double_Window *window_trace_batch; +private: + inline void cb_window_trace_batch_i(Fl_Double_Window*, void*); + static void cb_window_trace_batch(Fl_Double_Window*, void*); + inline void cb_1b_i(Fl_Button*, void*); + static void cb_1b(Fl_Button*, void*); + inline void cb_1c_i(Fl_Button*, void*); + static void cb_1c(Fl_Button*, void*); + inline void cb_1d_i(Fl_Button*, void*); + static void cb_1d(Fl_Button*, void*); + inline void cb_1e_i(Fl_Button*, void*); + static void cb_1e(Fl_Button*, void*); + inline void cb_1f_i(Fl_Button*, void*); + static void cb_1f(Fl_Button*, void*); +public: + Fl_Browser *selbro_trace_batch_config_list; + Fl_Double_Window *window_trace_params; +private: + inline void cb_window_trace_params_i(Fl_Double_Window*, void*); + static void cb_window_trace_params(Fl_Double_Window*, void*); +public: + Fl_Group *group_trace_params; + fltk_button_trace_params *button_trace_params; +private: + inline void cb_button_trace_params_i(fltk_button_trace_params*, void*); + static void cb_button_trace_params(fltk_button_trace_params*, void*); + inline void cb_20_i(Fl_Button*, void*); + static void cb_20(Fl_Button*, void*); +public: + Fl_Button *togbut_trace_open_under_sw; +private: + inline void cb_togbut_trace_open_under_sw_i(Fl_Button*, void*); + static void cb_togbut_trace_open_under_sw(Fl_Button*, void*); +public: + Fl_Button *togbut_trace_open_right_middle_sw; +private: + inline void cb_togbut_trace_open_right_middle_sw_i(Fl_Button*, void*); + static void cb_togbut_trace_open_right_middle_sw(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_display_target_sw; +private: + inline void cb_chebut_trace_display_target_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_display_target_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_display_main_sw; +private: + inline void cb_chebut_trace_display_main_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_display_main_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_0_enable_sw; +private: + inline void cb_chebut_trace_0_enable_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_0_enable_sw(Fl_Check_Button*, void*); +public: + Fl_Group *group_trace_0; + Fl_Button *button_trace_0_target_rgb; +private: + inline void cb_button_trace_0_target_rgb_i(Fl_Button*, void*); + static void cb_button_trace_0_target_rgb(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_0_thickness; +private: + inline void cb_valinp_trace_0_thickness_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_0_thickness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_trace_0_thickness; +private: + inline void cb_scrbar_trace_0_thickness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_trace_0_thickness(Fl_Scrollbar*, void*); +public: + Fl_Button *button_trace_0_hue_min; +private: + inline void cb_button_trace_0_hue_min_i(Fl_Button*, void*); + static void cb_button_trace_0_hue_min(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_0_hue_min; +private: + inline void cb_valinp_trace_0_hue_min_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_0_hue_min(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_0_hue_max; +private: + inline void cb_valinp_trace_0_hue_max_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_0_hue_max(Fl_Value_Input*, void*); +public: + Fl_Button *button_trace_0_hue_minmax; +private: + inline void cb_button_trace_0_hue_minmax_i(Fl_Button*, void*); + static void cb_button_trace_0_hue_minmax(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_0_rotate360_sw; +private: + inline void cb_chebut_trace_0_rotate360_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_0_rotate360_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_0_display_sw; +private: + inline void cb_chebut_trace_0_display_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_0_display_sw(Fl_Check_Button*, void*); +public: + Fl_Value_Input *valinp_trace_0_slope_deg; +private: + inline void cb_valinp_trace_0_slope_deg_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_0_slope_deg(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_0_intercept; +private: + inline void cb_valinp_trace_0_intercept_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_0_intercept(Fl_Value_Input*, void*); +public: + Fl_Check_Button *chebut_trace_1_enable_sw; +private: + inline void cb_chebut_trace_1_enable_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_1_enable_sw(Fl_Check_Button*, void*); +public: + Fl_Group *group_trace_1; + Fl_Button *button_trace_1_target_rgb; +private: + inline void cb_button_trace_1_target_rgb_i(Fl_Button*, void*); + static void cb_button_trace_1_target_rgb(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_1_thickness; +private: + inline void cb_valinp_trace_1_thickness_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_1_thickness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_trace_1_thickness; +private: + inline void cb_scrbar_trace_1_thickness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_trace_1_thickness(Fl_Scrollbar*, void*); +public: + Fl_Button *button_trace_1_hue_min; +private: + inline void cb_button_trace_1_hue_min_i(Fl_Button*, void*); + static void cb_button_trace_1_hue_min(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_1_hue_min; +private: + inline void cb_valinp_trace_1_hue_min_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_1_hue_min(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_1_hue_max; +private: + inline void cb_valinp_trace_1_hue_max_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_1_hue_max(Fl_Value_Input*, void*); +public: + Fl_Button *button_trace_1_hue_minmax; +private: + inline void cb_button_trace_1_hue_minmax_i(Fl_Button*, void*); + static void cb_button_trace_1_hue_minmax(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_1_rotate360_sw; +private: + inline void cb_chebut_trace_1_rotate360_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_1_rotate360_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_1_display_sw; +private: + inline void cb_chebut_trace_1_display_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_1_display_sw(Fl_Check_Button*, void*); +public: + Fl_Value_Input *valinp_trace_1_slope_deg; +private: + inline void cb_valinp_trace_1_slope_deg_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_1_slope_deg(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_1_intercept; +private: + inline void cb_valinp_trace_1_intercept_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_1_intercept(Fl_Value_Input*, void*); +public: + Fl_Check_Button *chebut_trace_2_enable_sw; +private: + inline void cb_chebut_trace_2_enable_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_2_enable_sw(Fl_Check_Button*, void*); +public: + Fl_Group *group_trace_2; + Fl_Button *button_trace_2_target_rgb; +private: + inline void cb_button_trace_2_target_rgb_i(Fl_Button*, void*); + static void cb_button_trace_2_target_rgb(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_2_thickness; +private: + inline void cb_valinp_trace_2_thickness_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_2_thickness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_trace_2_thickness; +private: + inline void cb_scrbar_trace_2_thickness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_trace_2_thickness(Fl_Scrollbar*, void*); +public: + Fl_Button *button_trace_2_hue_min; +private: + inline void cb_button_trace_2_hue_min_i(Fl_Button*, void*); + static void cb_button_trace_2_hue_min(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_2_hue_min; +private: + inline void cb_valinp_trace_2_hue_min_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_2_hue_min(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_2_hue_max; +private: + inline void cb_valinp_trace_2_hue_max_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_2_hue_max(Fl_Value_Input*, void*); +public: + Fl_Button *button_trace_2_hue_minmax; +private: + inline void cb_button_trace_2_hue_minmax_i(Fl_Button*, void*); + static void cb_button_trace_2_hue_minmax(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_2_rotate360_sw; +private: + inline void cb_chebut_trace_2_rotate360_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_2_rotate360_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_2_display_sw; +private: + inline void cb_chebut_trace_2_display_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_2_display_sw(Fl_Check_Button*, void*); +public: + Fl_Value_Input *valinp_trace_2_slope_deg; +private: + inline void cb_valinp_trace_2_slope_deg_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_2_slope_deg(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_2_intercept; +private: + inline void cb_valinp_trace_2_intercept_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_2_intercept(Fl_Value_Input*, void*); +public: + Fl_Check_Button *chebut_trace_3_enable_sw; +private: + inline void cb_chebut_trace_3_enable_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_3_enable_sw(Fl_Check_Button*, void*); +public: + Fl_Group *group_trace_3; + Fl_Button *button_trace_3_target_rgb; +private: + inline void cb_button_trace_3_target_rgb_i(Fl_Button*, void*); + static void cb_button_trace_3_target_rgb(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_3_thickness; +private: + inline void cb_valinp_trace_3_thickness_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_3_thickness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_trace_3_thickness; +private: + inline void cb_scrbar_trace_3_thickness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_trace_3_thickness(Fl_Scrollbar*, void*); +public: + Fl_Button *button_trace_3_hue_min; +private: + inline void cb_button_trace_3_hue_min_i(Fl_Button*, void*); + static void cb_button_trace_3_hue_min(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_3_hue_min; +private: + inline void cb_valinp_trace_3_hue_min_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_3_hue_min(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_3_hue_max; +private: + inline void cb_valinp_trace_3_hue_max_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_3_hue_max(Fl_Value_Input*, void*); +public: + Fl_Button *button_trace_3_hue_minmax; +private: + inline void cb_button_trace_3_hue_minmax_i(Fl_Button*, void*); + static void cb_button_trace_3_hue_minmax(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_3_rotate360_sw; +private: + inline void cb_chebut_trace_3_rotate360_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_3_rotate360_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_3_display_sw; +private: + inline void cb_chebut_trace_3_display_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_3_display_sw(Fl_Check_Button*, void*); +public: + Fl_Value_Input *valinp_trace_3_slope_deg; +private: + inline void cb_valinp_trace_3_slope_deg_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_3_slope_deg(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_3_intercept; +private: + inline void cb_valinp_trace_3_intercept_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_3_intercept(Fl_Value_Input*, void*); +public: + Fl_Check_Button *chebut_trace_4_enable_sw; +private: + inline void cb_chebut_trace_4_enable_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_4_enable_sw(Fl_Check_Button*, void*); +public: + Fl_Group *group_trace_4; + Fl_Button *button_trace_4_target_rgb; +private: + inline void cb_button_trace_4_target_rgb_i(Fl_Button*, void*); + static void cb_button_trace_4_target_rgb(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_4_thickness; +private: + inline void cb_valinp_trace_4_thickness_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_4_thickness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_trace_4_thickness; +private: + inline void cb_scrbar_trace_4_thickness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_trace_4_thickness(Fl_Scrollbar*, void*); +public: + Fl_Button *button_trace_4_hue_min; +private: + inline void cb_button_trace_4_hue_min_i(Fl_Button*, void*); + static void cb_button_trace_4_hue_min(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_4_hue_min; +private: + inline void cb_valinp_trace_4_hue_min_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_4_hue_min(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_4_hue_max; +private: + inline void cb_valinp_trace_4_hue_max_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_4_hue_max(Fl_Value_Input*, void*); +public: + Fl_Button *button_trace_4_hue_minmax; +private: + inline void cb_button_trace_4_hue_minmax_i(Fl_Button*, void*); + static void cb_button_trace_4_hue_minmax(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_4_rotate360_sw; +private: + inline void cb_chebut_trace_4_rotate360_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_4_rotate360_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_4_display_sw; +private: + inline void cb_chebut_trace_4_display_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_4_display_sw(Fl_Check_Button*, void*); +public: + Fl_Value_Input *valinp_trace_4_slope_deg; +private: + inline void cb_valinp_trace_4_slope_deg_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_4_slope_deg(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_4_intercept; +private: + inline void cb_valinp_trace_4_intercept_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_4_intercept(Fl_Value_Input*, void*); +public: + Fl_Check_Button *chebut_trace_5_enable_sw; +private: + inline void cb_chebut_trace_5_enable_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_5_enable_sw(Fl_Check_Button*, void*); +public: + Fl_Group *group_trace_5; + Fl_Button *button_trace_5_target_rgb; +private: + inline void cb_button_trace_5_target_rgb_i(Fl_Button*, void*); + static void cb_button_trace_5_target_rgb(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_5_thickness; +private: + inline void cb_valinp_trace_5_thickness_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_5_thickness(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_trace_5_thickness; +private: + inline void cb_scrbar_trace_5_thickness_i(Fl_Scrollbar*, void*); + static void cb_scrbar_trace_5_thickness(Fl_Scrollbar*, void*); +public: + Fl_Button *button_trace_5_hue_min; +private: + inline void cb_button_trace_5_hue_min_i(Fl_Button*, void*); + static void cb_button_trace_5_hue_min(Fl_Button*, void*); +public: + Fl_Value_Input *valinp_trace_5_hue_min; +private: + inline void cb_valinp_trace_5_hue_min_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_5_hue_min(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_5_hue_max; +private: + inline void cb_valinp_trace_5_hue_max_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_5_hue_max(Fl_Value_Input*, void*); +public: + Fl_Button *button_trace_5_hue_minmax; +private: + inline void cb_button_trace_5_hue_minmax_i(Fl_Button*, void*); + static void cb_button_trace_5_hue_minmax(Fl_Button*, void*); +public: + Fl_Check_Button *chebut_trace_5_rotate360_sw; +private: + inline void cb_chebut_trace_5_rotate360_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_5_rotate360_sw(Fl_Check_Button*, void*); +public: + Fl_Check_Button *chebut_trace_5_display_sw; +private: + inline void cb_chebut_trace_5_display_sw_i(Fl_Check_Button*, void*); + static void cb_chebut_trace_5_display_sw(Fl_Check_Button*, void*); +public: + Fl_Value_Input *valinp_trace_5_slope_deg; +private: + inline void cb_valinp_trace_5_slope_deg_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_5_slope_deg(Fl_Value_Input*, void*); +public: + Fl_Value_Input *valinp_trace_5_intercept; +private: + inline void cb_valinp_trace_5_intercept_i(Fl_Value_Input*, void*); + static void cb_valinp_trace_5_intercept(Fl_Value_Input*, void*); +public: + Fl_Button *button_change_0_1; +private: + inline void cb_button_change_0_1_i(Fl_Button*, void*); + static void cb_button_change_0_1(Fl_Button*, void*); +public: + Fl_Button *button_change_1_2; +private: + inline void cb_button_change_1_2_i(Fl_Button*, void*); + static void cb_button_change_1_2(Fl_Button*, void*); +public: + Fl_Button *button_change_2_3; +private: + inline void cb_button_change_2_3_i(Fl_Button*, void*); + static void cb_button_change_2_3(Fl_Button*, void*); +public: + Fl_Button *button_change_3_4; +private: + inline void cb_button_change_3_4_i(Fl_Button*, void*); + static void cb_button_change_3_4(Fl_Button*, void*); +public: + Fl_Button *button_change_4_5; +private: + inline void cb_button_change_4_5_i(Fl_Button*, void*); + static void cb_button_change_4_5(Fl_Button*, void*); +public: + Fl_Double_Window *window_trace_hsv_view; +private: + inline void cb_window_trace_hsv_view_i(Fl_Double_Window*, void*); + static void cb_window_trace_hsv_view(Fl_Double_Window*, void*); + static Fl_Menu_Item menu_2[]; +public: + static Fl_Menu_Item *menite_hsv_dot_normal; +private: + inline void cb_menite_hsv_dot_normal_i(Fl_Menu_*, void*); + static void cb_menite_hsv_dot_normal(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_hsv_dot_trace_area; +private: + inline void cb_menite_hsv_dot_trace_area_i(Fl_Menu_*, void*); + static void cb_menite_hsv_dot_trace_area(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_hsv_dot_white; +private: + inline void cb_menite_hsv_dot_white_i(Fl_Menu_*, void*); + static void cb_menite_hsv_dot_white(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_hsv_dot_black; +private: + inline void cb_menite_hsv_dot_black_i(Fl_Menu_*, void*); + static void cb_menite_hsv_dot_black(Fl_Menu_*, void*); +public: + static Fl_Menu_Item *menite_hsv_random_position; +private: + inline void cb_menite_hsv_random_position_i(Fl_Menu_*, void*); + static void cb_menite_hsv_random_position(Fl_Menu_*, void*); +public: + fl_gl_hsv_view *hsv_view; + Fl_Double_Window *window_set_number_format; +private: + inline void cb_window_set_number_format_i(Fl_Double_Window*, void*); + static void cb_window_set_number_format(Fl_Double_Window*, void*); +public: + Fl_Choice *choice_input_num_form_separator; +private: + inline void cb_choice_input_num_form_separator_i(Fl_Choice*, void*); + static void cb_choice_input_num_form_separator(Fl_Choice*, void*); +public: + Fl_Counter *counte_input_num_form_num_of_digits; +private: + inline void cb_counte_input_num_form_num_of_digits_i(Fl_Counter*, void*); + static void cb_counte_input_num_form_num_of_digits(Fl_Counter*, void*); +public: + Fl_Output *output_input_num_form_sample; +private: + inline void cb_23_i(Fl_Button*, void*); + static void cb_23(Fl_Button*, void*); + inline void cb_24_i(Fl_Button*, void*); + static void cb_24(Fl_Button*, void*); +public: + Fl_Double_Window *window_set_aspect_ratio; +private: + inline void cb_window_set_aspect_ratio_i(Fl_Double_Window*, void*); + static void cb_window_set_aspect_ratio(Fl_Double_Window*, void*); +public: + Fl_Button *radbut_area_aspect_ratio_w; + Fl_Value_Input *valinp_area_aspect_ratio_w; + Fl_Button *radbut_area_aspect_ratio_h; + Fl_Value_Input *valinp_area_aspect_ratio_h; +private: + inline void cb_25_i(Fl_Button*, void*); + static void cb_25(Fl_Button*, void*); + inline void cb_26_i(Fl_Button*, void*); + static void cb_26(Fl_Button*, void*); +public: + Fl_Double_Window *window_set_color; +private: + inline void cb_window_set_color_i(Fl_Double_Window*, void*); + static void cb_window_set_color(Fl_Double_Window*, void*); +public: + Fl_Value_Input *valinp_set_color_hue; +private: + inline void cb_valinp_set_color_hue_i(Fl_Value_Input*, void*); + static void cb_valinp_set_color_hue(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_set_color_hue; +private: + inline void cb_scrbar_set_color_hue_i(Fl_Scrollbar*, void*); + static void cb_scrbar_set_color_hue(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_set_color_sat; +private: + inline void cb_valinp_set_color_sat_i(Fl_Value_Input*, void*); + static void cb_valinp_set_color_sat(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_set_color_sat; +private: + inline void cb_scrbar_set_color_sat_i(Fl_Scrollbar*, void*); + static void cb_scrbar_set_color_sat(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_set_color_val; +private: + inline void cb_valinp_set_color_val_i(Fl_Value_Input*, void*); + static void cb_valinp_set_color_val(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_set_color_val; +private: + inline void cb_scrbar_set_color_val_i(Fl_Scrollbar*, void*); + static void cb_scrbar_set_color_val(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_set_color_red; +private: + inline void cb_valinp_set_color_red_i(Fl_Value_Input*, void*); + static void cb_valinp_set_color_red(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_set_color_red; +private: + inline void cb_scrbar_set_color_red_i(Fl_Scrollbar*, void*); + static void cb_scrbar_set_color_red(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_set_color_gre; +private: + inline void cb_valinp_set_color_gre_i(Fl_Value_Input*, void*); + static void cb_valinp_set_color_gre(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_set_color_gre; +private: + inline void cb_scrbar_set_color_gre_i(Fl_Scrollbar*, void*); + static void cb_scrbar_set_color_gre(Fl_Scrollbar*, void*); +public: + Fl_Value_Input *valinp_set_color_blu; +private: + inline void cb_valinp_set_color_blu_i(Fl_Value_Input*, void*); + static void cb_valinp_set_color_blu(Fl_Value_Input*, void*); +public: + Fl_Scrollbar *scrbar_set_color_blu; +private: + inline void cb_scrbar_set_color_blu_i(Fl_Scrollbar*, void*); + static void cb_scrbar_set_color_blu(Fl_Scrollbar*, void*); +public: + Fl_Box *box_set_color_ok; + Fl_Box *box_set_color_cancel; +private: + inline void cb_27_i(Fl_Button*, void*); + static void cb_27(Fl_Button*, void*); + inline void cb_28_i(Fl_Button*, void*); + static void cb_28(Fl_Button*, void*); +public: + Fl_Double_Window *window_trace_hue_minmax; +private: + inline void cb_window_trace_hue_minmax_i(Fl_Double_Window*, void*); + static void cb_window_trace_hue_minmax(Fl_Double_Window*, void*); +public: + fl_gl_cyclic_color_wheel *cyclic_color_wheel; + Fl_Button *radbut_hue_min_sw; +private: + inline void cb_radbut_hue_min_sw_i(Fl_Button*, void*); + static void cb_radbut_hue_min_sw(Fl_Button*, void*); +public: + Fl_Button *radbut_hue_max_sw; +private: + inline void cb_radbut_hue_max_sw_i(Fl_Button*, void*); + static void cb_radbut_hue_max_sw(Fl_Button*, void*); + inline void cb_29_i(Fl_Button*, void*); + static void cb_29(Fl_Button*, void*); +}; +extern gts_gui cl_gts_gui; +#endif diff --git a/sources/libcpp83gts_callback_and_action/gts_master.cpp b/sources/libcpp83gts_callback_and_action/gts_master.cpp index 98c4102..d3c2661 100644 --- a/sources/libcpp83gts_callback_and_action/gts_master.cpp +++ b/sources/libcpp83gts_callback_and_action/gts_master.cpp @@ -104,7 +104,8 @@ int gts_master::exec( const char *comm ) パラメータ初期設定 */ - /* 画像R/W書式(拡張子)の初期設定 */ + /* 画像R/W書式(拡張子)の初期設定 + * 以下全て同一の順番と内容であること */ this->cl_scan_and_save.ext_save.set_filter("TIFF",".tif");/*0番目 */ this->cl_scan_and_save.ext_save.set_filter( "TGA",".tga");/*1番目 */ this->cl_trace_files.ext_open.set_filter("TIFF",".tif");/* 0番目 */ diff --git a/sources/libcpp83gts_callback_and_action/gts_master.h b/sources/libcpp83gts_callback_and_action/gts_master.h index 17c9021..0855875 100644 --- a/sources/libcpp83gts_callback_and_action/gts_master.h +++ b/sources/libcpp83gts_callback_and_action/gts_master.h @@ -21,6 +21,7 @@ #include "memory_config.h" #include "cb_image.h" #include "cb_config.h" +#include "cb_pixel_type_and_bright.h" #include "cb_area_and_rot90.h" #include "cb_scan_and_save.h" #include "cb_number.h" @@ -55,8 +56,6 @@ class gts_master { void action( E_ACT e_act ); /* 実行 */ - void cb_choice_pixel_type_title( const std::string& str ); - void cb_choice_pixel_type_menu( void ); void cb_quit( void ); void cb_read_and_preview( void ); @@ -114,7 +113,9 @@ class gts_master { cb_image cl_image; cb_config cl_config; - cb_area_and_rot90 cl_area_and_rot90; + + cb_pixel_type_and_bright cl_pixel_type_and_bright; + cb_area_and_rot90 cl_area_and_rot90; cb_scan_and_save cl_scan_and_save; cb_trace_files cl_trace_files; cb_number cl_number; diff --git a/sources/libcpp83gts_callback_and_action/gts_str_language.cpp b/sources/libcpp83gts_callback_and_action/gts_str_language.cpp new file mode 100644 index 0000000..44e6798 --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/gts_str_language.cpp @@ -0,0 +1,189 @@ +#include "gts_str_language.h" + +namespace gts_str { + +namespace area_and_rot90 { +const char* offset_cm_x_big + = "Too Big X"; +const char* offset_cm_x_small + = "Too Small X"; +const char* offset_cm_y_big + = "Too Big Y"; +const char* offset_cm_y_small + = "Too Small Y"; +const char* size_cm_w_big + = "Too Big W"; +const char* size_cm_w_small + = "Too Small W"; +const char* size_cm_h_big + = "Too Big H"; +const char* size_cm_h_small + = "Too Small H"; +const char* dpi_out_of_range + = "Must be %g ... %g DPI"; +const char* crop_again + = "Crop again"; +const char* bad_aspect_ratio_h + = "Set H_Aspect_Ratio greater than zero"; +const char* bad_aspect_ratio_w + = "Set W_Aspect_Ratio greater than zero"; +const char* click_h_or_w_button + = "Click H or W button"; +const char* not_inside_then_limit + = "Not inside , Limit..."; +const char* not_inside_then_limit_cancel + = "Cancel"; +const char* not_inside_then_limit_size + = "Size"; +const char* not_inside_then_limit_dpi + = "DPI"; +} // area_and_rot90 + +namespace change_view { +const char* not_change + = "Not change ,when Crop mode"; +const char* no_image + = "Need Image"; +const char* no_rgb_image + = "Need RGB Image"; +const char* view_setup_error + = "View setup Error"; +} // change_view + +namespace config { +const char* open + = "Open Config"; +const char* open_only_area_and_rot90 + = "Open Config only Area and Rot90"; +const char* open_only_pixel_type_and_bright + = "Open Config only Pixel Type and Bright"; +const char* open_only_trace_params + = "Open Config only Trace Params"; +const char* save_as + = "Save Config As"; +const char* need_only_1_filepath + = "Error : Need Only 1 Filepath"; +const char* loading_config_error + = "Error : at loading in config"; +const char* need_ext_txt + = "Error : Need Extension .txt"; +const char* use_save_config_as + = "Use \'Save Config As\'"; +const char* ask_overwrite + = "Overwrite \"%s\"?"; +const char* ask_save + = "Save \"%s\"?"; +} // config + +namespace image { +const char* open + = "Open Image"; +const char* save_as + = "Save Image As"; +const char* save_as_can_not_when_crop + = "Finish Cropping, Please Scan."; +const char* no_image + = "Please Any Scan or Open."; +const char* need_extension + = "Need Extension."; +const char* effects_error + = "Effects Error"; +const char* save_error + = "Save \"%s\" Error"; +} // image + +namespace number { +const char* need_to_set_number + = "Click [Set Number]"; +} // number + +namespace scan_and_save { +const char* select_folder + = "Select and Set Saving Folder for Scan"; +const char* not_scan_number + = "Set Number for Scan"; +const char* need_scan_save_name + = "Need Scan Save Name"; +const char* select_number + = "Select Number"; +const char* bad_number + = "Bad Number in Start"; +const char* bad_scan_number + = "Bad Scan Number"; +const char* scan_error + = "Can not Scan(NG)"; +const char* rot_and_trace_and_enoise_error + = "Can not Fx"; +const char* redraw_error + = "Can not Redraw"; +const char* can_not_get_save_path + = "Can not get save_file_path at current_number"; +const char* can_not_save + = "Can not Save file"; +} // scan_and_save + +namespace trace_batch { +const char* add_config + = "Add Config File"; +const char* too_many_selected + = "Select only one(%d selected)"; +} // trace_batch + +namespace trace_files { +const char* open_images + = "Open Images"; +const char* select_folder + = "Select and Set Saving Folder for Trace"; +const char* not_trace_number + = "Set Folder and File and [Set Number] for Trace"; +const char* need_trace_open_name + = "Need Trace Open Name"; +const char* need_trace_save_name + = "Need Trace Save Name"; +const char* check_open_folder_and_filename + = "Check Open Folder and File name"; +const char* check_save_folder_and_filename + = "Check Save Folder and File name"; +const char* select_number + = "Select Number"; +const char* filename_without_head_or_number + = "Not exist name or number in \'%s\'"; +const char* empty_rename_filename + = "Error:rename \"%s\" \"%s\""; +const char* number_is_out_of_range + = "Error : Number need 0...9999 range\nFrom\n %s\nTo\n %s\nNumber List\n %s\n"; +const char* no_head_in_filepath + = "No Head in File"; +const char* bad_extension_in_filepath + = "Bad Extension\"%s\" in File"; +const char* not_number_file + = "No Number in File"; +const char* ask_do_trace + = "Trace"; +const char* ask_do_not_trace + = "Not Trace"; +const char* ask_and_erase_dot_noise + = " and Erase Dot Noise"; +const char* ask_rename + = "Rename\nFrom\n %s\nTo\n %s\nNumber List\n %s\nOK?"; +const char* ask_renumber + = "Renumber\nFrom\n %s\nTo\n %s\nNumber List\n %s\nOK?"; +const char* input_new_level_name + = "Enter New Level Name"; +const char* input_new_start_number + = "Enter New Start Number"; +} // trace_files + +namespace fl_gl_image_view { +const char* need_image_head_name + = "Error : Need Head name"; +const char* need_extension_of_image + = "Error : Need Extension .tga/.tif/.txt"; +} // fl_gl_image_view + +namespace quit { +const char* ask_quit + = "Are you sure you want to quit?"; +} // quit + +} // gts_str diff --git a/sources/libcpp83gts_callback_and_action/gts_str_language.h b/sources/libcpp83gts_callback_and_action/gts_str_language.h new file mode 100644 index 0000000..a43b22a --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/gts_str_language.h @@ -0,0 +1,115 @@ +#ifndef gts_str_language_h +#define gts_str_language_h + +namespace gts_str { + +namespace area_and_rot90 { +extern const char* offset_cm_x_big; +extern const char* offset_cm_x_small; +extern const char* offset_cm_y_big; +extern const char* offset_cm_y_small; +extern const char* size_cm_w_big; +extern const char* size_cm_w_small; +extern const char* size_cm_h_big; +extern const char* size_cm_h_small; +extern const char* dpi_out_of_range; +extern const char* crop_again; +extern const char* bad_aspect_ratio_h; +extern const char* bad_aspect_ratio_w; +extern const char* click_h_or_w_button; +extern const char* not_inside_then_limit; +extern const char* not_inside_then_limit_cancel; +extern const char* not_inside_then_limit_size; +extern const char* not_inside_then_limit_dpi; +} // area_and_rot90 + +namespace change_view { +extern const char* not_change; +extern const char* no_image; +extern const char* no_rgb_image; +extern const char* view_setup_error; +} // change_view + +namespace config { +extern const char* open; +extern const char* open_only_area_and_rot90; +extern const char* open_only_pixel_type_and_bright; +extern const char* open_only_trace_params; +extern const char* save_as; +extern const char* need_only_1_filepath; +extern const char* loading_config_error; +extern const char* need_ext_txt; +extern const char* use_save_config_as; +extern const char* ask_overwrite; +extern const char* ask_save; +} // config + +namespace image { +extern const char* open; +extern const char* save_as; +extern const char* save_as_can_not_when_crop; +extern const char* no_image; +extern const char* need_extension; +extern const char* effects_error; +extern const char* save_error; +} // image + +namespace number { +extern const char* need_to_set_number; +} // number + +namespace scan_and_save { +extern const char* select_folder; +extern const char* not_scan_number; +extern const char* need_scan_save_name; +extern const char* select_number; +extern const char* bad_number; +extern const char* bad_scan_number; +extern const char* scan_error; +extern const char* rot_and_trace_and_enoise_error; +extern const char* redraw_error; +extern const char* can_not_get_save_path; +extern const char* can_not_save; +} // scan_and_save + +namespace trace_batch { +extern const char* add_config; +extern const char* too_many_selected; +} // trace_batch + +namespace trace_files { +extern const char* open_images; +extern const char* select_folder; +extern const char* not_trace_number; +extern const char* need_trace_open_name; +extern const char* need_trace_save_name; +extern const char* check_open_folder_and_filename; +extern const char* check_save_folder_and_filename; +extern const char* select_number; +extern const char* filename_without_head_or_number; +extern const char* empty_rename_filename; +extern const char* number_is_out_of_range; +extern const char* no_head_in_filepath; +extern const char* bad_extension_in_filepath; +extern const char* not_number_file; +extern const char* ask_do_trace; +extern const char* ask_do_not_trace; +extern const char* ask_and_erase_dot_noise; +extern const char* ask_rename; +extern const char* ask_renumber; +extern const char* input_new_level_name; +extern const char* input_new_start_number; +} // trace_files + +namespace fl_gl_image_view { +extern const char* need_image_head_name; +extern const char* need_extension_of_image; +} // fl_gl_image_view + +namespace quit { +extern const char* ask_quit; +} // quit + +} // gts_str + +#endif /* !gts_str_language_h */ diff --git a/sources/libcpp83gts_callback_and_action/gts_str_language_ja.cpp b/sources/libcpp83gts_callback_and_action/gts_str_language_ja.cpp new file mode 100644 index 0000000..a7148a1 --- /dev/null +++ b/sources/libcpp83gts_callback_and_action/gts_str_language_ja.cpp @@ -0,0 +1,189 @@ +#include "gts_str_language.h" + +namespace gts_str { + +namespace area_and_rot90 { +const char* offset_cm_x_big + = u8"最大範囲の右をはみ出したので左に寄せました"; +const char* offset_cm_x_small + = u8"最大範囲の左をはみ出したので右に寄せました"; +const char* offset_cm_y_big + = u8"最大範囲の下をはみ出したので上に寄せました"; +const char* offset_cm_y_small + = u8"最大範囲の上をはみ出したので下に寄せました"; +const char* size_cm_w_big + = u8"最大範囲の右をはみ出したので切り取りました"; +const char* size_cm_w_small + = u8"幅がマイナス値なのでゼロにリセットします"; +const char* size_cm_h_big + = u8"最大範囲の下をはみ出したので切り取りました"; +const char* size_cm_h_small + = u8"高さがマイナス値なのでゼロにリセットします"; +const char* dpi_out_of_range + = u8"DPIは%gから%gの範囲で指定してください"; +const char* crop_again + = u8"[サイズ設定]をし直してください"; +const char* bad_aspect_ratio_h + = u8"縦横比の高の値はゼロより大きい値が必要です"; +const char* bad_aspect_ratio_w + = u8"縦横比の幅の値はゼロより大きい値が必要です"; +const char* click_h_or_w_button + = u8"縦横比によるサイズ指定をするときは固定する幅か高どちらかのボタンを選択してください"; +const char* not_inside_then_limit + = u8"範囲をはみ出しているため制限します"; +const char* not_inside_then_limit_cancel + = u8"キャンセル"; +const char* not_inside_then_limit_size + = u8"大きさをカット"; +const char* not_inside_then_limit_dpi + = u8"DPIを上げる"; +} // area_and_rot90 + +namespace change_view { +const char* not_change + = u8"[サイズ設定]時は切替えできません"; +const char* no_image + = u8"画像がありません"; +const char* no_rgb_image + = u8"カラー(24ビット)画像が必要です"; +const char* view_setup_error + = u8"表示エラー"; +} // change_view + +namespace config { +const char* open + = u8"設定をファイルから読込み再現"; +const char* open_only_area_and_rot90 + = u8"「サイズと解像度」設定をファイルから読込み再現"; +const char* open_only_pixel_type_and_bright + = u8"「タイプ選択と明るさ」設定をファイルから読込み再現"; +const char* open_only_trace_params + = u8"「線の調整」設定をファイルから読込み再現"; +const char* save_as + = u8"設定を別名でファイルに保存"; +const char* need_only_1_filepath + = u8"複数のファイルを指定しています、一つだけ選択してください"; +const char* loading_config_error + = u8"設定ファイルを読込むのにエラーが起きました"; +const char* need_ext_txt + = u8"拡張子\".txt\"であるファイルを選んでください"; +const char* use_save_config_as + = u8"「設定 別名で保存...」で保存してください"; +const char* ask_overwrite + = u8"\"%s\"\n上書きしますか?"; +const char* ask_save + = u8"\"%s\"\n保存しますか?"; +} // config + +namespace image { +const char* open + = u8"画像を一枚ファイルから表示"; +const char* save_as + = u8"画像を(チェックのON/OFFによる処理後)一枚別名でファイルへ保存"; +const char* save_as_can_not_when_crop + = u8"[サイズ設定]状態では保存できません。プレビューするか画像ファイルを開いてください"; +const char* no_image + = u8"画像がありません(スキャンするかファイルを開いてください)"; +const char* need_extension + = u8"拡張子がありません"; +const char* effects_error + = u8"処理でエラーがありました"; +const char* save_error + = u8"ファイル保存するときエラーが起きました\n\"%s\""; +} // image + +namespace number { +const char* need_to_set_number + = u8"[セット]ボタンを押して「ナンバー」をセットしてください"; +} // number + +namespace scan_and_save { +const char* select_folder + = u8"連番スキャン画像を保存するフォルダーを選択する"; +const char* not_scan_number + = u8"「画像保存場所」で[セット]ボタンを押してください"; +const char* need_scan_save_name + = u8"連番スキャンの保存ファイル名を指定してください"; +const char* select_number + = u8"「ナンバー」を選択してください"; +const char* bad_number + = u8"開始番号が間違っています"; +const char* bad_scan_number + = u8"連番指定に問題があります"; +const char* scan_error + = u8"スキャンでエラーが起こりました"; +const char* rot_and_trace_and_enoise_error + = u8"処理でエラーが起こりました"; +const char* redraw_error + = u8"画像の再表示でエラーが起こりました"; +const char* can_not_get_save_path + = u8"指定番号でファイルパスを得ることができません"; +const char* can_not_save + = u8"ファイル保存でエラーが起こりました"; +} // scan_and_save + +namespace trace_batch { +const char* add_config + = u8"複数の設定ファイルを選択する"; +const char* too_many_selected + = u8"一つだけ選択してください(%d個選ばれています)"; +} // trace_batch + +namespace trace_files { +const char* open_images + = u8"一枚選択することで連番画像ファイルを開く"; +const char* select_folder + = u8"連番二値化画像を保存するフォルダーを選択する"; +const char* not_trace_number + = u8"「2値化バッチ」で[フォルダ名]、[ファイル名]を指定して[セット]ボタンを押してください"; +const char* need_trace_open_name + = u8"開くべき連番ファイル名がありません"; +const char* need_trace_save_name + = u8"保存する連番ファイル名がありません"; +const char* check_open_folder_and_filename + = u8"開くべきフォルダー名とファイル名を確認してください"; +const char* check_save_folder_and_filename + = u8"保存するフォルダー名とファイル名を確認してください"; +const char* select_number + = u8"「ナンバー」を選択してください"; +const char* filename_without_head_or_number + = u8"ファイル頭名あるいは番号がありません\n\'%s\'"; +const char* empty_rename_filename + = u8"ファイルパスエラー\ninn\"%s\"\nout\"%s\""; +const char* number_is_out_of_range + = u8"エラー\n%s\nから\n%s\nへの数値シフトだと連番が\n %s\nとなります。\n0から9999までの範囲になるように指定してください"; +const char* no_head_in_filepath + = u8"ファイル頭名がありません"; +const char* bad_extension_in_filepath + = u8"非対応の拡張子です(%s)"; +const char* not_number_file + = u8"連番ファイルではありません\n\"%s\""; +const char* ask_do_trace + = u8"2値化処理する"; +const char* ask_do_not_trace + = u8"2値化処理しない"; +const char* ask_and_erase_dot_noise + = u8"、ドットノイズ除去処理する"; +const char* ask_rename + = u8"リネーム実行します\n\"%s\"\nを\n\"%s\"\nに\n番号リスト\"%s\""; +const char* ask_renumber + = u8"リナンバー実行します\n\"%s\"\nを\n\"%s\"\nに\n番号リスト\"%s\""; +const char* input_new_level_name + = u8"新しいファイル(頭)名を入力してください"; +const char* input_new_start_number + = u8"連番の開始番号を指定してください"; +} // trace_files + +namespace fl_gl_image_view { +const char* need_image_head_name + = u8"ファイル頭名がありません"; +const char* need_extension_of_image + = u8"必要な拡張子ではありません(.tga/.tif/.txt)"; +} // fl_gl_image_view + +namespace quit { +const char* ask_quit + = u8"本当に終了しますか?(必要な保存をしたか確認してください)"; +} // quit + +} // gts_str diff --git a/sources/libcpp83gts_callback_and_action/iipg_scan.cpp b/sources/libcpp83gts_callback_and_action/iipg_scan.cpp index fe6b398..e817451 100644 --- a/sources/libcpp83gts_callback_and_action/iipg_scan.cpp +++ b/sources/libcpp83gts_callback_and_action/iipg_scan.cpp @@ -303,18 +303,6 @@ int gts_master::iipg_scan_get_scanner_info_( void ) this->cl_iip_scan.d_contrast() ); #endif - /* Area位置とサイズの初期設定をGUIに表示 */ - cl_gts_gui.valinp_area_offset_cm_x->value(0.0); - cl_gts_gui.valinp_area_offset_cm_y->value(0.0); - cl_gts_gui.valinp_area_size_cm_w->value( - cl_gts_gui.valout_scanner_size_cm_w->value() - ); - cl_gts_gui.valinp_area_size_cm_h->value( - cl_gts_gui.valout_scanner_size_cm_h->value() - ); - this->cl_area_and_rot90.getset_x_pixel_from_x_size(); - this->cl_area_and_rot90.getset_y_pixel_from_y_size(); - /* TWAIN閉じる */ if (OK != this->cl_iip_scan.close()) { pri_funct_err_bttvr( @@ -322,6 +310,36 @@ int gts_master::iipg_scan_get_scanner_info_( void ) return NG; } + if ( + /* まだ初期状態(gts_initial_configuration.txt内にArea設定がない) */ + ( cl_gts_gui.valinp_area_offset_cm_x->value() == 0 + && cl_gts_gui.valinp_area_offset_cm_y->value() == 0 + && cl_gts_gui.valinp_area_size_cm_w->value() == 0 + && cl_gts_gui.valinp_area_size_cm_h->value() == 0) + || + /* スキャナ最大範囲外(gts_initial_configuration.txt内Area設定が) */ + ( cl_gts_gui.valinp_area_offset_cm_x->value() < 0 + || cl_gts_gui.valinp_area_offset_cm_y->value() < 0 + || cl_gts_gui.valout_scanner_size_cm_w->value() < + (cl_gts_gui.valinp_area_offset_cm_x->value() + + cl_gts_gui.valinp_area_size_cm_w->value()) + || cl_gts_gui.valout_scanner_size_cm_h->value() < + (cl_gts_gui.valinp_area_offset_cm_y->value() + + cl_gts_gui.valinp_area_size_cm_h->value())) + ) { + /* Scan Areaをスキャナー最大範囲に初期設定する */ + cl_gts_gui.valinp_area_offset_cm_x->value(0.0); + cl_gts_gui.valinp_area_offset_cm_y->value(0.0); + cl_gts_gui.valinp_area_size_cm_w->value( + cl_gts_gui.valout_scanner_size_cm_w->value() + ); + cl_gts_gui.valinp_area_size_cm_h->value( + cl_gts_gui.valout_scanner_size_cm_h->value() + ); + this->cl_area_and_rot90.getset_x_pixel_from_x_size(); + this->cl_area_and_rot90.getset_y_pixel_from_y_size(); + } + return OK; } diff --git a/sources/libcpp83gts_callback_and_action/memory_config.h b/sources/libcpp83gts_callback_and_action/memory_config.h index f52c4f7..75b3957 100644 --- a/sources/libcpp83gts_callback_and_action/memory_config.h +++ b/sources/libcpp83gts_callback_and_action/memory_config.h @@ -41,6 +41,8 @@ class memory_config { "image_save_file_name") ,str_image_save_image_format_( "image_save_image_format") + ,str_image_save_as_set_scan_images_path_sw_( + "image_save_as_set_scan_images_path_sw") ,str_scan_filter_trace_sw_( "scan_filter_trace_sw") @@ -86,6 +88,10 @@ class memory_config { "level_num_end") ,str_scan_num_continue_type_( "scan_num_continue_type") + ,str_scan_num_continue_type_end_( + "End") + ,str_scan_num_continue_type_endless_( + "Endless") ,str_scan_num_continue_type_legacy2016_( "level_num_continue_type") ,str_scan_num_endless_direction_( @@ -167,6 +173,14 @@ class memory_config { "area_rotate_per_90") ,str_area_rotate_per_90_legacy2017_( "rotate_per_90") + ,str_area_rotate_cwm90_( + "CW_-90") + ,str_area_rotate_cw000_( + "CW_0") + ,str_area_rotate_cw090_( + "CW_90") + ,str_area_rotate_cw180_( + "CW_180") ,str_scanner_type_( "scanner_type") ,str_scanner_size_cm_w_( @@ -178,6 +192,12 @@ class memory_config { ,str_pixel_type_( "pixel_type") + ,str_pixel_type_bw_( + "BW") + ,str_pixel_type_grayscale_( + "Grayscale") + ,str_pixel_type_rgb_( + "RGB") ,str_bw_threshold_( "bw_threshold") ,str_grayscale_brightness_( @@ -389,6 +409,7 @@ class memory_config { const char* str_image_open_image_format_; const char* str_image_save_file_name_; const char* str_image_save_image_format_; + const char* str_image_save_as_set_scan_images_path_sw_; const char* str_scan_filter_trace_sw_; const char* str_scan_filter_trace_sw_legacy2017_; @@ -413,6 +434,8 @@ class memory_config { const char* str_scan_num_end_; const char* str_scan_num_end_legacy2016_; const char* str_scan_num_continue_type_; + const char* str_scan_num_continue_type_end_; + const char* str_scan_num_continue_type_endless_; const char* str_scan_num_continue_type_legacy2016_; const char* str_scan_num_endless_direction_; const char* str_scan_num_endless_direction_legacy2016_; @@ -455,12 +478,19 @@ class memory_config { const char* str_area_aspect_ratio_h_; const char* str_area_aspect_ratio_how_to_fix_; const char* str_area_rotate_per_90_; + const char* str_area_rotate_cwm90_; + const char* str_area_rotate_cw000_; + const char* str_area_rotate_cw090_; + const char* str_area_rotate_cw180_; const char* str_area_rotate_per_90_legacy2017_; const char* str_scanner_type_; const char* str_scanner_size_cm_w_; const char* str_scanner_size_cm_h_; const char* str_pixel_type_; + const char* str_pixel_type_bw_; + const char* str_pixel_type_grayscale_; + const char* str_pixel_type_rgb_; const char* str_bw_threshold_; const char* str_grayscale_brightness_; const char* str_grayscale_contrast_; @@ -596,6 +626,7 @@ class memory_config { bool load_trace_params_( std::vector< std::string >& words ); bool load_trace_batch_( std::vector< std::string >& words ); bool load_number_( std::vector< std::string >& words ); + void load_set_rotate_per_90_( const std::string& str ); }; #endif /* !memory_config_h */ diff --git a/sources/libcpp83gts_callback_and_action/memory_config_load.cpp b/sources/libcpp83gts_callback_and_action/memory_config_load.cpp index 0f01b38..226d336 100644 --- a/sources/libcpp83gts_callback_and_action/memory_config_load.cpp +++ b/sources/libcpp83gts_callback_and_action/memory_config_load.cpp @@ -13,46 +13,40 @@ #include "gts_gui.h" #include "gts_master.h" -namespace { //-------------------------------------------------------- - -void set_rotate_per_90_( const std::string& str1 ) +void memory_config::load_set_rotate_per_90_( const std::string& str ) { - if (isdigit(str1.c_str()[0])) { /* For Legacy...Delete sameday */ - cl_gts_gui.choice_rot90->value( std::stoi(str1) ); + if (isdigit(str.c_str()[0])) { /* For Legacy...Delete sameday */ + cl_gts_gui.choice_rot90->value( std::stoi(str) ); } - else { + /* 0=CW_-90 , 1=CW_0 , 2=CW_90 , 3=CW_180 0=CW_-90はScannerにとっての正対なのでこれ以外は回転処理必要 1=CW_0は作業者にとっての正対 */ - const Fl_Menu_Item *crnt = - cl_gts_gui.choice_rot90->find_item( str1.c_str() ); - if (crnt == nullptr) { - return; - } - cl_gts_gui.choice_rot90->value( crnt ); + else + if (str == this->str_area_rotate_cwm90_) { + cl_gts_gui.choice_rot90->value( + cl_gts_master.cl_area_and_rot90.cw270_type_value ); + } else + if (str == this->str_area_rotate_cw000_) { + cl_gts_gui.choice_rot90->value( + cl_gts_master.cl_area_and_rot90.cw000_type_value ); + } else + if (str == this->str_area_rotate_cw090_) { + cl_gts_gui.choice_rot90->value( + cl_gts_master.cl_area_and_rot90.cw090_type_value ); + } else + if (str == this->str_area_rotate_cw180_) { + cl_gts_gui.choice_rot90->value( + cl_gts_master.cl_area_and_rot90.cw180_type_value ); } + /* 設定したGUI値をメモリしとく */ cl_gts_master.cl_area_and_rot90.set_previous_choice_rot90( cl_gts_gui.choice_rot90->value() ); } -void set_pixel_type_( const std::string& str ) -{ - if (isdigit(str.c_str()[0])) {/* For Legacy Format...Delete sameday */ - cl_gts_gui.choice_pixel_type->value( - std::stoi(str) // use C++11,throw exception then error - ); - } - else { - cl_gts_master.cb_choice_pixel_type_title( str ); - } - - cl_gts_master.cb_choice_pixel_type_menu(); -} - -} // namespace ------------------------------------------------------- void memory_config::load_ifs_( std::ifstream& ifs @@ -190,6 +184,12 @@ bool memory_config::load_image_( std::vector< std::string >& words ) this->str_image_save_image_format_ == words.at(0) ) { cl_gts_master.cl_image.set_save_image_format( words.at(1) ); } + else if ( + this->str_image_save_as_set_scan_images_path_sw_ == words.at(0) + ) { + cl_gts_master.cl_image.save_as_set_scan_images_path_sw = + (words.at(1) == this->str_on_); + } else { return false; // not defined } @@ -273,7 +273,12 @@ bool memory_config::load_scan_and_save_( } else if ( (this->str_scan_num_continue_type_ == ke) || (this->str_scan_num_continue_type_legacy2016_ == ke) - ) { ss.cb_choice_and_num_continue_type( va ); + ) { + ss.cb_choice_and_num_continue_type( + (va == this->str_scan_num_continue_type_end_) + ? cl_gts_master.cl_number.end_type_value + : cl_gts_master.cl_number.endless_type_value + ); scan_num_continue_type_sw = true; } else if ( (this->str_scan_num_endless_direction_ == ke) @@ -401,7 +406,7 @@ bool memory_config::load_crop_area_and_rot90_( std::vector< std::string >& words else if ( (this->str_area_rotate_per_90_ == ke) || (this->str_area_rotate_per_90_legacy2017_ == ke) ) { - set_rotate_per_90_( va ); + this->load_set_rotate_per_90_( va ); } //---------- scanner info. ---------- @@ -432,7 +437,19 @@ bool memory_config::load_pixel_type_and_bright_(std::vector< std::string >& word const std::string& va = words.at(1); if ( ke == this->str_pixel_type_ ) { - set_pixel_type_( va ); + if (va == this->str_pixel_type_bw_) { + cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_title( + cl_gts_master.cl_pixel_type_and_bright.bw_type_value ); + } else + if (va == this->str_pixel_type_grayscale_) { + cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_title( + cl_gts_master.cl_pixel_type_and_bright.grayscale_type_value ); + } else + if (va == this->str_pixel_type_rgb_) { + cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_title( + cl_gts_master.cl_pixel_type_and_bright.rgb_type_value ); + } + cl_gts_master.cl_pixel_type_and_bright.cb_choice_pixel_type_menu(); cl_gts_master.cl_scan_and_save.set_gui_ext_list(); } else if ( ke == this->str_bw_threshold_ ) { @@ -1080,7 +1097,8 @@ int memory_config::load( const std::string& file_path ,const bool load_trace_bat !scan_num_continue_type_sw ) { cl_gts_master.cl_scan_and_save.cb_choice_and_num_continue_type( - "End" ); + cl_gts_master.cl_number.end_type_value + ); } /* Config各パラメータとは間接的な表示変更部分 */ diff --git a/sources/libcpp83gts_callback_and_action/memory_config_save.cpp b/sources/libcpp83gts_callback_and_action/memory_config_save.cpp index 6d5bdd2..62f1aa4 100644 --- a/sources/libcpp83gts_callback_and_action/memory_config_save.cpp +++ b/sources/libcpp83gts_callback_and_action/memory_config_save.cpp @@ -121,8 +121,15 @@ void memory_config::save_scan_and_save_( std::ofstream& ofs ) ,cl_gts_gui.valinp_scan_num_start->value() ,ofs ); save_fl64_( this->str_scan_num_end_ ,cl_gts_gui.valinp_scan_num_end->value() ,ofs ); - save_stri_( this->str_scan_num_continue_type_ - ,cl_gts_gui.choice_scan_num_continue_type->text() ,ofs); + { + const char* str_nu_ct_ty = ( + ( cl_gts_gui.choice_scan_num_continue_type->value() + == cl_gts_master.cl_number.end_type_value) + ? this->str_scan_num_continue_type_end_ + : this->str_scan_num_continue_type_endless_ + ); + save_stri_( this->str_scan_num_continue_type_ ,str_nu_ct_ty ,ofs); + } save_stri_( this->str_scan_num_endless_direction_ ,cl_gts_gui.choice_scan_num_endless_direction->text() ,ofs ); } @@ -182,8 +189,28 @@ void memory_config::save_crop_area_and_rot90_( std::ofstream& ofs ) ,cl_gts_gui.valinp_area_aspect_ratio_h->value() ,ofs ); save_stri_( this->str_area_aspect_ratio_how_to_fix_ ,cl_gts_gui.radbut_area_aspect_ratio_w->value()?"W":"H" ,ofs ); - save_stri_( this->str_area_rotate_per_90_ - ,cl_gts_gui.choice_rot90->text() ,ofs ); + + if (cl_gts_gui.choice_rot90->value() + == cl_gts_master.cl_area_and_rot90.cw270_type_value) { + save_stri_( this->str_area_rotate_per_90_ + , this->str_area_rotate_cwm90_ ,ofs ); + } else + if (cl_gts_gui.choice_rot90->value() + == cl_gts_master.cl_area_and_rot90.cw000_type_value) { + save_stri_( this->str_area_rotate_per_90_ + , this->str_area_rotate_cw000_ ,ofs ); + } else + if (cl_gts_gui.choice_rot90->value() + == cl_gts_master.cl_area_and_rot90.cw090_type_value) { + save_stri_( this->str_area_rotate_per_90_ + , this->str_area_rotate_cw090_ ,ofs ); + } else + if (cl_gts_gui.choice_rot90->value() + == cl_gts_master.cl_area_and_rot90.cw180_type_value) { + save_stri_( this->str_area_rotate_per_90_ + , this->str_area_rotate_cw180_ ,ofs ); + } + save_stri_( this->str_scanner_type_ ,cl_gts_gui.txtout_scanner_type->value() ,ofs ); save_fl64_( this->str_scanner_size_cm_w_ @@ -194,8 +221,21 @@ void memory_config::save_crop_area_and_rot90_( std::ofstream& ofs ) void memory_config::save_pixel_type_and_bright_( std::ofstream& ofs ) { ofs << "\n# " << cl_gts_gui.window_pixel_type_and_bright->label() << "\n"; - save_stri_( this->str_pixel_type_ - ,cl_gts_gui.choice_pixel_type->text() ,ofs ); + if (cl_gts_gui.choice_pixel_type->value() + == cl_gts_master.cl_pixel_type_and_bright.bw_type_value) { + save_stri_( this->str_pixel_type_ + , this->str_pixel_type_bw_ ,ofs ); + } else + if (cl_gts_gui.choice_pixel_type->value() == + cl_gts_master.cl_pixel_type_and_bright.grayscale_type_value) { + save_stri_( this->str_pixel_type_ + , this->str_pixel_type_grayscale_ ,ofs ); + } else + if (cl_gts_gui.choice_pixel_type->value() + == cl_gts_master.cl_pixel_type_and_bright.rgb_type_value) { + save_stri_( this->str_pixel_type_ + , this->str_pixel_type_rgb_ ,ofs ); + } save_fl64_( this->str_bw_threshold_ ,cl_gts_gui.valinp_bw_threshold->value() ,ofs ); diff --git a/sources/main/Makefile.vc b/sources/main/Makefile.vc index 5602eb9..8cd6c79 100644 --- a/sources/main/Makefile.vc +++ b/sources/main/Makefile.vc @@ -50,6 +50,7 @@ user32.lib gdi32.lib shell32.lib ole32.lib comdlg32.lib #------ TARG_CON = $(APPLICATION_NAME)_console.exe TARG = $(APPLICATION_NAME).exe +TARG_JA = $(APPLICATION_NAME)_ja.exe OBJS = $(SRCS:.cpp=.obj) DPATH_3RD_PARTY = ..\..\thirdparty DPATH_FLTK = $(DPATH_3RD_PARTY)\fltk\fltk-1.3.4-2 @@ -83,5 +84,7 @@ inst: copy gts_initial_configuration.txt $(DPATH_BINA) copy $(DPATH_REDIST)\msvcp140.dll $(DPATH_BINA) copy $(DPATH_REDIST)\vcruntime140.dll $(DPATH_BINA) +inst_ja: + move $(TARG) $(DPATH_BINA)\$(TARG_JA) inst_con: move $(TARG_CON) $(DPATH_BINA) diff --git a/sources/main/gts_initial_configuration.txt b/sources/main/gts_initial_configuration.txt index 530d79d..da7b654 100644 --- a/sources/main/gts_initial_configuration.txt +++ b/sources/main/gts_initial_configuration.txt @@ -1,5 +1,6 @@ # Config config_save_as_set_scan_images_path_sw ON +image_save_as_set_scan_images_path_sw ON # Scan and Save scan_save_dir_path "C:\" diff --git a/sources/main/main.cpp b/sources/main/main.cpp index 1006300..7d988e6 100644 --- a/sources/main/main.cpp +++ b/sources/main/main.cpp @@ -75,7 +75,7 @@ static int argument_analyzer( int argc, char *argv[], char *cp_comm, gts_master #ifdef PACKAGE_NAME gts_master cl_gts_master(PACKAGE_NAME, PACKAGE_VERSION, CONFIGURATION_DATE); # else -gts_master cl_gts_master( "gts" ,"2.5.1" ,"2019-04-22" ); +gts_master cl_gts_master( "gts" ,"2.5.1.059" ,"2019-07-03" ); # endif int main( int argc, char **argv ) diff --git a/sources/one_step_build_vc2017_additional_ja.bat b/sources/one_step_build_vc2017_additional_ja.bat new file mode 100644 index 0000000..0ce41d0 --- /dev/null +++ b/sources/one_step_build_vc2017_additional_ja.bat @@ -0,0 +1,22 @@ +rem +rem Compile 32Bits, because EPSON_TWAIN Driver is 32bits DLL +rem ------------------------ +title Microsoft Visual Studio 2017 C/C++ x86 /MD +call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" +rem ------------------------ +rem japanease version +rem +pushd libcpp83gts_callback_and_action +nmake /f Makefile_ja.vc all +if errorlevel 1 goto err +popd +pushd main +nmake /f Makefile.vc gts.exe inst_ja +if errorlevel 1 goto err +popd +rem ------------------------ +goto end +:err +echo ------------ Error ------------ +popd +:end