Subversion Repositories Kolibri OS

Rev

Rev 1432 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1432 Rev 1476
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;Basic macros for use editbox                             ;
2
;Basic macros for use editbox                             ;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
-
 
5
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
-
 
6
ed_top          equ [edi+8]             ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
-
 
7
ed_color        equ [edi+12]            ;梥â ä®­  ª®¬¯®­¥­â 
-
 
8
shift_color     equ [edi+16]            ;=0x6a9480 ¤«ï ¯à¨¬¥à  ¢®§ì¥¬ ¦¥«¥­ë© 梥⠡®ªá 
-
 
9
ed_focus_border_color   equ [edi+20]    ;梥â à ¬ª¨ ª®¬¯®­¥­â 
-
 
10
ed_blur_border_color    equ [edi+24]    ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
-
 
11
ed_text_color   equ [edi+28]            ;梥â ⥪áâ 
-
 
12
ed_max          equ [edi+32]                    ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
-
 
13
ed_text         equ [edi+36]                    ;㪠§ â¥«ì ­  ¡ãä¥à
-
 
14
ed_mouse_variable 	equ [edi+40]	; 㪠§ â¥«ì ­  ¯¥à¥¬¥­­ãî ¤«ï ¡®ªá /£à㯯ë 
-
 
15
ed_flags        equ [edi+44]            ;ä« £¨
-
 
16
bp_flags	equ [ebp+44]		;¢ ­¥ª®â®àëå ¯à®æ¥¤ãà å edi ¨á¯®«ì§ã¥âáï, ¢§ ¬¥­ 㪠§ â¥«ì åà ­¨âìáï ¢ ebp
-
 
17
ed_size equ [edi+48]                    ;ª®«-¢® ᨬ¢®«®¢
-
 
18
bp_size equ [ebp+48]			;ª®«-¢® ᨬ¢¯®«®¢, ¤«ï  ¤à¥á æ¨¨ ¨á¯«ì§ã¥âáï ebp¡ edi § ­ïâ
-
 
19
ed_pos  equ [edi+52]                    ;¯®§¨æ¨ï ªãàá®à 
-
 
20
ed_offset       equ [edi+56]            ;ᬥ饭¨¥
-
 
21
cl_curs_x       equ [edi+60]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
-
 
22
cl_curs_y       equ [edi+64]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
-
 
23
ed_shift_pos    equ [edi+68]            ;¯®«®¦¥­¨¥ ªãàá®à 
-
 
24
ed_shift_pos_old equ [edi+72]           ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
-
 
25
 
4
 
26
macro init_editbox
5
macro init_editbox
27
{
6
{
28
pushad
7
pushad
29
	mcall
8
	mcall
30
 
9
 
31
popad
10
popad
32
}
11
}
33
 
12
 
34
 
13
 
35
macro use_editbox_draw
14
macro use_editbox_draw
36
{
15
{
37
edit_box:
16
edit_box:
38
.draw:
17
.draw:
39
        pushad
18
        pushad
40
;--- à¨á㥬 à ¬ªã ---
19
;--- à¨á㥬 à ¬ªã ---
41
        mov     edi,dword [esp+36]
20
        mov     edi,dword [esp+36]
42
        call    .draw_border            ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
21
        call    .draw_border            ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
43
.draw_bg_cursor_text:
22
.draw_bg_cursor_text:
44
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥, ¥á«¨ ­ ¤® ---
23
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥, ¥á«¨ ­ ¤® ---
45
        call    .check_offset           ;¢ëç¨á«¥­¨¥ ¯®§¨æ¨¨ ªãàá®à  áâ ¡¨«ì­ 
24
        call    .check_offset           ;¢ëç¨á«¥­¨¥ ¯®§¨æ¨¨ ªãàá®à  áâ ¡¨«ì­ 
46
;--- à¨á㥬 ¢­ãâ७­îî ®¡« áâì ---
25
;--- à¨á㥬 ¢­ãâ७­îî ®¡« áâì ---
47
        call    .draw_bg                ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª à ¡®ç¥© ®¡« áâ¨
26
        call    .draw_bg                ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª à ¡®ç¥© ®¡« áâ¨
48
;---- à¨á㥬 ¢ë¤¥«¥­¨¥, ¯® shift ¥á«¨ ¥áâì
27
;---- à¨á㥬 ¢ë¤¥«¥­¨¥, ¯® shift ¥á«¨ ¥áâì
49
        call    .draw_shift
28
        call    .draw_shift
50
.draw_cursor_text:
29
.draw_cursor_text:
51
;--- à¨á㥬 ªãàá®à ---
30
;--- à¨á㥬 ªãàá®à ---
52
        ;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
31
        ;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
53
        test    word ed_flags,ed_focus
32
        test    word ed_flags,ed_focus
54
        jz     	@f
33
        jz     	@f
55
        call    .draw_cursor
34
        call    .draw_cursor
56
@@:
35
@@:
57
        call    .draw_text
36
        call    .draw_text
58
;        ret
37
;        ret
59
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
60
;Ž¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å ä㭪権 ¨ ¯®áâ ®¡à ¡®â稪®¢;;
39
;Ž¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å ä㭪権 ¨ ¯®áâ ®¡à ¡®â稪®¢;;
61
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
62
.editbox_exit:
41
.editbox_exit:
63
        popad
42
        popad
64
        ret 4
43
        ret 4
65
}
44
}
66
 
45
 
67
 
46
 
68
macro use_editbox_key
47
macro use_editbox_key
69
{
48
{
70
;==========================================================
49
;==========================================================
71
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
50
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
72
;==========================================================
51
;==========================================================
73
edit_box_key:
52
edit_box_key:
74
pushad
53
pushad
75
        mov     edi,dword [esp+36]
54
        mov     edi,dword [esp+36]
76
        test    word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
55
        test    word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
77
        je      edit_box.editbox_exit
56
        je      edit_box.editbox_exit
78
        test    word ed_flags,ed_mouse_on
57
        test    word ed_flags,ed_mouse_on
79
        jne     edit_box.editbox_exit
58
        jne     edit_box.editbox_exit
80
 
59
 
81
;à®¢¥àª  ­ ¦ â shift ?
60
;à®¢¥àª  ­ ¦ â shift ?
82
        call    edit_box_key.check_shift
61
        call    edit_box_key.check_shift
83
;----------------------------------------------------------
62
;----------------------------------------------------------
84
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
63
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
85
;----------------------------------------------------------
64
;----------------------------------------------------------
86
use_key_process  backspase,delete,left,right,home,end,insert
65
use_key_process  backspase,delete,left,right,home,end,insert
87
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
88
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
67
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
89
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90
use_key_no_process   up,down,esc,enter,tab,numl,capsl,scrolll
69
use_key_no_process   up,down,esc,enter,tab,numl,capsl,scrolll
91
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
70
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
92
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
71
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
93
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
72
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
94
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
73
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
95
use_key_figures_only
74
use_key_figures_only
96
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
75
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
97
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â
76
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â
98
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
77
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99
are_key_shift_press
78
are_key_shift_press
100
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
101
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
80
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
102
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
81
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
103
are_key_cur_end
82
are_key_cur_end
104
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
83
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
105
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right
84
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right
106
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
107
use_work_key
86
use_work_key
108
}
87
}
109
 
88
 
110
macro use_editbox_mouse
89
macro use_editbox_mouse
111
{
90
{
112
;==========================================================
91
;==========================================================
113
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
92
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
114
;==========================================================
93
;==========================================================
115
;save for stdcall ebx,esi,edi,ebp
94
;save for stdcall ebx,esi,edi,ebp
116
edit_box_mouse:
95
edit_box_mouse:
117
pushad
96
pushad
118
        mov     edi,dword [esp+36]
97
        mov     edi,dword [esp+36]
119
;debug
98
;debug
120
;----------------------------------------------------------
99
;----------------------------------------------------------
121
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
100
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
122
;----------------------------------------------------------
101
;----------------------------------------------------------
123
        mcall   37,2
102
        mcall   37,2
124
;----------------------------------------------------------
103
;----------------------------------------------------------
125
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
104
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
126
;----------------------------------------------------------
105
;----------------------------------------------------------
127
        test    eax,1
106
        test    eax,1
128
        jnz     edit_box_mouse.mouse_left_button
107
        jnz     edit_box_mouse.mouse_left_button
129
        and     word ed_flags,ed_mouse_on_off
108
        and     word ed_flags,ed_mouse_on_off
130
	mov	ebx,dword ed_mouse_variable
109
	mov	ebx,dword ed_mouse_variable
131
	push	0
110
	push	0
132
	pop	dword [ebx]
111
	pop	dword [ebx]
133
;        mov     dword [ebx],ebx
112
;        mov     dword [ebx],ebx
134
        jmp     edit_box.editbox_exit
113
        jmp     edit_box.editbox_exit
135
.mouse_left_button:
114
.mouse_left_button:
136
;----------------------------------------------------------
115
;----------------------------------------------------------
137
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
116
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
138
;----------------------------------------------------------
117
;----------------------------------------------------------
139
        mov     eax,dword ed_mouse_variable
118
        mov     eax,dword ed_mouse_variable
140
	push	dword [eax]
119
	push	dword [eax]
141
	pop	eax
120
	pop	eax
142
        test    eax,eax
121
        test    eax,eax
143
        jz      @f
122
        jz      @f
144
        cmp     eax,edi
123
        cmp     eax,edi
145
        je      @f
124
        je      @f
146
        jmp     edit_box_mouse._blur
125
        jmp     edit_box_mouse._blur
147
;----------------------------------------------------------
126
;----------------------------------------------------------
148
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
127
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
149
;----------------------------------------------------------
128
;----------------------------------------------------------
150
@@:     mcall   37,1
129
@@:     mcall   37,1
151
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
130
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152
;”ã­ªæ¨ï ®¡à ¡®âª¨  ¬ë誨 ¯®«ã祭¨¥ ª®®à¤¨­ â ¨ ¯à®¢¥àª  ¨å + ¢ë¤¥«¥­¨ï
131
;”ã­ªæ¨ï ®¡à ¡®âª¨  ¬ë誨 ¯®«ã祭¨¥ ª®®à¤¨­ â ¨ ¯à®¢¥àª  ¨å + ¢ë¤¥«¥­¨ï
153
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
132
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
154
use_work_mouse
133
use_work_mouse
155
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
134
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
156
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨
135
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨
157
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
136
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158
use_general_func
137
use_general_func
159
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
138
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160
;”㭪樨 ¤«ï à ¡®âë á key
139
;”㭪樨 ¤«ï à ¡®âë á key
161
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
140
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
162
use_key_func
141
use_key_func
163
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
142
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164
;”㭪樨 ¤«ï à ¡®âë á mouse
143
;”㭪樨 ¤«ï à ¡®âë á mouse
165
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
144
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
166
use_mouse_func 
145
use_mouse_func 
167
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
146
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
168
;Bit mask from editbox
147
;Bit mask from editbox
169
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
148
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
170
}
149
}
171
 
150
 
172
 
151
 
173
 
152
 
174
 
153
 
175
 
154
 
176
 
155
 
177
 
156
 
178
 
157
 
179
 
158
 
180
 
159
 
181
 
160
 
182
 
161
 
183
 
162
 
184
 
163
 
185
 
164
 
186
 
165
 
187
 
166
 
188
 
167
 
189
 
168
 
190
 
169
 
191
 
170
 
192
 
171
 
193
 
172
 
