*restart
#include "hspda.as"
//-----------------------------------------------------
// L[ݒ
// https://quasiquote.org/hspwiki.cgi/HSP%25A4%25CETips:HSP%25A5%25AD%25A1%25BC%25A5%25B3%25A1%25BC%25A5%25C9%25C9%25BD
#const ZERO 48
#const ONE 49
#const TWO 50
#const THREE 51
#const FOUR 52
#const FIVE 53
#const SIX 54
#const SEVEN 55
#const EIGHT 56
#const NINE 57

#const MINUS 189
#const PERIOD 188
#const DOT 190

#const A 65
#const B 66
#const C 67
#const D 68
#const E 69
#const F 70
#const G 71
#const H 72
#const I 73
#const J 74
#const K 75
#const L 76
#const M 77
#const N 78
#const O 79
#const P 80
#const Q 81
#const R 82
#const S 83
#const T 84
#const U 85
#const V 86
#const W 87
#const X 88
#const Y 89
#const Z 90

#const ESC 27
#const TAB 9
#const CAPS 20
#const SHIFT_LEFT 160
#const SHIFT_RIGHT 161
#const CTRL_LEFT 162
#const CTRL_RIGHT 163
#const ALT 18
#const SPACE 32

#const MOUSE_L 1
#const MOUSE_M 4
#const MOUSE_R 2
#const MOUSE_S1 6
#const MOUSE_S2 5
//-----------------------------------------------------
//sEC pԍݒ
#const EMPTY 0
#const ENDNUM -10
#const NEXTNUM -1
//-----------------------------------------------------
//VXe֘A
#const NORMAL_WAIT 1
#const LIGHTWEIGHT_WAIT 2

VERSION = "Beta 0.24"
TITLE_NAME = "Keyboard Input Viewer " + VERSION
#packopt name "Keyboard_Input_Viewer_Beta_0_24"
#packopt type 0

//̂----
S_SET_X = 0
S_SET_Y = 0
g_setting_pos_x =  S_SET_X
g_setting_pos_y =  S_SET_Y
g_setting_add_x = 0
g_setting_add_y = 0
//--------------
//eXg@\----
g_key_input_history = ""
g_keyInputHistory_enable = 0 //0=Disable 1=Enable
g_key_input_history_view_x =  10
g_key_input_history_view_y = 180
g_key_input_history_byte_max = 21

//--------------

g_window_1_size = 1280, 720
g_window_2_size = 1280, 720

g_window_1_size_change = 600, 220

g_display_size = 1920, 1080

g_window_background_color = 0, 255, 0

g_window_front_enable = 0
g_window_active_type = 0 //0-1 = ʏEBhE / 2 = ݒʕ\ȊOOʕ\iݒʂŕύX邱ƂOj

g_key_pos_x = 0
g_key_pos_y = 0

g_key_offset_x = 10
g_key_offset_y = 10

g_key_size_x_normal = 30
g_key_size_y_normal = 30
g_key_size_x_tab = 45
g_key_size_x_caps = 55
g_key_size_x_shift = 65
g_key_size_x_ctrl = 55
g_key_size_x_alt = 55
g_key_size_x_space = 200

g_key_box_view = 0

g_key_margin_x = 2
g_key_margin_y = 2

g_key_color1 = 255, 255, 255
g_key_color2 =   0,   0,   0
g_key_color3 = 128, 128, 128

g_font_name = "CI"
g_font_size_per = 18
g_font_offset_x = -6
g_font_offset_y = -12

g_window_size_adjustment_x = -16
g_window_size_adjustment_y = -39

g_mouse_view_x = 420
g_mouse_view_y = 80
g_mouse_view_size_x = 160
g_mouse_view_size_y = 90
g_mouse_point_size_x = 2
g_mouse_point_size_y = 2

g_window_mode_lightweight_enable = 0 //0=Disable 1=Enable
g_window_wait = NORMAL_WAIT

*setting_set
//L[zu o^
g_key_id     = /**/0,EMPTY				,/*1*/ONE					,TWO				,THREE				,FOUR				,FIVE				,SIX				,SEVEN				,EIGHT				,NINE				,ZERO				,MINUS				,NEXTNUM			,/*2*/TAB			,Q					,W					,E					,R					,T					,Y					,U					,I					,O					,P					,NEXTNUM			,/*3*/CAPS			,A					,S					,D					,F					,G					,H					,J					,K					,L					,NEXTNUM			,/*4*/SHIFT_LEFT	,Z					,X					,C					,V					,B					,N					,M					,PERIOD				,DOT				,NEXTNUM		,/*5*/CTRL_LEFT		,ALT				,SPACE				,ENDNUM
g_key_size_x = /**/0,g_key_size_x_normal,/*1*/g_key_size_x_normal	,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,NEXTNUM			,g_key_size_x_tab	,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,NEXTNUM			,g_key_size_x_caps	,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,NEXTNUM			,g_key_size_x_shift	,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,g_key_size_x_normal,NEXTNUM		,g_key_size_x_ctrl	,g_key_size_x_alt	,g_key_size_x_space	,ENDNUM
g_key_name   = ""	,""					,"1"						,"2"				,"3"				,"4"				,"5"				,"6"				,"7"				,"8"				,"9"				,"0"				,"-"				,"None"				,"TAB"				,"Q"				,"W"				,"E"				,"R"				,"T"				,"Y"				,"U"				,"I"				,"O"				,"P"				,"None"				,"CAPS"				,"A"				,"S"				,"D"				,"F"				,"G"				,"H"				,"J"				,"K"				,"L"				,"None"				,"SHIFT"			,"Z"				,"X"				,"C"				,"V"				,"B"				,"N"				,"M"				,","				,"."				,"None"			,"CTRL"				,"ALT"				,"SPACE"			,"ENDNUM"

screen 0
gsel 0, -1

//-----------------------------------------------------
goto *main
//-----------------------------------------------------
//֐`

//L[\֐
#deffunc setKeyBox int l_x, int l_y, int l_sizeX, int l_sizeY, str l_name, int l_id
	flag = 0
	getKey flag, l_id
	if(l_id == EMPTY){
		r1 = g_key_color3(0)
		g1 = g_key_color3(1)
		b1 = g_key_color3(2)
		r2 = g_key_color3(0)
		g2 = g_key_color3(1)
		b2 = g_key_color3(2)
	}
	else:if(flag == 1){
		r1 = g_key_color1(0)
		g1 = g_key_color1(1)
		b1 = g_key_color1(2)
		r2 = g_key_color2(0)
		g2 = g_key_color2(1)
		b2 = g_key_color2(2)
		g_key_input_history = "[" + l_name + "]" + g_key_input_history
	}
	else{
		r1 = g_key_color2(0)
		g1 = g_key_color2(1)
		b1 = g_key_color2(2)
		r2 = g_key_color1(0)
		g2 = g_key_color1(1)
		b2 = g_key_color1(2)
	}
	color r1, g1, b1
	boxf l_x, l_y, l_x + l_sizeX, l_y + l_sizeY
	color r2, g2, b2
	if(g_key_box_view == 1){
		boxg l_x, l_y, l_x + l_sizeX, l_y + l_sizeY
	}
	font g_font_name, g_font_size_per
	pos l_x + (l_sizeX / 2) + (g_font_offset_x * strlen(l_name)), l_y + (l_sizeY / 2) + (g_font_offset_y)
	print l_name
return

//ĝ݋``֐
#deffunc boxg int l_x1, int l_y1, int l_x2, int l_y2
	line l_x1, l_y1, l_x2, l_y1
	line l_x2, l_y1, l_x2, l_y2
	line l_x2, l_y2, l_x1, l_y2
	line l_x1, l_y2, l_x1, l_y1
return

//GUI݌vp}[W֐iprint߂pos߂ƕpj
#deffunc settingMargin str l_type
	if(l_type == "default"){
		pos S_SET_X, S_SET_Y
	}
	else:if(l_type == "right"){
		g_setting_pos_x = g_setting_pos_x + g_setting_add_x
		pos g_setting_pos_x, g_setting_pos_y
	}
	else:if(l_type == "down"){
		g_setting_pos_y = g_setting_pos_y + g_setting_add_y
		g_setting_pos_x = S_SET_X
		pos g_setting_pos_x, g_setting_pos_y
	}
return

//}EX\֐
#deffunc mouseView int l_x, int l_y, int l_sizeX, int l_sizeY
	color g_key_color2(0), g_key_color2(1), g_key_color2(2)
	boxf l_x, l_y, l_x + l_sizeX, l_y + l_sizeY
	if(g_key_box_view == 1){
		color g_key_color1(0), g_key_color1(1), g_key_color1(2)
		boxg l_x, l_y, l_x + l_sizeX, l_y + l_sizeY
	}
	color g_key_color1(0), g_key_color1(1), g_key_color1(2)
	l_mouse_x = l_x + (ginfo(0) / (g_display_size(0) / l_sizeX))
	l_mouse_y = l_y + (ginfo(1) / (g_display_size(1) / l_sizeY))
	boxf l_mouse_x - g_mouse_point_size_x, l_mouse_y - g_mouse_point_size_y, l_mouse_x + g_mouse_point_size_x, l_mouse_y + g_mouse_point_size_y
	
	setKeyBox l_x, l_y + g_key_margin_y * -1, l_sizeX / 3, g_key_size_y_normal * -1, "ML", MOUSE_L
	setKeyBox (l_x + (l_sizeX / 3) * 1) + g_key_margin_x, l_y + g_key_margin_y * -1, (l_sizeX / 3) + g_key_margin_x * -2, g_key_size_y_normal * -1, "MM", MOUSE_M
	setKeyBox l_x + (l_sizeX / 3) * 2, l_y + g_key_margin_y * -1, l_sizeX / 3, g_key_size_y_normal * -1, "MR", MOUSE_R

	setKeyBox l_x + (g_key_margin_x * -1), l_y, g_key_size_x_normal * -1, (l_sizeY / 2) + (g_key_margin_y * -1), "S1", MOUSE_S1
	setKeyBox l_x + (g_key_margin_x * -1), l_y + (l_sizeY / 2), g_key_size_x_normal * -1, l_sizeY / 2, "S2", MOUSE_S2
return

//L[͗\֐
#deffunc setKeyInputHistory int l_x, int l_y, int l_size, int l_count_max
	if(strlen(g_key_input_history) > l_count_max){
		g_key_input_history = strmid(g_key_input_history, 0, strlen(g_key_input_history) - 1)
	}
	if(strlen(g_key_input_history) > l_count_max * 2){
		g_key_input_history = strmid(g_key_input_history, 0, strlen(g_key_input_history) - 10)
	}
	color g_key_color2(0), g_key_color2(1), g_key_color2(2)
	pos l_x, l_y:print "͗(eXg@\)[ " + g_key_input_history + " ...]"
return
//-----------------------------------------------------
*main
	cls
	screen 1, g_window_1_size(0), g_window_1_size(1), 0, -1, -1, g_window_1_size_change(0), g_window_1_size_change(1)
	if(g_window_front_enable == 0){
		g_window_active_type = 1
	}else:if(g_window_front_enable == 1){
		g_window_active_type = 2
	}
	gsel 1, g_window_active_type
	if(g_window_front_enable == 1){
		title TITLE_NAME + " | ɑOʕ\ON"
	}
	else{
		title TITLE_NAME
	}
	color g_window_background_color(0), g_window_background_color(1), g_window_background_color(2)
	boxf 0, 0, g_window_1_size(0), g_window_1_size(1)
	pos g_key_offset_x, g_key_offset_y : objsize g_key_size_x_normal, g_key_size_y_normal : button goto "ݒ", *setting

	g_key_input_history = ""
	if(g_window_mode_lightweight_enable == 0){
		g_window_wait = NORMAL_WAIT
	}
	else{
		g_window_wait = LIGHTWEIGHT_WAIT
	}
*start
	ii = 1
	g_key_pos_x = g_key_offset_x
	g_key_pos_y = g_key_offset_y
	redraw 0
	color g_window_background_color(0), g_window_background_color(1), g_window_background_color(2)
	boxf 0, 0, g_window_1_size(0), g_window_1_size(1)
	while 1
		mouseView g_mouse_view_x, g_mouse_view_y, g_mouse_view_size_x, g_mouse_view_size_y
		// setKeyBox 100, 10, 300, 300, "AA", A //sample
		if g_key_size_x(ii) == ENDNUM {ii = 1:_break}
		if g_key_size_x(ii) == NEXTNUM {g_key_pos_x = g_key_offset_x:g_key_pos_y = g_key_pos_y + g_key_size_y_normal + g_key_margin_y : ii = ii + 1}
		
		setKeyBox g_key_pos_x, g_key_pos_y, g_key_size_x(ii), g_key_size_y_normal, g_key_name(ii), g_key_id(ii)

		if(g_keyInputHistory_enable == 1){
			setKeyInputHistory g_key_input_history_view_x, g_key_input_history_view_y, 20, g_key_input_history_byte_max //----------------------------------------------------------------------------------------------
		}
		
		g_key_pos_x = g_key_pos_x + g_key_size_x(ii) + g_key_margin_x
		ii = ii + 1
	wend
	wait g_window_wait
	redraw 1
goto *start

screen 2, g_window_2_size(0), g_window_2_size(1)
pos 0,0:color 0,0,0:print "ُR[h"
dialog "ُ킪܂ (ċN܂)",0,"x"
goto *restart

*exit
	dialog "I܂H(ۑĂȂݒ͎܂)",2,"mF"
	if(stat == 7){return}
	end
	return

*setting_close
	gsel 2, -1
	//gsel 1, 0
	//g_window_1_size(0) = ginfo(10)
	//g_window_1_size(1) = ginfo(11)
	goto *setting_set
	
*reset
	dialog "ċN܂H(ݒ͏ݒɖ߂܂)",2,"mF"
	if(stat == 7){return}
	gsel 2, -1
	goto *restart
	return

*setting_save
	dialog "stf",17,"setting"
	if(stat == 1){
		vsave refstr
		dialog "ۑ܂ (ۑ" + refstr + ")",0,"mF"
	}
	return
	
*setting_load
	dialog "ݒǂݍ݂܂H (ݒ蒆̓e͎܂)",2,"mF"
	if(stat == 6){
		dialog "stf",16,"setting"
		if(stat == 1){
			vload refstr
			dialog "ǂݍ݂܂",0,"mF"
		}
	}
	goto *setting_after

*note
	exist "ReadMe.txt"
	if(strsize == -1){
		dialog "ReadMe.exe܂łB\n\n\tg̓ɂ͉e܂񂪁ApɊւLq܂܂邽\nt@C̗LmF邱Ƃ𐄏܂B",1 ,"x"
	}
	else{
		exec "ReadMe.txt", 16
	}
	return

*color_pallet_0
	dialog "",33 ,""
	if(stat == 1){
		g_window_background_color(0) = ginfo_r
		g_window_background_color(1) = ginfo_g
		g_window_background_color(2) = ginfo_b
	}
	goto *setting_after

*color_pallet_1
	dialog "",33 ,""
	if(stat == 1){
		g_key_color1(0) = ginfo_r
		g_key_color1(1) = ginfo_g
		g_key_color1(2) = ginfo_b
	}
	goto *setting_after
	
*color_pallet_2
	dialog "",33 ,""
	if(stat == 1){
		g_key_color2(0) = ginfo_r
		g_key_color2(1) = ginfo_g
		g_key_color2(2) = ginfo_b
	}
	goto *setting_after
	
*color_pallet_3
	dialog "",33 ,""
	if(stat == 1){
		g_key_color3(0) = ginfo_r
		g_key_color3(1) = ginfo_g
		g_key_color3(2) = ginfo_b
	}
	goto *setting_after
//-------------------------------------------------------------------------------------------
*setting
	gsel 1,1
	g_window_1_size_change = ginfo(10) + g_window_size_adjustment_x, ginfo(11) + g_window_size_adjustment_y
