Subversion Repositories Kolibri OS

Rev

Rev 1214 | Rev 3693 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1101 Lrz 1
;заголовок приложения
1373 IgorA 2
use32		     ; транслятор, использующий 32 разрядных команды
3
    org 0x0		   ; базовый адрес кода, всегда 0x0
4
    db 'MENUET01'	 ; идентификатор исполняемого файла (8 байт)
5
    dd 0x1		  ; версия формата заголовка исполняемого файла
6
    dd start		    ; адрес, на который система передаёт управление
7
			; после загрузки приложения в память
8
    dd i_end		    ; размер приложения
9
    dd mem		    ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта
10
    dd mem		    ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше
11
    dd 0x0		; указатель на строку с параметрами.
1101 Lrz 12
    dd cur_dir_path
13
 
14
 
15
include '../../../../../macros.inc'
1373 IgorA 16
include '../../trunk/box_lib.mac'
1108 Lrz 17
include '../../load_lib.mac'
1101 Lrz 18
	@use_library	;use load lib macros
19
start:
20
;universal load library/librarys
21
sys_load_library  library_name, cur_dir_path, library_path, system_path, \
22
err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
23
;if return code =-1 then exit, else nornary work
1373 IgorA 24
	cmp	eax,-1
25
	jz	exit
26
	mcall	40,0x27 	;установить маску для ожидаемых событий
1101 Lrz 27
red_win:
1373 IgorA 28
    call draw_window		;первоначально необходимо нарисовать окно
1101 Lrz 29
align 4
1373 IgorA 30
still:				;основной обработчик
31
	mcall	10		;Ожидать события
32
	dec  eax
33
	jz   red_win
34
	dec  eax
35
	jz   key
36
	dec  eax
37
	jz   button
1101 Lrz 38
 
1373 IgorA 39
	push	dword edit1
40
	call	[edit_box_mouse]
1101 Lrz 41
 
1373 IgorA 42
	push	dword edit2
43
	call	[edit_box_mouse]
1101 Lrz 44
 
1373 IgorA 45
	push	dword check1
46
	call	[check_box_mouse]
1101 Lrz 47
 
1373 IgorA 48
	push	dword check2
49
	call	[check_box_mouse]
1101 Lrz 50
 
1373 IgorA 51
	push	dword Option_boxs
52
	call	[option_box_mouse]
1101 Lrz 53
 
1373 IgorA 54
	push	dword Option_boxs2
55
	call	[option_box_mouse]
1101 Lrz 56
 
1373 IgorA 57
	jmp still    ;если ничего из перечисленного то снова в цикл
1101 Lrz 58
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59
button:
1373 IgorA 60
	mcall	17	;получить идентификатор нажатой клавиши
61
	test ah,ah	;если в ah 0, то перейти на обработчик событий still
62
	jz  still
63
exit:	mcall	-1
1101 Lrz 64
key:
1373 IgorA 65
	mcall	2	;загрузим значение 2 в регистор eax и получим код нажатой клавиши
1101 Lrz 66
 
1373 IgorA 67
	push	dword edit1
68
	call	[edit_box_key]
1101 Lrz 69
 
1373 IgorA 70
	push	dword edit2
71
	call	[edit_box_key]
1101 Lrz 72
 
1373 IgorA 73
	jmp still
1101 Lrz 74
 
75
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
76
align 4
1373 IgorA 77
draw_window:		;рисование окна приложения
78
	mcall	12,1
79
	mcall	0,(50*65536+390),(30*65536+200),0x33AABBCC,0x805080DD,hed
1101 Lrz 80
 
1373 IgorA 81
	push	dword edit1
82
	call	[edit_box_draw]
1101 Lrz 83
 
1373 IgorA 84
	push	dword edit2
85
	call	[edit_box_draw]
1101 Lrz 86
 
1373 IgorA 87
	push	dword check1
88
	call	[check_box_draw]
1101 Lrz 89
 
1373 IgorA 90
	push	dword check2
91
	call	[check_box_draw]
1101 Lrz 92
 
1373 IgorA 93
	push	dword Option_boxs
94
	call	[option_box_draw]
1101 Lrz 95
 
1373 IgorA 96
	push	dword Option_boxs2
97
	call	[option_box_draw]
1101 Lrz 98
 
1373 IgorA 99
	mcall	12,2
1101 Lrz 100
    ret