194
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
173
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
195
;­¨¦¥ à á¯®«®¦¥­ë ä㭪樨 ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì  «£®à¨â¬
174
;­¨¦¥ à á¯®«®¦¥­ë ä㭪樨 ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì  «£®à¨â¬
196
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
175
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
197
;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬
176
;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬
198
macro use_general_func
177
macro use_general_func
199
{
178
{
200
;debug_func
179
;debug_func
201
;----------------------------------------------------------
180
;----------------------------------------------------------
202
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­®© ç á⨠-----------------
181
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­®© ç á⨠-----------------
203
;----------------------------------------------------------
182
;----------------------------------------------------------
204
edit_box.draw_shift:
183
edit_box.draw_shift:
205
        test    word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
184
        test    word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
206
        jz      @f
185
        jz      @f
207
        mov     ebp,shift_color
186
        mov     ebp,shift_color
208
        mov     ebx,dword       ed_shift_pos
187
        mov     ebx,dword       ed_shift_pos
209
        call    edit_box_key.sh_cl_
188
        call    edit_box_key.sh_cl_
210
@@:     ret
189
@@:     ret
211
;----------------------------------------------------------
190
;----------------------------------------------------------
212
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ⥪áâ  --------------------------
191
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ⥪áâ  --------------------------
213
;----------------------------------------------------------
192
;----------------------------------------------------------
214
edit_box.draw_text:
193
edit_box.draw_text:
215
;--- ¢ëç¨á«ï¥¬, ᪮«ìª® ¯®¬¥é ¥âáï ᨬ¢®«®¢ ---
194
;--- ¢ëç¨á«ï¥¬, ᪮«ìª® ¯®¬¥é ¥âáï ᨬ¢®«®¢ ---
216
;--- çâ®¡ë ¬ãá®à ­¥ à¨á®¢ âì ---
195
;--- çâ®¡ë ¬ãá®à ­¥ à¨á®¢ âì ---
217
        call    edit_box.get_n
196
        call    edit_box.get_n
218
        mov     esi,ed_size
197
        mov     esi,ed_size
219
        mov     ebx,ed_offset
198
        mov     ebx,ed_offset
220
        sub     esi,ebx
199
        sub     esi,ebx
221
        cmp     eax,esi
200
        cmp     eax,esi
222
        jae     @F
201
        jae     @F
223
        mov     esi,eax         ;çâ®¡ë ­¥ ¢ë室¨âì §  ¯à¥¤¥«ë íªà ­ 
202
        mov     esi,eax         ;çâ®¡ë ­¥ ¢ë室¨âì §  ¯à¥¤¥«ë íªà ­ 
224
;--- à¨á㥬 ⥪áâ ---                                            
203
;--- à¨á㥬 ⥪áâ ---                                            
225
@@:     mov     eax,4
204
@@:     mov     eax,4
226
        mov     ebx,ed_left
205
        mov     ebx,ed_left
227
        mov     edx,ed_offset
206
        mov     edx,ed_offset
228
        add     ebx,2
207
        add     ebx,2
229
        shl     ebx,16
208
        shl     ebx,16
230
        add     ebx,ed_top
209
        add     ebx,ed_top
231
        mov     ecx,ed_text_color
210
        mov     ecx,ed_text_color
232
        add     ebx,4
211
        add     ebx,4
233
        add     edx,ed_text
212
        add     edx,ed_text
234
        mcall
213
        mcall
235
ret
214
ret
236
;----------------------------------------------------------
215
;----------------------------------------------------------
237
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ä®­  ----------------------------
216
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ä®­  ----------------------------
238
;¢å®¤­ë¥ ¤ ­­ë¥
217
;¢å®¤­ë¥ ¤ ­­ë¥
239
;eax
218
;eax
240
;edx - color
219
;edx - color
241
;----------------------------------------------------------
220
;----------------------------------------------------------
242
;¢å®¤ ⮫쪮 梥â edx
221
;¢å®¤ ⮫쪮 梥â edx
243
edit_box.draw_bg:
222
edit_box.draw_bg:
244
        mov     ebx,ed_left
223
        mov     ebx,ed_left
245
        add     ebx,1
224
        add     ebx,1
246
        mov     edx,ed_color
225
        mov     edx,ed_color
247
        shl     ebx,16
226
        shl     ebx,16
248
        add     ebx,ed_width
227
        add     ebx,ed_width
249
        sub     ebx,1
228
        sub     ebx,1
250
edit_box.draw_bg_eax:
229
edit_box.draw_bg_eax:
251
        mov     ecx,ed_top
230
        mov     ecx,ed_top
252
        mov     eax,13
231
        mov     eax,13
253
        add     ecx,1
232
        add     ecx,1
254
        shl     ecx,16
233
        shl     ecx,16
255
        add     ecx,ed_height
234
        add     ecx,ed_height
256
        dec     ecx
235
        dec     ecx
257
        mcall   
236
        mcall   
258
ret
237
ret
259
;----------------------------------------------------------
238
;----------------------------------------------------------
260
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â 
239
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â 
261
;----------------------------------------------------------
240
;----------------------------------------------------------
262
edit_box.get_n:
241
edit_box.get_n:
263
        mov     eax,ed_width    ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â 
242
        mov     eax,ed_width    ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â 
264
        xor     edx,edx   ;१ã«ìâ â à á¯®«®£ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª
243
        xor     edx,edx   ;१ã«ìâ â à á¯®«®£ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª
265
        sub     eax,4           ;¢ëç⨬ 4
244
        sub     eax,4           ;¢ëç⨬ 4
266
        mov     ebx,6           ;§ £à㧬¨ ¤¥«¨â¥«ì
245
        mov     ebx,6           ;§ £à㧬¨ ¤¥«¨â¥«ì
267
        div     ebx             ;à §¬¤¥«¨¬ ­  6
246
        div     ebx             ;à §¬¤¥«¨¬ ­  6
268
ret
247
ret
269
;----------------------------------------------------------
248
;----------------------------------------------------------
270
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  --------------------------
249
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  --------------------------
271
;----------------------------------------------------------
250
;----------------------------------------------------------
272
;¢å®¤­ë¥ ebp- 梥â
251
;¢å®¤­ë¥ ebp- 梥â
273
edit_box.clear_cursor:
252
edit_box.clear_cursor:
274
        mov     edx,ebp
253
        mov     edx,ebp
275
        mov     ebx,cl_curs_x
254
        mov     ebx,cl_curs_x
276
        mov     ecx,cl_curs_y
255
        mov     ecx,cl_curs_y
277
        jmp     edit_box.draw_curs
256
        jmp     edit_box.draw_curs
278
edit_box.draw_cursor:
257
edit_box.draw_cursor:
279
        mov     edx,ed_text_color
258
        mov     edx,ed_text_color
280
        mov     ebx,ed_pos
259
        mov     ebx,ed_pos
281
        mov     ecx,ed_offset
260
        mov     ecx,ed_offset
282
        sub     ebx,ecx
261
        sub     ebx,ecx
283
 
262
 
284
        lea     ebx,[ebx*2+ebx]
263
        lea     ebx,[ebx*2+ebx]
285
        shl     ebx,1
264
        shl     ebx,1
286
        ;imul   ebx,6
265
        ;imul   ebx,6
287
        add     ebx,ed_left
266
        add     ebx,ed_left
288
        mov     ecx,ed_top
267
        mov     ecx,ed_top
289
        inc     ebx
268
        inc     ebx
290
        add     ecx,2
269
        add     ecx,2
291
        mov     ebp,ebx
270
        mov     ebp,ebx
292
        shl     ebx,16
271
        shl     ebx,16
293
        mov     bx,bp
272
        mov     bx,bp
294
        mov     ebp,ecx
273
        mov     ebp,ecx
295
        
274
        
296
        shl     ecx,16
275
        shl     ecx,16
297
        mov     cx,bp
276
        mov     cx,bp
298
        add     ecx,ed_height-4
277
        add     ecx,ed_height-4
299
        
278
        
300
        mov     cl_curs_x,ebx
279
        mov     cl_curs_x,ebx
301
        mov     cl_curs_y,ecx
280
        mov     cl_curs_y,ecx
302
edit_box.draw_curs:              
281
edit_box.draw_curs:              
303
        mcall   38
282
        mcall   38
304
ret
283
ret
305
;----------------------------------------------------------
284
;----------------------------------------------------------
306
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï à ¬ª¨ ----------------------------
285
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï à ¬ª¨ ----------------------------
307
;----------------------------------------------------------
286
;----------------------------------------------------------
308
edit_box.draw_border:
287
edit_box.draw_border:
309
;--- 梥â à ¬ª¨ ---
288
;--- 梥â à ¬ª¨ ---
310
        test    word ed_flags,ed_focus
289
        test    word ed_flags,ed_focus
311
        mov     edx,ed_focus_border_color
290
        mov     edx,ed_focus_border_color
312
        jne     @f
291
        jne     @f
313
        mov     edx,ed_blur_border_color
292
        mov     edx,ed_blur_border_color
314
@@:
293
@@:
315
;--- ᢥàåã ---
294
;--- ᢥàåã ---
316
        mov     eax,38
295
        mov     eax,38
317
        mov     ebx,ed_left
296
        mov     ebx,ed_left
318
        mov     ecx,ebx
297
        mov     ecx,ebx
319
        shl     ebx,16
298
        shl     ebx,16
320
        mov     bx,cx
299
        mov     bx,cx
321
        add     ebx,ed_width
300
        add     ebx,ed_width
322
        mov     ecx,ed_top
301
        mov     ecx,ed_top
323
        mov     esi,ecx
302
        mov     esi,ecx
324
        shl     ecx,16
303
        shl     ecx,16
325
        mov     cx,si
304
        mov     cx,si
326
        mcall
305
        mcall
327
;--- á­¨§ã ---
306
;--- á­¨§ã ---
328
        mov     esi,ecx
307
        mov     esi,ecx
329
        add     ecx,ed_height
308
        add     ecx,ed_height
330
        mov     ebp,ecx
309
        mov     ebp,ecx
331
        shl     ecx,16
310
        shl     ecx,16
332
        mov     cx,bp
311
        mov     cx,bp
333
        mcall
312
        mcall
334
;--- á«¥¢  ---
313
;--- á«¥¢  ---
335
        mov     cx,si
314
        mov     cx,si
336
        mov     ebp,ebx
315
        mov     ebp,ebx
337
        sub     ebx,ed_width
316
        sub     ebx,ed_width
338
        mcall
317
        mcall
339
;--- á¯à ¢  ---
318
;--- á¯à ¢  ---
340
        mov     ebx,ebp
319
        mov     ebx,ebp
341
        shl     ebx,16
320
        shl     ebx,16
342
        mov     bx,bp
321
        mov     bx,bp
343
        mcall
322
        mcall
344
ret
323
ret
345
;----------------------------------------------------------
324
;----------------------------------------------------------
346
;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, ---
325
;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, ---
347
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------
326
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------
348
;--- ¥á«¨ ᬥ饭¨¥ ¡ë«® ãáâ ­®¢ª  ä« £  ed_offset_cl ¨­ ç¥
327
;--- ¥á«¨ ᬥ饭¨¥ ¡ë«® ãáâ ­®¢ª  ä« £  ed_offset_cl ¨­ ç¥
349
; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl
328
; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl
350
; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags
329
; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags
351
;----------------------------------------------------------
330
;----------------------------------------------------------
352
edit_box.check_offset:
331
edit_box.check_offset:
353
pushad
332
pushad
354
        mov     ecx,ed_pos
333
        mov     ecx,ed_pos
355
        mov     ebx,ed_offset
334
        mov     ebx,ed_offset
356
        cmp     ebx,ecx
335
        cmp     ebx,ecx
357
        ja      edit_box.sub_8
336
        ja      edit_box.sub_8
358
 
337
 
359
        push    ebx
338
        push    ebx
360
        call    edit_box.get_n                  ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ à¥ ॣ¨áâ஢ edx:eax 
339
        call    edit_box.get_n                  ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ à¥ ॣ¨áâ஢ edx:eax 
361
        pop     ebx
340
        pop     ebx
362
        mov     edx,ebx
341
        mov     edx,ebx
363
        add     edx,eax         ;ed_offset+width editbox
342
        add     edx,eax         ;ed_offset+width editbox
364
        inc     edx             ;­¥®¡å®¤¨¬® ¤«ï ­®¬ «ì­®£® ¯®«®¦¥­¨ï ªãàá®à  ¢ ªà ©­¥© «¥¢®© ¯®§¨æ¨¨
343
        inc     edx             ;­¥®¡å®¤¨¬® ¤«ï ­®¬ «ì­®£® ¯®«®¦¥­¨ï ªãàá®à  ¢ ªà ©­¥© «¥¢®© ¯®§¨æ¨¨
365
        cmp     edx,ecx
344
        cmp     edx,ecx
366
        ja      @f
345
        ja      @f
367
 
346
 
368
        mov     edx,ed_size
347
        mov     edx,ed_size
369
        cmp     edx,ecx
348
        cmp     edx,ecx
370
        je      edit_box.add_end
349
        je      edit_box.add_end
371
 
350
 
372
        sub     edx,ecx
351
        sub     edx,ecx
373
        cmp     edx,8
352
        cmp     edx,8
374
        jbe     edit_box.add_8
353
        jbe     edit_box.add_8
375
        add     ebx,8
354
        add     ebx,8
376
        jmp     edit_box.chk_d
355
        jmp     edit_box.chk_d
377
 
356
 
378
edit_box.sub_8:
357
edit_box.sub_8:
379
	cmp     ecx,0
358
	cmp     ecx,0
380
        je      edit_box.sub_min
359
        je      edit_box.sub_min
381
        cmp     ebx,8
360
        cmp     ebx,8
382
        jbe     edit_box.sub_min
361
        jbe     edit_box.sub_min
383
        sub     ebx,8   ;ebx=ed_offset
362
        sub     ebx,8   ;ebx=ed_offset
384
        jmp     edit_box.chk_d
363
        jmp     edit_box.chk_d
385
edit_box.sub_min:
364
edit_box.sub_min:
386
        xor     ebx,ebx
365
        xor     ebx,ebx
387
        jmp     edit_box.chk_d
366
        jmp     edit_box.chk_d
388
 
367
 
389
edit_box.add_end:sub    edx,eax
368
edit_box.add_end:sub    edx,eax
390
        mov     ebx,edx
369
        mov     ebx,edx
391
        jmp     edit_box.chk_d
370
        jmp     edit_box.chk_d
392
edit_box.add_8: add     ebx,edx
371
edit_box.add_8: add     ebx,edx
393
edit_box.chk_d: mov     ed_offset,ebx
372
edit_box.chk_d: mov     ed_offset,ebx
394
        call    edit_box.draw_bg
373
        call    edit_box.draw_bg
395
        and     word ed_flags,ed_offset_cl
374
        and     word ed_flags,ed_offset_cl
396
edit_ex
375
edit_ex
397
@@:
376
@@:
398
        or      word ed_flags,ed_offset_fl
377
        or      word ed_flags,ed_offset_fl
399
edit_ex
378
edit_ex
400
}
379
}
401
 
380
 
402
macro use_key_func
381
macro use_key_func
403
{
382
{
404
;Ž¡à ¡®âª  Shift ¤«ï á­ïâ¨ï ¢ë¤¥«¥­¨ï ­¥¨§¢¥áâ­®© ®¡« áâ¨
383
;Ž¡à ¡®âª  Shift ¤«ï á­ïâ¨ï ¢ë¤¥«¥­¨ï ­¥¨§¢¥áâ­®© ®¡« áâ¨
405
edit_box_key.shift: ;;;;;;;SHIFT
384
edit_box_key.shift: ;;;;;;;SHIFT
406
        test    word ed_flags,ed_shift
385
        test    word ed_flags,ed_shift
407
        je      edit_box_key.f_exit
386
        je      edit_box_key.f_exit
408
 
387
 
409
@@:     mov     ebp,shift_color
388
@@:     mov     ebp,shift_color
410
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
389
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
411
        mov     ebx,dword       ed_shift_pos
390
        mov     ebx,dword       ed_shift_pos
412
        call    edit_box_key.sh_cl_
391
        call    edit_box_key.sh_cl_
413
        jmp     edit_box.draw_cursor_text
392
        jmp     edit_box.draw_cursor_text
414
;;;;;;;;;;;;;;;;;;;;;
393
;;;;;;;;;;;;;;;;;;;;;
415
edit_box_key.f_exit:    call   edit_box.check_offset
394
edit_box_key.f_exit:    call   edit_box.check_offset
416
        and     word ed_flags,ed_shift_cl
395
        and     word ed_flags,ed_shift_cl
417
        call    edit_box_key.enable_null
396
        call    edit_box_key.enable_null
418
        jmp     edit_box.draw_cursor_text
397
        jmp     edit_box.draw_cursor_text
419
edit_box_key.sh_cl_:
398
edit_box_key.sh_cl_:
420
;;;;;;SHIFT end
399
;;;;;;SHIFT end
421
;®¡à ¡®âª  ®ç¨á⪨, ¯à¨ «¥¢®¬ - ¯à ¢®¬ ¤¢¨¦¥­¨¨ ¢ë¤¥«¥­¨ï
400
;®¡à ¡®âª  ®ç¨á⪨, ¯à¨ «¥¢®¬ - ¯à ¢®¬ ¤¢¨¦¥­¨¨ ¢ë¤¥«¥­¨ï
422
;¤«ï ®¡à ¡®âª¨ á­ïâ¨ï ¢ë¤¥«¥­¨ï
401
;¤«ï ®¡à ¡®âª¨ á­ïâ¨ï ¢ë¤¥«¥­¨ï
423
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
402
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
424
        mov     eax,dword       ed_pos
403
        mov     eax,dword       ed_pos
425
        cmp     eax,ebx
404
        cmp     eax,ebx
426
 
405
 
427
        jae     edit_box_key.sh_n
406
        jae     edit_box_key.sh_n
428
        push    eax  ;¬¥­ì襥 ¢ eax
407
        push    eax  ;¬¥­ì襥 ¢ eax
429
        push    ebx  ;¡®«ì襥
408
        push    ebx  ;¡®«ì襥
430
        jmp     edit_box_key.sh_n1
409
        jmp     edit_box_key.sh_n1
431
                     ;¥á«¨ ¨­ ç¥
410
                     ;¥á«¨ ¨­ ç¥
432
edit_box_key.sh_n:
411
edit_box_key.sh_n:
433
	push    ebx  
412
	push    ebx  
434
        push    eax
413
        push    eax
435
edit_box_key.sh_n1: 
414
edit_box_key.sh_n1: 
436
        call    edit_box.check_offset
415
        call    edit_box.check_offset
437
        call    edit_box.get_n
416
        call    edit_box.get_n
438
        mov     edx,eax ;size of ed_box
417
        mov     edx,eax ;size of ed_box
439
        mov     ecx,ed_offset
418
        mov     ecx,ed_offset
440
        add     eax,ecx ;eax = w_off= ed_offset+width
419
        add     eax,ecx ;eax = w_off= ed_offset+width
441
        mov     edx,eax ;save
420
        mov     edx,eax ;save
442
        pop     ebx     ;¡®«ì襥
421
        pop     ebx     ;¡®«ì襥
443
        pop     eax     ;¬¥­ì襥
422
        pop     eax     ;¬¥­ì襥
444
 
423
 
445
        cmp     eax,ecx         ;áà ¢­¥­¨¥ á ¬¥­ì襣® á offset.
424
        cmp     eax,ecx         ;áà ¢­¥­¨¥ á ¬¥­ì襣® á offset.
446
        jae     edit_box_key.f_f            ;¥á«¨ ¡®«ìè¥
425
        jae     edit_box_key.f_f            ;¥á«¨ ¡®«ìè¥
447
        xor     eax,eax
426
        xor     eax,eax
448
        cmp     edx,ebx         ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
427
        cmp     edx,ebx         ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
449
        jb      @f
428
        jb      @f
450
        sub     ebx,ecx
429
        sub     ebx,ecx
451
        jmp     edit_box_key.nxt_f
430
        jmp     edit_box_key.nxt_f
452
@@:     mov     ebx,edx
431
@@:     mov     ebx,edx
453
        sub     ebx,ecx 
432
        sub     ebx,ecx 
454
        jmp     edit_box_key.nxt_f
433
        jmp     edit_box_key.nxt_f
455
edit_box_key.f_f:   
434
edit_box_key.f_f:   
456
        sub     eax,ecx
435
        sub     eax,ecx
457
        cmp     edx,ebx         ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
436
        cmp     edx,ebx         ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
458
        jle     @f
437
        jle     @f
459
        sub     ebx,ecx
438
        sub     ebx,ecx
460
        sub     ebx,eax
439
        sub     ebx,eax
461
        jmp     edit_box_key.nxt_f
440
        jmp     edit_box_key.nxt_f
462
@@:
441
@@:
463
        mov     ebx,edx 
442
        mov     ebx,edx 
464
        sub     ebx,ecx
443
        sub     ebx,ecx
465
        sub     ebx,eax
444
        sub     ebx,eax
466
edit_box_key.nxt_f:
445
edit_box_key.nxt_f:
467
        mov     edx,ebx
446
        mov     edx,ebx
468
        lea     ebx,[eax*2+eax]
447
        lea     ebx,[eax*2+eax]
469
        shl     ebx,1
448
        shl     ebx,1
470
        add     ebx,ed_left
449
        add     ebx,ed_left
471
        inc     ebx
450
        inc     ebx
472
        shl     ebx,16
451
        shl     ebx,16
473
        lea     ecx,[edx*2+edx]
452
        lea     ecx,[edx*2+edx]
474
        shl     ecx,1   
453
        shl     ecx,1   
475
        mov     bx,cx
454
        mov     bx,cx
476
        inc     ebx
455
        inc     ebx
477
        mov     edx,ebp;shift_color
456
        mov     edx,ebp;shift_color
478
 
457
 
479
        call    edit_box.draw_bg_eax
458
        call    edit_box.draw_bg_eax
480
@@:     call    edit_box_key.enable_null
459
@@:     call    edit_box_key.enable_null
481
        ret
460
        ret
482
;;;;;;;;;;;;;;;;;;;;;
461
;;;;;;;;;;;;;;;;;;;;;
483
;“áâ ­®¢ª - á­ï⨥ ¢ë¤¥«¥­¨ï ¢ ®¤¨­ ᨬ¢®«
462
;“áâ ­®¢ª - á­ï⨥ ¢ë¤¥«¥­¨ï ¢ ®¤¨­ ᨬ¢®«
484
;;;;;;;;;;;;;;;;;;;;;
463
;;;;;;;;;;;;;;;;;;;;;
485
edit_box_key.drw_sim:
464
edit_box_key.drw_sim:
486
        mov     eax,dword       ed_pos
465
        mov     eax,dword       ed_pos
487
        call    edit_box_key.draw_rectangle   ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬
466
        call    edit_box_key.draw_rectangle   ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬
488
        jmp     @b
467
        jmp     @b
489
;;;;;;;;;;;;;;;;;;;;;
468
;;;;;;;;;;;;;;;;;;;;;
490
;”ãªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
469
;”ãªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
491
;‹®£¨ª : 
470
;‹®£¨ª : 
492
;;;;;;;;;;
471
;;;;;;;;;;
493
edit_box_key.draw_wigwag:
472
edit_box_key.draw_wigwag:
494
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
473
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
495
        mov     ebp,shift_color
474
        mov     ebp,shift_color
496
        call    edit_box.clear_cursor
475
        call    edit_box.clear_cursor
497
 
476
 
498
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
477
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
499
        mov     ebp,shift_color
478
        mov     ebp,shift_color
500
        mov     eax,dword       ed_pos
479
        mov     eax,dword       ed_pos
501
        test    word ed_flags,ed_left_fl
480
        test    word ed_flags,ed_left_fl
502
        jz      edit_box_key.low
481
        jz      edit_box_key.low
503
        jmp     @f
482
        jmp     @f
504
;;;;;;;;;;
483
;;;;;;;;;;
505
;”ãªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
484
;”ãªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
506
;‹®£¨ª : 
485
;‹®£¨ª : 
507
;;;;;;;;;;
486
;;;;;;;;;;
508
edit_box_key.draw_wigwag_cl:
487
edit_box_key.draw_wigwag_cl:
509
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
488
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
510
        mov     ebp,ed_color
489
        mov     ebp,ed_color
511
        call    edit_box.clear_cursor
490
        call    edit_box.clear_cursor
512
 
491
 
513
        mov     ebp,ed_color
492
        mov     ebp,ed_color
514
        mov     eax,dword       ed_pos
493
        mov     eax,dword       ed_pos
515
        test    word ed_flags,ed_left_fl
494
        test    word ed_flags,ed_left_fl
516
        jz      edit_box_key.low
495
        jz      edit_box_key.low
517
@@:     call    edit_box_key.draw_rectangle  ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª § ªà è¨¢ ¥¬®© ®¡« áâ¨
496
@@:     call    edit_box_key.draw_rectangle  ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª § ªà è¨¢ ¥¬®© ®¡« áâ¨
518
        ret
497
        ret
519
edit_box_key.low:   dec     eax
498
edit_box_key.low:   dec     eax
520
        jmp     @b
499
        jmp     @b
521
;¢å®¤­®© ¯ à ¬¥âà ebx - ed_pos
500
;¢å®¤­®© ¯ à ¬¥âà ebx - ed_pos
522
edit_box_key.sh_first_sh:
501
edit_box_key.sh_first_sh:
523
        test    word ed_flags,ed_shift
502
        test    word ed_flags,ed_shift
524
        je      @f
503
        je      @f
525
        mov     dword ed_shift_pos_old,ebx
504
        mov     dword ed_shift_pos_old,ebx
526
        test    word ed_flags,ed_shift_on
505
        test    word ed_flags,ed_shift_on
527
        jne     @f
506
        jne     @f
528
        mov     dword ed_shift_pos,ebx
507
        mov     dword ed_shift_pos,ebx
529
        or      word ed_flags,ed_shift_on
508
        or      word ed_flags,ed_shift_on
530
@@:     ret
509
@@:     ret
531
;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift
510
;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift
532
;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨¥, ¥á«¨ ­¥â shift
511
;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨¥, ¥á«¨ ­¥â shift
533
;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â
512
;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â
534
edit_box_key.sh_st_of:
513
edit_box_key.sh_st_of:
535
        test    word ed_flags,ed_shift
514
        test    word ed_flags,ed_shift
536
        jne     @f
515
        jne     @f
537
        test    word ed_flags,ed_shift_bac
516
        test    word ed_flags,ed_shift_bac
538
        je      @f
517
        je      @f
539
        mov     ebp,ed_color
518
        mov     ebp,ed_color
540
        mov     ebx,dword       ed_shift_pos
519
        mov     ebx,dword       ed_shift_pos
541
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
520
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
542
        and     word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥ 
521
        and     word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥ 
543
        jmp     edit_box.draw_cursor_text
522
        jmp     edit_box.draw_cursor_text
544
@@:
523
@@:
545
        and     word ed_flags,ed_shift_off
524
        and     word ed_flags,ed_shift_off
546
        popad
525
        popad
547
        ret     4
526
        ret     4
548
;¯à®¢¥àª  á®áâ®ï­¨ï shift ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥?
527
;¯à®¢¥àª  á®áâ®ï­¨ï shift ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥?
549
edit_box_key.sh_enable:
528
edit_box_key.sh_enable:
550
        test    word ed_flags,ed_shift
529
        test    word ed_flags,ed_shift
551
        jne     edit_box_key.sh_ext_en ;­ à¨á®¢ âì § ªà è¥­ë© ¯àאַ㣮«ì­¨ª
530
        jne     edit_box_key.sh_ext_en ;­ à¨á®¢ âì § ªà è¥­ë© ¯àאַ㣮«ì­¨ª
552
 
531
 
553
        test    word ed_flags,ed_shift_bac
532
        test    word ed_flags,ed_shift_bac
554
        je      @f
533
        je      @f
555
        call    edit_box.check_offset
534
        call    edit_box.check_offset
556
 
535
 
557
        mov     ebp,ed_color
536
        mov     ebp,ed_color
558
        mov     ebx,dword       ed_shift_pos
537
        mov     ebx,dword       ed_shift_pos
559
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
538
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
560
        call    edit_box_key.draw_wigwag_cl 
539
        call    edit_box_key.draw_wigwag_cl 
561
        and     word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­® 
540
        and     word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­® 
562
        ret
541
        ret
563
 
542
 
564
@@:     mov     ebp,ed_color
543
@@:     mov     ebp,ed_color
565
        call    edit_box.clear_cursor
544
        call    edit_box.clear_cursor
566
        call    edit_box.check_offset
545
        call    edit_box.check_offset
567
        ret
546
        ret
568
edit_box_key.sh_ext_en:     
547
edit_box_key.sh_ext_en:     
569
        call    edit_box.check_offset
548
        call    edit_box.check_offset
570
        test    word ed_flags,ed_offset_fl
549
        test    word ed_flags,ed_offset_fl
571
        je      @f
550
        je      @f
572
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
551
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
573
        mov     eax,dword       ed_shift_pos
552
        mov     eax,dword       ed_shift_pos
574
        mov     ebx,dword       ed_pos
553
        mov     ebx,dword       ed_pos
575
        mov     ecx,dword       ed_shift_pos_old
554
        mov     ecx,dword       ed_shift_pos_old
576
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
555
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
577
        cmp     eax,ecx
556
        cmp     eax,ecx
578
        je      edit_box_key.1_shem
557
        je      edit_box_key.1_shem
579
        jb      edit_box_key.smaller
558
        jb      edit_box_key.smaller
580
        cmp     ecx,ebx
559
        cmp     ecx,ebx
581
        ja      edit_box_key.1_shem
560
        ja      edit_box_key.1_shem
582
        call    edit_box_key.draw_wigwag_cl ;clear
561
        call    edit_box_key.draw_wigwag_cl ;clear
583
        jmp     edit_box_key.sh_e_end
562
        jmp     edit_box_key.sh_e_end
584
edit_box_key.smaller:
563
edit_box_key.smaller:
585
        cmp     ecx,ebx
564
        cmp     ecx,ebx
586
        jb      edit_box_key.1_shem
565
        jb      edit_box_key.1_shem
587
        call    edit_box_key.draw_wigwag_cl ;clear
566
        call    edit_box_key.draw_wigwag_cl ;clear
588
        jmp     edit_box_key.sh_e_end
567
        jmp     edit_box_key.sh_e_end
589
;alike  =
568
;alike  =
590
edit_box_key.1_shem:        call   edit_box_key.draw_wigwag
569
edit_box_key.1_shem:        call   edit_box_key.draw_wigwag
591
edit_box_key.sh_e_end:      and     word ed_flags,ed_shift_off
570
edit_box_key.sh_e_end:      and     word ed_flags,ed_shift_off
592
        ret
571
        ret
593
@@:     mov     ebp,shift_color
572
@@:     mov     ebp,shift_color
594
        mov     ebx,dword       ed_shift_pos
573
        mov     ebx,dword       ed_shift_pos
595
        call    edit_box_key.sh_cl_
574
        call    edit_box_key.sh_cl_
596
        jmp     edit_box_key.sh_e_end
575
        jmp     edit_box_key.sh_e_end
597
;äã­ªæ¨ï ¤«ï ®¡à ¡®âª¨ shift ¯à¨ ­ ¦ â¨¨ home and end
576
;äã­ªæ¨ï ¤«ï ®¡à ¡®âª¨ shift ¯à¨ ­ ¦ â¨¨ home and end
598
edit_box_key.sh_home_end:
577
edit_box_key.sh_home_end:
599
        mov     ebp,ed_color
578
        mov     ebp,ed_color
600
        call    edit_box.clear_cursor
579
        call    edit_box.clear_cursor
601
        test    word ed_flags,ed_shift_bac
580
        test    word ed_flags,ed_shift_bac
602
        je      @f
581
        je      @f
603
        mov     ebp,ed_color
582
        mov     ebp,ed_color
604
        mov     ebx,dword       ed_shift_pos_old
583
        mov     ebx,dword       ed_shift_pos_old
605
        call    edit_box_key.sh_cl_
584
        call    edit_box_key.sh_cl_
606
 
585
 
607
@@:     test    word ed_flags,ed_shift
586
@@:     test    word ed_flags,ed_shift
608
        je      edit_box_key.sh_exit_ ;¢ë©â¨
587
        je      edit_box_key.sh_exit_ ;¢ë©â¨
609
        mov     ebp,shift_color
588
        mov     ebp,shift_color
610
        mov     ebx,dword       ed_shift_pos
589
        mov     ebx,dword       ed_shift_pos
611
        call    edit_box_key.sh_cl_
590
        call    edit_box_key.sh_cl_
612
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
591
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
613
        jmp     edit_box_key.sh_e_end
592
        jmp     edit_box_key.sh_e_end
614
edit_box_key.sh_exit_:      
593
edit_box_key.sh_exit_:      
615
	call    edit_box.check_offset
594
	call    edit_box.check_offset
616
        ret
595
        ret
617
;äã­ªæ¨ï ¢­¥á¥­¨ï 0 ¯®  ¤à¥áã ed_size+1
596
;äã­ªæ¨ï ¢­¥á¥­¨ï 0 ¯®  ¤à¥áã ed_size+1
618
edit_box_key.enable_null:
597
edit_box_key.enable_null:
619
        pusha
598
        pusha
620
        mov     eax,ed_size
599
        mov     eax,ed_size
621
        mov     ebx,ed_text
600
        mov     ebx,ed_text
622
        test    eax,eax
601
        test    eax,eax
623
        add     eax,ebx
602
        add     eax,ebx
624
        jne     @f
603
        jne     @f
625
        inc     eax
604
        inc     eax
626
@@:     xor     ebx,ebx
605
@@:     xor     ebx,ebx
627
        mov     [eax],bl
606
        mov     [eax],bl
628
edit_ex
607
edit_ex
629
;- 㤠«¥­¨¥ ᨬ¢®« 
608
;- 㤠«¥­¨¥ ᨬ¢®« 
630
;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
609
;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
631
edit_box_key.del_char:
610
edit_box_key.del_char:
632
        mov     esi,ed_text
611
        mov     esi,ed_text
633
        test    word ed_flags,ed_shift_on
612
        test    word ed_flags,ed_shift_on
634
        je      @f
613
        je      @f
635
        mov     eax,dword ed_shift_pos
614
        mov     eax,dword ed_shift_pos
636
        mov     ebx,esi
615
        mov     ebx,esi
637
        cmp     eax,ecx
616
        cmp     eax,ecx
638
        jae     edit_box_key.dh_n
617
        jae     edit_box_key.dh_n
639
 
618
 
640
        mov     ed_pos,eax      ;çâ® ¡ë ­¥ ¡ë«® ã¡¥£ ­¨ï ªãàá®à 
619
        mov     ed_pos,eax      ;çâ® ¡ë ­¥ ¡ë«® ã¡¥£ ­¨ï ªãàá®à 
641
        mov     ebp,ecx
620
        mov     ebp,ecx
642
        sub     ebp,eax
621
        sub     ebp,eax
643
        add     ebx,eax  ;eax ¬¥­ìè¥ 
622
        add     ebx,eax  ;eax ¬¥­ìè¥ 
644
        sub     edx,ecx
623
        sub     edx,ecx
645
        add     esi,ecx
624
        add     esi,ecx
646
 
625
 
647
        mov     dword ed_shift_pos,ebp
626
        mov     dword ed_shift_pos,ebp
648
        jmp     edit_box_key.del_ch_sh
627
        jmp     edit_box_key.del_ch_sh
649
                     ;¥á«¨ ¨­ ç¥
628
                     ;¥á«¨ ¨­ ç¥
650
edit_box_key.dh_n:  
629
edit_box_key.dh_n:  
651
        mov     ebp,eax
630
        mov     ebp,eax
652
        sub     ebp,ecx
631
        sub     ebp,ecx
653
        add     ebx,ecx
632
        add     ebx,ecx
654
        sub     edx,eax
633
        sub     edx,eax
655
        add     esi,eax
634
        add     esi,eax
656
        mov     dword ed_shift_pos,ebp
635
        mov     dword ed_shift_pos,ebp
657
        jmp     edit_box_key.del_ch_sh
636
        jmp     edit_box_key.del_ch_sh
658
 
637
 
659
@@:     add     esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãää¥àã
638
@@:     add     esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãää¥àã
660
        mov     ebx,esi
639
        mov     ebx,esi
661
        inc     esi
640
        inc     esi
662
        cld
641
        cld
663
 
642
 
664
        sub     edx,ecx
643
        sub     edx,ecx
665
edit_box_key.del_ch_sh:
644
edit_box_key.del_ch_sh:
666
 
645
 
667
        push    edi
646
        push    edi
668
        mov     edi,ebx
647
        mov     edi,ebx
669
@@:
648
@@:
670
        lodsb
649
        lodsb
671
        stosb
650
        stosb
672
        dec edx
651
        dec edx
673
        jns @b
652
        jns @b
674
        
653
        
675
        pop edi
654
        pop edi
676
        ret
655
        ret
677
;¢ëç¨á«¨âì § ªà è¨¢ ¥¬ãî ®¡« áâì
656
;¢ëç¨á«¨âì § ªà è¨¢ ¥¬ãî ®¡« áâì
678
;ᮣ« è¥­¨¥ ¢ ebp - ¯¥à¥¤ ¥âáï ed_size
657
;ᮣ« è¥­¨¥ ¢ ebp - ¯¥à¥¤ ¥âáï ed_size
679
edit_box_key.clear_bg:
658
edit_box_key.clear_bg:
680
        call    edit_box.get_n  ;¯®«ãç¨âì à §¬¥à ¢ ᨬ¢®« å è¨à¨­ë ª®¬¯®­¥­â 
659
        call    edit_box.get_n  ;¯®«ãç¨âì à §¬¥à ¢ ᨬ¢®« å è¨à¨­ë ª®¬¯®­¥­â 
681
        push    eax
660
        push    eax
682
        mov     ebx,ed_offset
661
        mov     ebx,ed_offset
683
        add     eax,ebx ;eax = w_off= ed_offset+width
662
        add     eax,ebx ;eax = w_off= ed_offset+width
684
        mov     ebx,ebp ;ed_size
663
        mov     ebx,ebp ;ed_size
685
        
664
        
686
        cmp     eax,ebx
665
        cmp     eax,ebx
687
        jb      @f
666
        jb      @f
688
        mov     eax,ed_pos
667
        mov     eax,ed_pos
689
        sub     ebx,eax
668
        sub     ebx,eax
690
        mov     ecx,ed_offset
669
        mov     ecx,ed_offset
691
        sub     eax,ecx
670
        sub     eax,ecx
692
        jmp     edit_box_key.nxt
671
        jmp     edit_box_key.nxt
693
@@:     mov     ebx,ed_pos
672
@@:     mov     ebx,ed_pos
694
        push    ebx
673
        push    ebx
695
        sub     eax,ebx
674
        sub     eax,ebx
696
        mov     ebx,eax ;It is don't optimal
675
        mov     ebx,eax ;It is don't optimal
697
        
676
        
698
        pop     eax     ;ed_pos
677
        pop     eax     ;ed_pos
699
        mov     ecx,ed_offset
678
        mov     ecx,ed_offset
700
        sub     eax,ecx
679
        sub     eax,ecx
701
edit_box_key.nxt:
680
edit_box_key.nxt:
702
        mov     ebp,eax  ;¯à®¢¥àª  ­  ¢ë室 § ªà è¨¢ ¥¬®© ®¡« á⨠§  ¯à¥¤¥«ë ¤«¨­ë
681
        mov     ebp,eax  ;¯à®¢¥àª  ­  ¢ë室 § ªà è¨¢ ¥¬®© ®¡« á⨠§  ¯à¥¤¥«ë ¤«¨­ë
703
        add     ebp,ebx
682
        add     ebp,ebx
704
        pop     edx
683
        pop     edx
705
        cmp     ebp,edx
684
        cmp     ebp,edx
706
        je      @f
685
        je      @f
707
        inc     ebx
686
        inc     ebx
708
 
687
 
709
@@:     mov     edx,ebx
688
@@:     mov     edx,ebx
710
        lea     ebx,[eax*2+eax]
689
        lea     ebx,[eax*2+eax]
711
        shl     ebx,1
690
        shl     ebx,1
712
        add     ebx,ed_left
691
        add     ebx,ed_left
713
        inc     ebx
692
        inc     ebx
714
        shl     ebx,16
693
        shl     ebx,16
715
        lea     ecx,[edx*2+edx]
694
        lea     ecx,[edx*2+edx]
716
        shl     ecx,1   
695
        shl     ecx,1   
717
        mov     bx,cx
696
        mov     bx,cx
718
        mov     edx,ed_color
697
        mov     edx,ed_color
719
        call    edit_box.draw_bg_eax
698
        call    edit_box.draw_bg_eax
720
        ret
699
        ret
721
;;;;;;;;;;;;;;;;;;;
700
;;;;;;;;;;;;;;;;;;;
722
;;; Ž¡à ¡®âª  ¯à¨¬¨â¨¢®¢
701
;;; Ž¡à ¡®âª  ¯à¨¬¨â¨¢®¢
723
;;;;;;;;;;;;;;;;;;;;
702
;;;;;;;;;;;;;;;;;;;;
724
; à¨á®¢ âì ¯àאַ㣮«ì­¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp
703
; à¨á®¢ âì ¯àאַ㣮«ì­¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp
725
;¢å®¤­ë¥ ¯ à ¬¥âàë:
704
;¢å®¤­ë¥ ¯ à ¬¥âàë:
726
;eax=dword ed_pos
705
;eax=dword ed_pos
727
;ebp=-梥â ed_color or shift_color 
706
;ebp=-梥â ed_color or shift_color 
728
edit_box_key.draw_rectangle:
707
edit_box_key.draw_rectangle:
729
        mov     ecx,dword ed_offset
708
        mov     ecx,dword ed_offset
730
        sub     eax,ecx
709
        sub     eax,ecx
731
        lea     ebx,[eax*2+eax]
710
        lea     ebx,[eax*2+eax]
732
        shl     ebx,1
711
        shl     ebx,1
733
        inc     ebx
712
        inc     ebx
734
        add     ebx,ed_left
713
        add     ebx,ed_left
735
        shl     ebx,16
714
        shl     ebx,16
736
        add     ebx,6
715
        add     ebx,6
737
        mov     edx,ebp
716
        mov     edx,ebp
738
        call    edit_box.draw_bg_eax
717
        call    edit_box.draw_bg_eax
739
        ret
718
        ret
740
;;;;;;;;;;;;;;;;;;
719
;;;;;;;;;;;;;;;;;;
741
;;à®¢¥àª  ­ ¦ â «¨ shift
720
;;à®¢¥àª  ­ ¦ â «¨ shift
742
;;;;;;;;;;;;;;;;;;
721
;;;;;;;;;;;;;;;;;;
743
edit_box_key.check_shift:
722
edit_box_key.check_shift:
744
pusha   ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
723
pusha   ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
745
        mcall   66,3
724
        mcall   66,3
746
        test    al,0x03
725
        test    al,0x03
747
        je      @f
726
        je      @f
748
        or      word ed_flags,ed_shift   ;ãáâ ­®¢¨¬ ä« £
727
        or      word ed_flags,ed_shift   ;ãáâ ­®¢¨¬ ä« £
749
@@:edit_ex
728
@@:edit_ex
750
}
729
}
751
;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï 
730
;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï 
752
macro use_key_process backspase,delete,left,right,home,end,insert
731
macro use_key_process backspase,delete,left,right,home,end,insert
753
{
732
{
754
if backspase eq 
733
if backspase eq 
755
else
734
else
756
        cmp     ah,8
735
        cmp     ah,8
757
        jz      edit_box_key.backspace
736
        jz      edit_box_key.backspace
758
end if
737
end if
759
if delete eq 
738
if delete eq 
760
else
739
else
761
        cmp     ah,0xb6
740
        cmp     ah,0xb6
762
        jz      edit_box_key.delete
741
        jz      edit_box_key.delete
763
end if
742
end if
764
if left eq 
743
if left eq 
765
else
744
else
766
        cmp     ah,176
745
        cmp     ah,176
767
        jz      edit_box_key.left
746
        jz      edit_box_key.left
768
end if
747
end if
769
if right eq 
748
if right eq 
770
else
749
else
771
        cmp     ah,179
750
        cmp     ah,179
772
        jz      edit_box_key.right
751
        jz      edit_box_key.right
773
end if
752
end if
774
if home eq 
753
if home eq 
775
else
754
else
776
        cmp     ah,180
755
        cmp     ah,180
777
        jz      edit_box_key.home
756
        jz      edit_box_key.home
778
end if
757
end if
779
if home eq 
758
if home eq 
780
else
759
else
781
        cmp     ah,181
760
        cmp     ah,181
782
        jz      edit_box_key.end
761
        jz      edit_box_key.end
783
end if
762
end if
784
if insert eq 
763
if insert eq 
785
else
764
else
786
        cmp     ah,185  ;insert
765
        cmp     ah,185  ;insert
787
        jz      edit_box_key.insert
766
        jz      edit_box_key.insert
788
end if
767
end if
789
}
768
}
790
 
769
 
791
macro use_key_no_process  up,down,esc,enter,tab,numl,capsl,scrolll
770
macro use_key_no_process  up,down,esc,enter,tab,numl,capsl,scrolll
792
{
771
{
793
if up eq 
772
if up eq 
794
else
773
else
795
        cmp     ah,177
774
        cmp     ah,177
796
        jz      edit_box.editbox_exit
775
        jz      edit_box.editbox_exit
797
end if
776
end if
798
if down eq 
777
if down eq 
799
else
778
else
800
        cmp     ah,178
779
        cmp     ah,178
801
        jz      edit_box.editbox_exit
780
        jz      edit_box.editbox_exit
802
end if
781
end if
803
if esc eq 
782
if esc eq 
804
else
783
else
805
        cmp     ah,27   ;ESC - ª« ¢¨è  ))
784
        cmp     ah,27   ;ESC - ª« ¢¨è  ))
806
        jz      edit_box.editbox_exit
785
        jz      edit_box.editbox_exit
807
end if
786
end if
808
if enter eq 
787
if enter eq 
809
else
788
else
810
        cmp     ah,13   ;ENTER - ª« ¢¨è  ))
789
        cmp     ah,13   ;ENTER - ª« ¢¨è  ))
811
        jz      edit_box.editbox_exit
790
        jz      edit_box.editbox_exit
812
end if
791
end if
813
if tab eq 
792
if tab eq 
814
else
793
else
815
        cmp     ah,9   ;TAB - ª« ¢¨è  ))
794
        cmp     ah,9   ;TAB - ª« ¢¨è  ))
816
        jz      edit_box.editbox_exit
795
        jz      edit_box.editbox_exit
817
end if
796
end if
818
 
797
 
819
if numl eq 
798
if numl eq 
820
else
799
else
821
        cmp     ah,4   ;Num Lock - ª« ¢¨è  ))
800
        cmp     ah,4   ;Num Lock - ª« ¢¨è  ))
822
        jz      edit_box.editbox_exit
801
        jz      edit_box.editbox_exit
823
end if
802
end if
824
 
803
 
825
if capsl eq 
804
if capsl eq 
826
else
805
else
827
        cmp     ah,2   ;Caps Lock - ª« ¢¨è  ))
806
        cmp     ah,2   ;Caps Lock - ª« ¢¨è  ))
828
        jz      edit_box.editbox_exit
807
        jz      edit_box.editbox_exit
829
end if
808
end if
830
 
809
 
831
if scrolll eq 
810
if scrolll eq 
832
else
811
else
833
        cmp     ah,1   ;Scroll Lock - ª« ¢¨è  ))
812
        cmp     ah,1   ;Scroll Lock - ª« ¢¨è  ))
834
        jz      edit_box.editbox_exit
813
        jz      edit_box.editbox_exit
835
end if
814
end if
836
 
815
 
837
}
816
}
838
 
817
 
839
macro use_key_figures_only
818
macro use_key_figures_only
840
{
819
{
841
        test    word ed_flags,ed_figure_only  ; ⮫쪮 æ¨äàë ?
820
        test    word ed_flags,ed_figure_only  ; ⮫쪮 æ¨äàë ?
842
        jz      @f
821
        jz      @f
843
        cmp     ah,'0'
822
        cmp     ah,'0'
844
        jb      edit_box.editbox_exit
823
        jb      edit_box.editbox_exit
845
        cmp     ah,'9'
824
        cmp     ah,'9'
846
        ja      edit_box.editbox_exit
825
        ja      edit_box.editbox_exit
847
@@:
826
@@:
848
}
827
}
849
macro are_key_shift_press
828
macro are_key_shift_press
850
{
829
{
851
        test    word ed_flags,ed_shift_on
830
        test    word ed_flags,ed_shift_on
852
        je      @f
831
        je      @f
853
        ;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
832
        ;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
854
        push    eax
833
        push    eax
855
        mov     edx,ed_size
834
        mov     edx,ed_size
856
        mov     ecx, ed_pos
835
        mov     ecx, ed_pos
857
        pusha
836
        pusha
858
;;;;;;;;;;;;;;;;;;;;;
837
;;;;;;;;;;;;;;;;;;;;;
859
;clear input arrea
838
;clear input arrea
860
        mov     ebp,ed_color
839
        mov     ebp,ed_color
861
        mov     ebx,dword       ed_shift_pos
840
        mov     ebx,dword       ed_shift_pos
862
        call    edit_box_key.sh_cl_
841
        call    edit_box_key.sh_cl_
863
        mov     ebp,ed_size
842
        mov     ebp,ed_size
864
        call    edit_box_key.clear_bg
843
        call    edit_box_key.clear_bg
865
;;;;;;;;;;;;;;;;;;;;;
844
;;;;;;;;;;;;;;;;;;;;;
866
        popa 
845
        popa 
867
        call    edit_box_key.del_char
846
        call    edit_box_key.del_char
868
;;;;
847
;;;;
869
        mov     eax,dword ed_shift_pos
848
        mov     eax,dword ed_shift_pos
870
        mov     ebx,ed_size
849
        mov     ebx,ed_size
871
        sub     ebx,eax
850
        sub     ebx,eax
872
        mov     ed_size,ebx
851
        mov     ed_size,ebx
873
        pop     eax
852
        pop     eax
874
@@:
853
@@:
875
}
854
}
876
macro are_key_cur_end
855
macro are_key_cur_end
877
{
856
{
878
        mov     ecx,ed_size
857
        mov     ecx,ed_size
879
        mov     edx, ed_max
858
        mov     edx, ed_max
880
        test    word ed_flags,ed_insert
859
        test    word ed_flags,ed_insert
881
        jne     @f
860
        jne     @f
882
        cmp     ecx,edx
861
        cmp     ecx,edx
883
        jae     edit_box.editbox_exit
862
        jae     edit_box.editbox_exit
884
@@:     mov     ebx, ed_pos
863
@@:     mov     ebx, ed_pos
885
        cmp     ebx,edx
864
        cmp     ebx,edx
886
        jl      @f ; ¥á«¨ ¬¥­ìè¥ ¨«¨ à ¢­®
865
        jl      @f ; ¥á«¨ ¬¥­ìè¥ ¨«¨ à ¢­®
887
        jmp     edit_box.editbox_exit
866
        jmp     edit_box.editbox_exit
888
 
867
 
889
@@:     ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à  ¢¯à ¢®
868
@@:     ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à  ¢¯à ¢®
890
        mov     ecx,ed_size
869
        mov     ecx,ed_size
891
        push    edi eax
870
        push    edi eax
892
        mov     ebp,edi
871
        mov     ebp,edi
893
        mov     esi,ed_text     ; “ª § â¥«ì ­  ¡ãä¥à
872
        mov     esi,ed_text     ; “ª § â¥«ì ­  ¡ãä¥à
894
                                ;ã¤¥¬ à ¡®â âì á® áâப®©
873
                                ;ã¤¥¬ à ¡®â âì á® áâப®©
895
        add     esi,ecx         ;add ed_size ¤®¡ ¢¨¬ max size
874
        add     esi,ecx         ;add ed_size ¤®¡ ¢¨¬ max size
896
        mov     edi,esi
875
        mov     edi,esi
897
 
876
 
898
        cmp     ecx,ebx         ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
877
        cmp     ecx,ebx         ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
899
        je      edit_box_key.In_k
878
        je      edit_box_key.In_k
900
 
879
 
901
        test    dword bp_flags,ed_insert ;IF insert is enable  â.ª. edi ¨§¬¥­¥­  ¤à¥á㥬 ç¥à¥§ ebp
880
        test    dword bp_flags,ed_insert ;IF insert is enable  â.ª. edi ¨§¬¥­¥­  ¤à¥á㥬 ç¥à¥§ ebp
902
        jne     edit_box_key.ins_v
881
        jne     edit_box_key.ins_v
903
;clear
882
;clear
904
pusha
883
pusha
905
        mov     edi,ebp
884
        mov     edi,ebp
906
        mov     ebp,ed_size
885
        mov     ebp,ed_size
907
        call    edit_box_key.clear_bg
886
        call    edit_box_key.clear_bg
908
popa
887
popa
909
        sub     ecx,ebx         ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥­¨ï.
888
        sub     ecx,ebx         ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥­¨ï.
910
        inc     edi             ;‘¬¥á⨬ ­ è¨ ᨬ¢®«ë ¢ ¯à ¢®
889
        inc     edi             ;‘¬¥á⨬ ­ è¨ ᨬ¢®«ë ¢ ¯à ¢®
911
        std
890
        std
912
        inc     ecx
891
        inc     ecx
913
   @@:  
892
   @@:  
914
        ;--------
893
        ;--------
915
        lodsb
894
        lodsb
916
        stosb
895
        stosb
917
        ;--------
896
        ;--------
918
        loop    @b
897
        loop    @b
919
edit_box_key.In_k:  
898
edit_box_key.In_k:  
920
	cld
899
	cld
921
        pop eax
900
        pop eax
922
        mov al,ah
901
        mov al,ah
923
        stosb
902
        stosb
924
        pop edi
903
        pop edi
925
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
904
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
926
        ; 㢥«¨ç¨¢ ¥¬ §­ ç¥­¨¥ à §¬¥à  ¨ ¯®§¨æ¨¨
905
        ; 㢥«¨ç¨¢ ¥¬ §­ ç¥­¨¥ à §¬¥à  ¨ ¯®§¨æ¨¨
927
        inc      dword ed_size
906
        inc      dword ed_size
928
        inc      dword ed_pos
907
        inc      dword ed_pos
929
        call    edit_box_key.draw_all2
908
        call    edit_box_key.draw_all2
930
        jmp     edit_box_key.shift
909
        jmp     edit_box_key.shift
931
}
910
}
932
macro use_work_key
911
macro use_work_key
933
{
912
{
934
edit_box_key.insert: test   word ed_flags,ed_insert ;not    word ed_insert
913
edit_box_key.insert: test   word ed_flags,ed_insert ;not    word ed_insert
935
         je     @f
914
         je     @f
936
         and    word ed_flags,ed_insert_cl
915
         and    word ed_flags,ed_insert_cl
937
 
916
 
938
        jmp     edit_box.editbox_exit
917
        jmp     edit_box.editbox_exit
939
@@:
918
@@:
940
        or      word ed_flags,ed_insert
919
        or      word ed_flags,ed_insert
941
        jmp     edit_box.editbox_exit
920
        jmp     edit_box.editbox_exit
942
edit_box_key.ins_v:
921
edit_box_key.ins_v:
943
;        dec     dword [ebp+48];ed_size    ;processing is insert
922
;        dec     dword [ebp+48];ed_size    ;processing is insert
944
	dec	dword bp_size
923
	dec	dword bp_size
945
        sub     esi,ecx
924
        sub     esi,ecx
946
        add     esi,ebx
925
        add     esi,ebx
947
        mov     edi,esi
926
        mov     edi,esi
948
;clear
927
;clear
949
pusha
928
pusha
950
        mov     edi,ebp
929
        mov     edi,ebp
951
        mov     ebp,ed_pos
930
        mov     ebp,ed_pos
952
        call    edit_box_key.clear_bg
931
        call    edit_box_key.clear_bg
953
popa
932
popa
954
        jmp     edit_box_key.In_k
933
        jmp     edit_box_key.In_k
955
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
934
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
956
edit_box_key.delete:        
935
edit_box_key.delete:        
957
        mov     edx,ed_size
936
        mov     edx,ed_size
958
        mov     ecx,ed_pos
937
        mov     ecx,ed_pos
959
        cmp     edx,ecx
938
        cmp     edx,ecx
960
        jg      edit_box_key.bac_del
939
        jg      edit_box_key.bac_del
961
        test    word ed_flags,ed_shift_on
940
        test    word ed_flags,ed_shift_on
962
        jne     edit_box_key.del_bac
941
        jne     edit_box_key.del_bac
963
        popad
942
        popad
964
        ret     4
943
        ret     4
965
edit_box_key.bac_del:       
944
edit_box_key.bac_del:       
966
        call    edit_box_key.del_char
945
        call    edit_box_key.del_char
967
        jmp     edit_box_key.draw_all
946
        jmp     edit_box_key.draw_all
968
;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
947
;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
969
;--- ­ ¦ â  ª« ¢¨è  backspace ---
948
;--- ­ ¦ â  ª« ¢¨è  backspace ---
970
edit_box_key.backspace:
949
edit_box_key.backspace:
971
        ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
950
        ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
972
        mov     ecx,ed_pos
951
        mov     ecx,ed_pos
973
        test    ecx,ecx
952
        test    ecx,ecx
974
        jnz     edit_box_key.del_bac
953
        jnz     edit_box_key.del_bac
975
        test    word ed_flags,ed_shift_on
954
        test    word ed_flags,ed_shift_on
976
        jne     edit_box_key.bac_del
955
        jne     edit_box_key.bac_del
977
        popad
956
        popad
978
        ret     4
957
        ret     4
979
 
958
 
980
edit_box_key.del_bac:
959
edit_box_key.del_bac:
981
        mov     edx,ed_size
960
        mov     edx,ed_size
982
        cmp     edx,ecx ;if ed_pos=ed_size
961
        cmp     edx,ecx ;if ed_pos=ed_size
983
        je      @f
962
        je      @f
984
        dec     ecx
963
        dec     ecx
985
        call    edit_box_key.del_char
964
        call    edit_box_key.del_char
986
@@:     test    word ed_flags,ed_shift_on
965
@@:     test    word ed_flags,ed_shift_on
987
        jne     edit_box_key.bac_del
966
        jne     edit_box_key.bac_del
988
        dec      dword ed_pos
967
        dec      dword ed_pos
989
edit_box_key.draw_all:
968
edit_box_key.draw_all:
990
        push    edit_box_key.shift;.draw_cursor_text;eax
969
        push    edit_box_key.shift;.draw_cursor_text;eax
991
 
970
 
992
        test    word ed_flags,ed_shift_on
971
        test    word ed_flags,ed_shift_on
993
        je      @f
972
        je      @f
994
        mov     eax,dword ed_shift_pos
973
        mov     eax,dword ed_shift_pos
995
        mov     ebx,ed_size
974
        mov     ebx,ed_size
996
        sub     ebx,eax
975
        sub     ebx,eax
997
        mov     ed_size,ebx
976
        mov     ed_size,ebx
998
 
977
 
999
        mov     ebp,ed_color
978
        mov     ebp,ed_color
1000
        call    edit_box.clear_cursor
979
        call    edit_box.clear_cursor
1001
        call    edit_box.check_offset
980
        call    edit_box.check_offset
1002
        call    edit_box.draw_bg
981
        call    edit_box.draw_bg
1003
        ret
982
        ret
1004
@@:     dec      dword ed_size
983
@@:     dec      dword ed_size
1005
 
984
 
1006
edit_box_key.draw_all2:
985
edit_box_key.draw_all2:
1007
        and    word ed_flags,ed_shift_cl
986
        and    word ed_flags,ed_shift_cl
1008
        mov     ebp,ed_color
987
        mov     ebp,ed_color
1009
        call    edit_box.clear_cursor
988
        call    edit_box.clear_cursor
1010
        call    edit_box.check_offset
989
        call    edit_box.check_offset
1011
        mov     ebp,ed_size
990
        mov     ebp,ed_size
1012
        call    edit_box_key.clear_bg
991
        call    edit_box_key.clear_bg
1013
        ret
992
        ret
1014
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
993
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1015
;--- ­ ¦ â  ª« ¢¨è  left ---
994
;--- ­ ¦ â  ª« ¢¨è  left ---
1016
edit_box_key.left:  
995
edit_box_key.left:  
1017
	mov     ebx,ed_pos
996
	mov     ebx,ed_pos
1018
        test    ebx,ebx
997
        test    ebx,ebx
1019
        jz      edit_box_key.sh_st_of
998
        jz      edit_box_key.sh_st_of
1020
        or      word ed_flags,ed_left_fl
999
        or      word ed_flags,ed_left_fl
1021
        call    edit_box_key.sh_first_sh
1000
        call    edit_box_key.sh_first_sh
1022
        dec      dword ed_pos
1001
        dec      dword ed_pos
1023
        call    edit_box_key.sh_enable
1002
        call    edit_box_key.sh_enable
1024
        jmp     edit_box.draw_cursor_text
1003
        jmp     edit_box.draw_cursor_text
1025
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1004
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1026
;--- ­ ¦ â  ª« ¢¨è  right ---
1005
;--- ­ ¦ â  ª« ¢¨è  right ---
1027
edit_box_key.right: 
1006
edit_box_key.right: 
1028
	mov     ebx,ed_pos
1007
	mov     ebx,ed_pos
1029
        cmp     ebx,ed_size
1008
        cmp     ebx,ed_size
1030
        je      edit_box_key.sh_st_of
1009
        je      edit_box_key.sh_st_of
1031
        and     word ed_flags,ed_right_fl
1010
        and     word ed_flags,ed_right_fl
1032
        call    edit_box_key.sh_first_sh
1011
        call    edit_box_key.sh_first_sh
1033
        inc     dword  ed_pos
1012
        inc     dword  ed_pos
1034
        call    edit_box_key.sh_enable
1013
        call    edit_box_key.sh_enable
1035
        jmp     edit_box.draw_cursor_text
1014
        jmp     edit_box.draw_cursor_text
1036
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1015
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1037
edit_box_key.home:  
1016
edit_box_key.home:  
1038
        mov     ebx,ed_pos
1017
        mov     ebx,ed_pos
1039
        test    ebx,ebx
1018
        test    ebx,ebx
1040
        jz      edit_box_key.sh_st_of
1019
        jz      edit_box_key.sh_st_of
1041
        call    edit_box_key.sh_first_sh
1020
        call    edit_box_key.sh_first_sh
1042
        xor     eax,eax
1021
        xor     eax,eax
1043
        mov     ed_pos,eax
1022
        mov     ed_pos,eax
1044
        call    edit_box_key.sh_home_end
1023
        call    edit_box_key.sh_home_end
1045
        jmp     edit_box.draw_cursor_text
1024
        jmp     edit_box.draw_cursor_text
1046
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1025
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1047
edit_box_key.end:   
1026
edit_box_key.end:   
1048
        mov     ebx,ed_pos
1027
        mov     ebx,ed_pos
1049
        cmp     ebx,dword ed_size
1028
        cmp     ebx,dword ed_size
1050
        je      edit_box_key.sh_st_of
1029
        je      edit_box_key.sh_st_of
1051
        call    edit_box_key.sh_first_sh
1030
        call    edit_box_key.sh_first_sh
1052
        mov     eax,ed_size
1031
        mov     eax,ed_size
1053
        mov     ed_pos,eax
1032
        mov     ed_pos,eax
1054
        call    edit_box_key.sh_home_end
1033
        call    edit_box_key.sh_home_end
1055
        jmp     edit_box.draw_cursor_text
1034
        jmp     edit_box.draw_cursor_text
1056
}
1035
}
1057
 
1036
 
1058
macro use_mouse_func
1037
macro use_mouse_func
1059
{
1038
{
1060
;----------------------------------------------------------
1039
;----------------------------------------------------------
1061
;--- Ž¡à ¡®âª  .mouse_wigwag
1040
;--- Ž¡à ¡®âª  .mouse_wigwag
1062
;----------------------------------------------------------
1041
;----------------------------------------------------------
1063
edit_box_mouse.mouse_wigwag:
1042
edit_box_mouse.mouse_wigwag:
1064
        shr     eax,16
1043
        shr     eax,16
1065
        or      word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
1044
        or      word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
1066
;;;;;;;;;;;;;;;;;;
1045
;;;;;;;;;;;;;;;;;;
1067
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
1046
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
1068
;;;;;;;;;;;;;;;;;;
1047
;;;;;;;;;;;;;;;;;;
1069
        test    ax,0x8000
1048
        test    ax,0x8000
1070
        jnz     edit_box_mouse.mleft
1049
        jnz     edit_box_mouse.mleft
1071
 
1050
 
1072
        mov     ebx,ed_left
1051
        mov     ebx,ed_left
1073
        cmp     eax,ebx
1052
        cmp     eax,ebx
1074
        jb      edit_box_mouse.mleft
1053
        jb      edit_box_mouse.mleft
1075
 
1054
 
1076
        add     ebx,ed_width
1055
        add     ebx,ed_width
1077
        cmp     eax,ebx
1056
        cmp     eax,ebx
1078
        ja      edit_box_mouse.mright 
1057
        ja      edit_box_mouse.mright 
1079
 
1058
 
1080
        sub     ebx,ed_width
1059
        sub     ebx,ed_width
1081
 
1060
 
1082
        xor     edx,edx
1061
        xor     edx,edx
1083
        sub     eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
1062
        sub     eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
1084
        mov     ebx,6
1063
        mov     ebx,6
1085
        div     ebx
1064
        div     ebx
1086
;;;;;;;;;;;;;;;;;;
1065
;;;;;;;;;;;;;;;;;;
1087
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
1066
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
1088
;;;;;;;;;;;;;;;;;;
1067
;;;;;;;;;;;;;;;;;;
1089
;®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
1068
;®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
1090
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
1069
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
1091
        add     eax,ed_offset   ;¤®¡ ¢¨¬ ᬥ饭¨¥
1070
        add     eax,ed_offset   ;¤®¡ ¢¨¬ ᬥ饭¨¥
1092
        cmp     eax,dword ed_size       ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
1071
        cmp     eax,dword ed_size       ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
1093
        ja      edit_box_mouse.mwigvag
1072
        ja      edit_box_mouse.mwigvag
1094
edit_box_mouse.mdraw: 
1073
edit_box_mouse.mdraw: 
1095
        mov     dword   ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
1074
        mov     dword   ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
1096
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
1075
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
1097
        mov     ecx,dword       ed_shift_pos
1076
        mov     ecx,dword       ed_shift_pos
1098
        mov     ebx,dword       ed_shift_pos_old
1077
        mov     ebx,dword       ed_shift_pos_old
1099
        mov     dword   ed_shift_pos_old,eax    ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
1078
        mov     dword   ed_shift_pos_old,eax    ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
1100
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
1079
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
1101
        cmp     ecx,ebx         ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
1080
        cmp     ecx,ebx         ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
1102
        je      edit_box_mouse.m1_shem        ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥ 
1081
        je      edit_box_mouse.m1_shem        ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥ 
1103
        jb      edit_box_mouse.msmaller       ;¤¢¨¦¥­¨¥ ¡ë«® ->
1082
        jb      edit_box_mouse.msmaller       ;¤¢¨¦¥­¨¥ ¡ë«® ->
1104
        cmp     ebx,eax         ;¤¢¨¦¥­¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤  ¤¢¨¦¥­¨¥ ¯à®¨á室¨â
1083
        cmp     ebx,eax         ;¤¢¨¦¥­¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤  ¤¢¨¦¥­¨¥ ¯à®¨á室¨â
1105
        ja      edit_box_mouse.m1_shem        ;¥á«¨ ¡ë«® ¤¢¨¦¥­¨¥ <- â® ­ã¦­® § ªà á¨âì ®¡« áâì
1084
        ja      edit_box_mouse.m1_shem        ;¥á«¨ ¡ë«® ¤¢¨¦¥­¨¥ <- â® ­ã¦­® § ªà á¨âì ®¡« áâì
1106
        je      edit_box_mouse.mwigvag        ;¥á«¨ ¨§¬¥­¥­¨ï ­¥ ¡ë«®, â® ­¨ç¥£® ­¥ ¤¥« âì
1085
        je      edit_box_mouse.mwigvag        ;¥á«¨ ¨§¬¥­¥­¨ï ­¥ ¡ë«®, â® ­¨ç¥£® ­¥ ¤¥« âì
1107
        mov     ebp,ed_color    ;âã⠭㦭® ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old
1086
        mov     ebp,ed_color    ;âã⠭㦭® ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old
1108
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
1087
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
1109
        call    edit_box_key.sh_cl_
1088
        call    edit_box_key.sh_cl_
1110
        jmp     edit_box_mouse.mwigvag
1089
        jmp     edit_box_mouse.mwigvag
1111
edit_box_mouse.msmaller:
1090
edit_box_mouse.msmaller:
1112
        cmp     ebx,eax
1091
        cmp     ebx,eax
1113
        jb      edit_box_mouse.m1_shem
1092
        jb      edit_box_mouse.m1_shem
1114
        mov     ebp,ed_color
1093
        mov     ebp,ed_color
1115
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
1094
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
1116
        call    edit_box_key.sh_cl_
1095
        call    edit_box_key.sh_cl_
1117
        jmp     edit_box_mouse.mwigvag
1096
        jmp     edit_box_mouse.mwigvag
1118
;alike  =
1097
;alike  =
1119
edit_box_mouse.m1_shem: 
1098
edit_box_mouse.m1_shem: 
1120
        mov     ebp,shift_color
1099
        mov     ebp,shift_color
1121
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
1100
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
1122
        mov     ebx,ecx
1101
        mov     ebx,ecx
1123
        call    edit_box_key.sh_cl_
1102
        call    edit_box_key.sh_cl_
1124
        jmp     edit_box_mouse.mwigvag
1103
        jmp     edit_box_mouse.mwigvag
1125
edit_box_mouse.mwigvag:
1104
edit_box_mouse.mwigvag:
1126
        and     word ed_flags,ed_shift_mcl
1105
        and     word ed_flags,ed_shift_mcl
1127
        jmp     edit_box.draw_cursor_text
1106
        jmp     edit_box.draw_cursor_text
1128
;       popa
1107
;       popa
1129
;       ret
1108
;       ret
1130
edit_box_mouse.mleft:
1109
edit_box_mouse.mleft:
1131
        mov     eax,ed_pos
1110
        mov     eax,ed_pos
1132
        cmp     eax,0                                        
1111
        cmp     eax,0                                        
1133
        jbe      edit_box_mouse.mwigvag
1112
        jbe      edit_box_mouse.mwigvag
1134
        dec     eax
1113
        dec     eax
1135
        call    edit_box.check_offset
1114
        call    edit_box.check_offset
1136
        push    eax
1115
        push    eax
1137
        mov     ebx,ed_shift_pos
1116
        mov     ebx,ed_shift_pos
1138
        mov     ebp,shift_color
1117
        mov     ebp,shift_color
1139
        call    edit_box_key.sh_cl_
1118
        call    edit_box_key.sh_cl_
1140
        pop     eax
1119
        pop     eax
1141
        jmp     edit_box_mouse.mdraw
1120
        jmp     edit_box_mouse.mdraw
1142
edit_box_mouse.mright:
1121
edit_box_mouse.mright:
1143
        mov     eax,ed_pos
1122
        mov     eax,ed_pos
1144
        mov     ebx,ed_size
1123
        mov     ebx,ed_size
1145
        cmp     eax,ebx
1124
        cmp     eax,ebx
1146
        jae     edit_box_mouse.mwigvag
1125
        jae     edit_box_mouse.mwigvag
1147
        inc     eax
1126
        inc     eax
1148
        call    edit_box.check_offset
1127
        call    edit_box.check_offset
1149
        mov     ebx,ed_shift_pos
1128
        mov     ebx,ed_shift_pos
1150
        mov     ebp,shift_color
1129
        mov     ebp,shift_color
1151
        push    eax
1130
        push    eax
1152
        call    edit_box_key.sh_cl_
1131
        call    edit_box_key.sh_cl_
1153
        pop     eax
1132
        pop     eax
1154
        jmp     edit_box_mouse.mdraw  
1133
        jmp     edit_box_mouse.mdraw  
1155
}
1134
}
1156
 
1135
 
1157
macro use_work_mouse
1136
macro use_work_mouse
1158
;----------------------------------------------------------
1137
;----------------------------------------------------------
1159
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
1138
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
1160
;----------------------------------------------------------
1139
;----------------------------------------------------------
1161
{
1140
{
1162
        test    word ed_flags,ed_mouse_on
1141
        test    word ed_flags,ed_mouse_on
1163
        jne     edit_box_mouse.mouse_wigwag
1142
        jne     edit_box_mouse.mouse_wigwag
1164
;----------------------------------------------------------
1143
;----------------------------------------------------------
1165
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
1144
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
1166
;----------------------------------------------------------
1145
;----------------------------------------------------------
1167
        mov     ebx,ed_top
1146
        mov     ebx,ed_top
1168
        cmp     ax,bx
1147
        cmp     ax,bx
1169
        jl      edit_box_mouse._blur;.mouse_end_no_focus
1148
        jl      edit_box_mouse._blur;.mouse_end_no_focus
1170
        
1149
        
1171
        add     ebx,ed_height
1150
        add     ebx,ed_height
1172
        cmp     ax,bx
1151
        cmp     ax,bx
1173
        jg      edit_box_mouse._blur;.mouse_end_no_focus
1152
        jg      edit_box_mouse._blur;.mouse_end_no_focus
1174
 
1153
 
1175
        shr     eax,16
1154
        shr     eax,16
1176
 
1155
 
1177
        mov     ebx,ed_left
1156
        mov     ebx,ed_left
1178
        cmp     ax,bx
1157
        cmp     ax,bx
1179
        jl      edit_box_mouse._blur;.mouse_end_no_focus
1158
        jl      edit_box_mouse._blur;.mouse_end_no_focus
1180
 
1159
 
1181
        add     ebx,ed_width
1160
        add     ebx,ed_width
1182
 
1161
 
1183
        cmp     ax,bx
1162
        cmp     ax,bx
1184
        jg      edit_box_mouse._blur;.mouse_end_no_focus        
1163
        jg      edit_box_mouse._blur;.mouse_end_no_focus        
1185
 
1164
 
1186
;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  ---
1165
;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  ---
1187
        push    eax
1166
        push    eax
1188
        mov     ebp,ed_color
1167
        mov     ebp,ed_color
1189
        call    edit_box.clear_cursor
1168
        call    edit_box.clear_cursor
1190
        pop     eax
1169
        pop     eax
1191
edit_box_mouse._mvpos:
1170
edit_box_mouse._mvpos:
1192
        xor     edx,edx
1171
        xor     edx,edx
1193
        sub     eax,ed_left
1172
        sub     eax,ed_left
1194
 
1173
 
1195
        mov     ebx,6
1174
        mov     ebx,6
1196
        div     bx
1175
        div     bx
1197
        add     eax,ed_offset
1176
        add     eax,ed_offset
1198
        cmp     eax,ed_size
1177
        cmp     eax,ed_size
1199
        jna     edit_box_mouse._mshift
1178
        jna     edit_box_mouse._mshift
1200
        mov     eax,ed_size
1179
        mov     eax,ed_size
1201
 
1180
 
1202
edit_box_mouse._mshift:
1181
edit_box_mouse._mshift:
1203
;;;;;;;
1182
;;;;;;;
1204
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥­¨ï ¯® shift
1183
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥­¨ï ¯® shift
1205
;;;;;;;
1184
;;;;;;;
1206
        test    word ed_flags,ed_shift_bac
1185
        test    word ed_flags,ed_shift_bac
1207
        je      @f
1186
        je      @f
1208
        mov     ebp,dword       ed_color
1187
        mov     ebp,dword       ed_color
1209
        mov     ebx,dword ed_shift_pos
1188
        mov     ebx,dword ed_shift_pos
1210
        push    eax
1189
        push    eax
1211
        call    edit_box_key.sh_cl_
1190
        call    edit_box_key.sh_cl_
1212
        and     word ed_flags,ed_shift_bac_cl
1191
        and     word ed_flags,ed_shift_bac_cl
1213
        pop     eax
1192
        pop     eax
1214
@@:     
1193
@@:     
1215
        test    word ed_flags,ed_mouse_on
1194
        test    word ed_flags,ed_mouse_on
1216
        jne     @f
1195
        jne     @f
1217
        
1196
        
1218
        mov     dword ed_shift_pos,eax
1197
        mov     dword ed_shift_pos,eax
1219
        or      word  ed_flags,ed_mouse_on
1198
        or      word  ed_flags,ed_mouse_on
1220
        mov     dword ed_pos,eax
1199
        mov     dword ed_pos,eax
1221
 
1200
 
1222
;        mov     dword [mouse_flag],edi          ;ãáâ ­®¢¨¬ ¨¤¥­â¨ä¨ª â®à
1201
;        mov     dword [mouse_flag],edi          ;ãáâ ­®¢¨¬ ¨¤¥­â¨ä¨ª â®à
1223
 
1202
 
1224
       	mov	ebx,dword ed_mouse_variable
1203
       	mov	ebx,dword ed_mouse_variable
1225
	push	edi
1204
	push	edi
1226
	pop	dword [ebx]
1205
	pop	dword [ebx]
1227
 
1206
 
1228
 
1207
 
1229
 
1208
 
1230
 
1209
 
1231
        bts     word ed_flags,1                 ;ãáâ ­®¢ª  䮪ãá 
1210
        bts     word ed_flags,1                 ;ãáâ ­®¢ª  䮪ãá 
1232
        jmp     edit_box_mouse.m_sh
1211
        jmp     edit_box_mouse.m_sh
1233
@@:             
1212
@@:             
1234
        cmp     eax,dword ed_shift_pos  ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
1213
        cmp     eax,dword ed_shift_pos  ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
1235
        je      edit_box.editbox_exit
1214
        je      edit_box.editbox_exit
1236
        mov     ed_pos,eax
1215
        mov     ed_pos,eax
1237
        mov     ebp,dword shift_color
1216
        mov     ebp,dword shift_color
1238
        mov     ebx,dword ed_shift_pos
1217
        mov     ebx,dword ed_shift_pos
1239
        call    edit_box_key.sh_cl_
1218
        call    edit_box_key.sh_cl_
1240
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
1219
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
1241
edit_box_mouse.m_sh:  
1220
edit_box_mouse.m_sh:  
1242
	call    edit_box.draw_text
1221
	call    edit_box.draw_text
1243
        call    edit_box.draw_cursor
1222
        call    edit_box.draw_cursor
1244
;----------------------------------------------------------
1223
;----------------------------------------------------------
1245
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
1224
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
1246
;----------------------------------------------------------
1225
;----------------------------------------------------------
1247
        jmp     edit_box_mouse.drc
1226
        jmp     edit_box_mouse.drc
1248
edit_box_mouse._blur:
1227
edit_box_mouse._blur:
1249
        test    word ed_flags,ed_always_focus
1228
        test    word ed_flags,ed_always_focus
1250
        jne     edit_box.editbox_exit
1229
        jne     edit_box.editbox_exit
1251
        btr     word ed_flags,1 ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
1230
        btr     word ed_flags,1 ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
1252
        jnc     edit_box.editbox_exit
1231
        jnc     edit_box.editbox_exit
1253
 
1232
 
1254
        mov     ebp,ed_color
1233
        mov     ebp,ed_color
1255
        call    edit_box.clear_cursor
1234
        call    edit_box.clear_cursor
1256
edit_box_mouse.drc:   call    edit_box.draw_border
1235
edit_box_mouse.drc:   call    edit_box.draw_border
1257
        jmp     edit_box.editbox_exit
1236
        jmp     edit_box.editbox_exit
1258
}
1237
}
1259
 
1238
 
1260
 
1239
 
1261
; Œ ªà®á ¢ë室 
1240
; Œ ªà®á ¢ë室 
1262
macro edit_ex
1241
macro edit_ex
1263
{
1242
{
1264
popad          
1243
popad          
1265
ret
1244
ret
1266
}
1245
}
1267
macro debug
1246
macro debug
1268
{
1247
{
1269
        ;-----------  ®â« ¤ª 
1248
        ;-----------  ®â« ¤ª 
1270
        pushad
1249
        pushad
1271
;        mov     dword [ed_buffer.2],0
1250
;        mov     dword [ed_buffer.2],0
1272
;        mov     eax,edi
1251
;        mov     eax,edi
1273
        mov eax,dword [ed_buffer.2]
1252
        mov eax,dword [ed_buffer.2]
1274
        mov edi,ed_buffer.3
1253
        mov edi,ed_buffer.3
1275
        call .str
1254
        call .str
1276
        ;à¨á®¢ ­¨¥ ä®­ 
1255
        ;à¨á®¢ ­¨¥ ä®­ 
1277
        mov eax,13
1256
        mov eax,13
1278
        mov ebx,178*65536+70
1257
        mov ebx,178*65536+70
1279
        mov ecx,28*65536+10
1258
        mov ecx,28*65536+10
1280
        xor edx,edx
1259
        xor edx,edx
1281
        int 0x40
1260
        int 0x40
1282
        ;¢ë¢®¤ §­ ç¥­¨ï ­  íªà ­
1261
        ;¢ë¢®¤ §­ ç¥­¨ï ­  íªà ­
1283
        mov eax,4
1262
        mov eax,4
1284
        mov ebx,180*65536+30
1263
        mov ebx,180*65536+30
1285
        mov ecx,0x10DDBBCC
1264
        mov ecx,0x10DDBBCC
1286
        mov edx,ed_buffer.3
1265
        mov edx,ed_buffer.3
1287
        mov esi,8
1266
        mov esi,8
1288
        int 0x40
1267
        int 0x40
1289
        popad
1268
        popad
1290
        ;----------- ®â« ¤ª 
1269
        ;----------- ®â« ¤ª 
1291
}
1270
}
1292
macro   debug_func
1271
macro   debug_func
1293
{
1272
{
1294
.str:
1273
.str:
1295
        mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1274
        mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1296
         ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1275
         ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1297
        cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1276
        cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1298
        jb @f
1277
        jb @f
1299
        xor edx,edx  ;®ç¨áâ¨âì edx
1278
        xor edx,edx  ;®ç¨áâ¨âì edx
1300
        div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1279
        div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1301
        push edx     ;¯®«®¦¨âì ¢ á⥪
1280
        push edx     ;¯®«®¦¨âì ¢ á⥪
1302
        ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1281
        ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1303
        call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1282
        call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1304
        pop eax
1283
        pop eax
1305
        @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1284
        @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1306
        ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
1285
        ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
1307
        ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
1286
        ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
1308
        or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1287
        or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1309
        stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1288
        stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1310
 
1289
 
1311
        ret         ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1290
        ret         ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1312
}
1291
}
1313
 
1292
 
1314
ed_struc_size=76
1293
ed_struc_size=76
1315
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
1294
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
1316
       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
1295
       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
1317
{
1296
{
1318
.width dd width
1297
.width dd width
1319
.left dd left
1298
.left dd left
1320
.top dd top
1299
.top dd top
1321
.color dd color
1300
.color dd color
1322
.shift_color dd shift_color
1301
.shift_color dd shift_color
1323
.focus_border_color dd focus_border_color
1302
.focus_border_color dd focus_border_color
1324
.blur_border_color dd blur_border_color
1303
.blur_border_color dd blur_border_color
1325
.text_color dd text_color
1304
.text_color dd text_color
1326
.max dd max
1305
.max dd max
1327
.text dd text
1306
.text dd text
1328
.mouse_variable dd mouse_variable
1307
.mouse_variable dd mouse_variable
1329
.flags dd flags+0
1308
.flags dd flags+0
1330
.size dd size+0
1309
.size dd size+0
1331
.pos dd pos+0
1310
.pos dd pos+0
1332
.offset dd 0
1311
.offset dd 0
1333
.cl_curs_x dd 0
1312
.cl_curs_x dd 0
1334
.cl_curs_y dd 0
1313
.cl_curs_y dd 0
1335
.shift   dd 0
1314
.shift   dd 0
1336
.shift_old   dd 0
1315
.shift_old   dd 0
1337
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
1338
;Bit mask from editbox 
-
 
1339
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
1340
ed_figure_only= 1000000000000000b   ;®¤­¨ ᨬ¢®«ë 
-
 
1341
ed_always_focus= 100000000000000b
-
 
1342
ed_focus=                     10b   ;䮪ãá ¯à¨«®¦¥­¨ï
-
 
1343
ed_shift_on=                1000b   ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
-
 
1344
ed_shift_on_off=1111111111110111b
-
 
1345
ed_shift=                    100b   ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
-
 
1346
ed_shift_off=   1111111111111011b
-
 
1347
ed_shift_bac=              10000b   ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
-
 
1348
ed_shift_bac_cl=1111111111101111b   ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
-
 
1349
ed_shift_cl=    1111111111100011b
-
 
1350
ed_shift_mcl=   1111111111111011b
-
 
1351
ed_left_fl=               100000b
-
 
1352
ed_right_fl=    1111111111011111b
-
 
1353
ed_offset_fl=            1000000b
-
 
1354
ed_offset_cl=   1111111110111111b
-
 
1355
ed_insert=              10000000b
-
 
1356
ed_insert_cl=   1111111101111111b
-
 
1357
ed_mouse_on =          100000000b
-
 
1358
ed_mous_adn_b=         100011000b
-
 
1359
ed_mouse_on_off=1111111011111111b
-
 
1360
ed_height=14 ; ¢ëá®â 
-
 
1361
 
-
 
1362
}
1316
}