*setting_after
	screen 1, g_window_1_size_change(0), g_window_1_size_change(1)
	color 0,0,0
	boxf 0, 0, g_window_1_size_change(0), g_window_1_size_change(1)
	color 255,255,255
	pos 10, 10 : print "ݒ蒆̂ߔ\"
	screen 2, g_window_2_size(0), g_window_2_size(1)
	title "ݒ"
	
	//-------------------------------------------------------------------------------------------
	//1
	S_SET_X = 10
	S_SET_Y = 10
	g_setting_pos_x =  S_SET_X
	g_setting_pos_y =  S_SET_Y
	g_setting_add_x = 100
	g_setting_add_y =  24
	
	objsize g_setting_add_x, g_setting_add_y - 2
	
	settingMargin "default"
	print "EBhEwiF (0`255)" : settingMargin "right" : settingMargin "right" : button goto "FI", *color_pallet_0 : settingMargin "down"
	print ": N}L[p̔wiF" : settingMargin "down"
	print "R" : settingMargin "right" : input g_window_background_color(0) : settingMargin "down"
	print "G" : settingMargin "right" : input g_window_background_color(1) : settingMargin "down"
	print "B" : settingMargin "right" : input g_window_background_color(2) : settingMargin "down"
	settingMargin "down"
	print "L[J[1 (0`255)" : settingMargin "right" : settingMargin "right" : button goto "FI", *color_pallet_1 :  settingMargin "down"
	print ": ĂȂL[̕F / ̃L[̔wiF" : settingMargin "down"
	print "R" : settingMargin "right" : input g_key_color1(0) : settingMargin "down"
	print "G" : settingMargin "right" : input g_key_color1(1) : settingMargin "down"
	print "B" : settingMargin "right" : input g_key_color1(2) : settingMargin "down"
	settingMargin "down"
	print "L[J[2 (0`255)" : settingMargin "right" : settingMargin "right" : button goto "FI", *color_pallet_2 :  settingMargin "down"
	print ": ̃L[̕F / ĂȂL[̔wiF" : settingMargin "down"
	print "R" : settingMargin "right" : input g_key_color2(0) : settingMargin "down"
	print "G" : settingMargin "right" : input g_key_color2(1) : settingMargin "down"
	print "B" : settingMargin "right" : input g_key_color2(2) : settingMargin "down"
	settingMargin "down"
	print "L[J[ (0`255)" : settingMargin "right" : settingMargin "right" : button goto "FI", *color_pallet_3 :  settingMargin "down"
	print ": \͂Ă邪@\ĂȂL[̐F" : settingMargin "down"
	print "R" : settingMargin "right" : input g_key_color3(0) : settingMargin "down"
	print "G" : settingMargin "right" : input g_key_color3(1) : settingMargin "down"
	print "B" : settingMargin "right" : input g_key_color3(2) : settingMargin "down"
	settingMargin "down"
	chkbox "L[̘g\", g_key_box_view : settingMargin "down"
	settingMargin "down"
	
	objsize g_setting_add_x, g_setting_add_y * 2 - 2
	
	button goto "Kpĕ", *setting_close
	settingMargin "right"
	settingMargin "right"
	button gosub "ݒۑ", *setting_save
	settingMargin "right"
	button goto "ݒǂݍ", *setting_load
	settingMargin "right"
	settingMargin "right"
	button gosub "ċN", *reset
	settingMargin "right"
	button gosub "I", *exit
	settingMargin "right"
	settingMargin "right"
	button gosub "ReadMe", *note
	settingMargin "down"
	settingMargin "down"
	print "x͔zM\tgŕύXĂ / gpɊւĂ͎ȐӔCł肢܂ (p񏤗p킸gp(Asv))" : settingMargin "down"
	//-------------------------------------------------------------------------------------------
	//2
	S_SET_X = 510
	S_SET_Y = 10
	g_setting_pos_x =  S_SET_X
	g_setting_pos_y =  S_SET_Y
	g_setting_add_x = 100
	g_setting_add_y =  24

	objsize g_setting_add_x, g_setting_add_y - 2
	
	settingMargin "default"
	print "fBXvC̉𑜓xݒ" : settingMargin "down"
	input g_display_size(0) : settingMargin "right" : input g_display_size(1) : settingMargin "down"
	settingMargin "down"
	print "L[TCYύXX" : settingMargin "down"
	print "ʏ̃L[" : settingMargin "right" : input g_key_size_x_normal : settingMargin "down"
	print "TABL[" : settingMargin "right" : input g_key_size_x_tab : settingMargin "down"
	print "CAPSL[" : settingMargin "right" : input g_key_size_x_caps : settingMargin "down"
	print "SHIFTL[" : settingMargin "right" : input g_key_size_x_shift : settingMargin "down"
	print "CTRLL[" : settingMargin "right" : input g_key_size_x_ctrl : settingMargin "down"
	print "ALTL[" : settingMargin "right" : input g_key_size_x_alt : settingMargin "down"
	print "SPACEL[" : settingMargin "right" : input g_key_size_x_space : settingMargin "down"
	settingMargin "down"
	print "L[TCYύXY" : settingMargin "down"
	print "SL[" : settingMargin "right" : input g_key_size_y_normal : settingMargin "down"
	settingMargin "down"
	print "L[Ԃ̗]" : settingMargin "down"
	print "X" : settingMargin "right" : input g_key_margin_x : settingMargin "down"
	print "Y" : settingMargin "right" : input g_key_margin_y : settingMargin "down"
	settingMargin "down"
	print "EBhETCY" : settingMargin "down"
	print ": ݒʂɈړۂɃEBhETCYɕς" : settingMargin "down"
	print "@@: ꍇ͉L̒lύXĒĂ" : settingMargin "down"
	input g_window_size_adjustment_x : settingMargin "right" : input g_window_size_adjustment_y : settingMargin "down"
	chkbox "Oʕ\", g_window_front_enable : settingMargin "down"
	chkbox "yʃ[h", g_window_mode_lightweight_enable : settingMargin "down"
	
	//-------------------------------------------------------------------------------------------
	//3
	S_SET_X = 810
	S_SET_Y = 10
	g_setting_pos_x =  S_SET_X
	g_setting_pos_y =  S_SET_Y
	g_setting_add_x = 100
	g_setting_add_y =  24

	objsize g_setting_add_x, g_setting_add_y - 2
	
	settingMargin "default"
	print "gptHg(OvĂ)" : settingMargin "down"
	
	objsize g_setting_add_x * 4, g_setting_add_y - 2
	
	input g_font_name : settingMargin "down"
	
	objsize g_setting_add_x, g_setting_add_y - 2
	
	print "TCY" : settingMargin "right" : settingMargin "right" : input g_font_size_per : settingMargin "down"
	print "\ItZbgX" : settingMargin "right" : settingMargin "right" : input g_font_offset_x : settingMargin "down"
	print "\ItZbgY" : settingMargin "right" : settingMargin "right" : input g_font_offset_y : settingMargin "down"
	settingMargin "down"
	print "}EX\" : settingMargin "down"
	print "ʒuX" : settingMargin "right" : settingMargin "right" : input g_mouse_view_x : settingMargin "down"
	print "ʒuY" : settingMargin "right" : settingMargin "right" : input g_mouse_view_y : settingMargin "down"
	print "TCYX" : settingMargin "right" : settingMargin "right" : input g_mouse_view_size_x : settingMargin "down"
	print "TCYY" : settingMargin "right" : settingMargin "right" : input g_mouse_view_size_y : settingMargin "down"
	print "|C^[TCYX" : settingMargin "right" : settingMargin "right" : input g_mouse_point_size_x : settingMargin "down"
	print "|C^[TCYY" : settingMargin "right" : settingMargin "right" : input g_mouse_point_size_y : settingMargin "down"
	settingMargin "down"
	//eXg@\
	print "eXg@\isɂȂꍇ܂j" : settingMargin "down"
	chkbox "͗\", g_keyInputHistory_enable : settingMargin "down"
	print "L[͗\X" : settingMargin "right" : settingMargin "right" : input g_key_input_history_view_x : settingMargin "down"
	print "L[͗\Y" : settingMargin "right" : settingMargin "right" : input g_key_input_history_view_y : settingMargin "down"
	print "L[͗\ő吔" : settingMargin "right" : settingMargin "right" : input g_key_input_history_byte_max : settingMargin "right" : print "byte" : settingMargin "down"
	//-------------------------------------------------------------------------------------------