101
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
102
;DATA данные
103
;Всегда соблюдать последовательность в имени.
1373 IgorA 104
system_path	 db '/sys/lib/'
105
library_name	 db 'box_lib.obj',0
1101 Lrz 106
; Если есть желание разъединить, то нужно использовать следующию конструкцию
107
;system_path      db '/sys/lib/box_lib.obj',0
108
;... любая последовательность других команд и определений.
109
;library_name     db 'box_lib.obj',0
110
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111
 
1373 IgorA 112
err_message_found_lib	db 'Sorry I cannot load library box_lib.obj',0
1101 Lrz 113
head_f_i:
1373 IgorA 114
head_f_l	db 'System error',0
115
err_message_import	db 'Error on load import library box_lib.obj',0
1101 Lrz 116
 
117
myimport:
118
 
1373 IgorA 119
edit_box_draw	dd	aEdit_box_draw
120
edit_box_key	dd	aEdit_box_key
121
edit_box_mouse	dd	aEdit_box_mouse
122
version_ed	dd	aVersion_ed
1101 Lrz 123
 
1373 IgorA 124
check_box_draw	dd	aCheck_box_draw
125
check_box_mouse dd	aCheck_box_mouse
126
version_ch	dd	aVersion_ch
1101 Lrz 127
 
1373 IgorA 128
option_box_draw  dd	 aOption_box_draw
129
option_box_mouse dd	 aOption_box_mouse
130
version_op	 dd	 aVersion_op
1101 Lrz 131
 
1373 IgorA 132
		dd	0
133
		dd	0
1101 Lrz 134
 
1373 IgorA 135
aEdit_box_draw	db 'edit_box',0
136
aEdit_box_key	db 'edit_box_key',0
1101 Lrz 137
aEdit_box_mouse db 'edit_box_mouse',0
1373 IgorA 138
aVersion_ed	db 'version_ed',0
1101 Lrz 139
 
140
aCheck_box_draw  db 'check_box_draw',0
141
aCheck_box_mouse db 'check_box_mouse',0
1373 IgorA 142
aVersion_ch	 db 'version_ch',0
1101 Lrz 143
 
144
aOption_box_draw  db 'option_box_draw',0
145
aOption_box_mouse db 'option_box_mouse',0
1373 IgorA 146
aVersion_op	  db 'version_op',0
1101 Lrz 147
 
148
 
149
 
150
 
151
check1 check_box 10,45,6,12,0x80AABBCC,0,0,check_text,14,ch_flag_en
152
check2 check_box 10,60,6,12,0x80AABBCC,0,0,check_text2,15
153
 
1214 Lrz 154
edit1 edit_box 350,3,5,0xffffff,0x6f9480,0,0xAABBCC,0,308,hed,mouse_dd,ed_focus,hed_end-hed-1,hed_end-hed-1
155
edit2 edit_box 350,3,25,0xffffff,0x6a9480,0,0,0,99,ed_buffer,mouse_dd,ed_figure_only
1101 Lrz 156
 
157
op1 option_box option_group1,10,90,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
158
op2 option_box option_group1,10,105,6,12,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2
159
op3 option_box option_group1,10,120,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
160
op11 option_box option_group2,120,90,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
161
op12 option_box option_group2,120,105,6,12,0xffffff,0,0,op_text.2,op_text.e2-op_text.2
162
op13 option_box option_group2,120,120,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
163
 
1373 IgorA 164
option_group1	dd op1	;указатели, они отображаются по умолчанию, когда выводится
165
option_group2	dd op12 ;приложение
166
Option_boxs	dd  op1,op2,op3,0
167
Option_boxs2	dd  op11,op12,op13,0
168
hed db	 'BOXs load from lib  date 27.04.2009',0
1101 Lrz 169
hed_end:
170
rb  256
171
check_text db 'First checkbox'
172
check_text2 db 'Second checkbox'
1373 IgorA 173
op_text:		; Сопровождающий текст для чек боксов
1101 Lrz 174
.1 db 'Option_Box #1'
175
.e1:
176
.2 db 'Option_Box #2'
177
.e2:
178
.3 db 'Option_Box #3'
179
.e3:
1373 IgorA 180
ed_buffer	rb 100
1101 Lrz 181
;-----------------------
182
;sc      system_colors
1214 Lrz 183
 
184
mouse_dd	rd 1
1373 IgorA 185
p_info	process_information
186
cur_dir_path	rb 4096
187
library_path	rb 4096
1101 Lrz 188
i_end:
189
rb 1024
190
mem: