Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1180 andrew_pro 1
;Hello world example
2
 
3
use32
4
	db	'MENUET01'
5
	dd	1
6
	dd	start
7
	dd	i_end
8
	dd	0x1000
9
	dd	0x1000
10
	dd	0
11
	dd	0
12
 
13
TRUE	=     1
14
FALSE	=     0
15
 
16
include 'libGUI.inc'
17
 
18
start:
19
	;load libGUI labrari
20
	push NULL  ;use default system path to library
21
	call LoadLibGUI
22
	;create main window
23
	CreateWindow
24
	mov [window],eax
25
	;change size of main window
26
	SetWindowSizeRequest [window],270,207
27
	;set callback function for button close window
28
	SetCallbackFunction [window],DELETE_EVENT,callback_func_delete_window,NULL
29
 
30
	;create control HorizontalScrollBar
31
	mov [hsbdata.x],5
32
	mov [hsbdata.y],5
33
	mov [hsbdata.wight],250
34
	mov [hsbdata.height],16
35
	mov [hsbdata.ruller_size],dword 0.2 ;ruler size 0..1
36
	mov [hsbdata.ruller_pos],dword 0.5  ;ruler position 0..1
37
	mov [hsbdata.ruller_step],dword 0.1 ;ruler step 0..1
38
	CreateHorizontalScrollBar hsbdata
39
	mov [hscroll_bar],eax
40
 
41
	;create control HorizontalScrollBar
42
	mov [vsbdata.x],5
43
	mov [vsbdata.y],26
44
	mov [vsbdata.wight],16
45
	mov [vsbdata.height],150
46
	mov [vsbdata.ruller_size],dword 0.5 ;ruler size 0..1
47
	mov [vsbdata.ruller_pos],dword 0.05 ;ruler position 0..1
48
	mov [vsbdata.ruller_step],dword 0.1 ;ruler step 0..1
49
	CreateVerticalScrollBar vsbdata
50
	mov [vscroll_bar],eax
51
 
52
	;set callback functions for scroll bars
53
	SetCallbackFunction [hscroll_bar],SCROLLBAR_CHANGED_EVENT,hscroll_bar_callback,NULL
54
	SetCallbackFunction [vscroll_bar],SCROLLBAR_CHANGED_EVENT,vscroll_bar_callback,NULL
55
 
56
	;pack controls in window
57
	PackControls [window],[hscroll_bar]
58
	PackControls [window],[vscroll_bar]
59
 
60
	;start libGUI main loop
61
	LibGUImain [window]
62
 
63
 
64
;void hscroll_bar_callback(header_ *control,void *data)
65
hscroll_bar_callback:
66
 
67
	mov eax,[esp+4];pointer to control scroll bar
68
 
69
	push ebx
70
	mov ebx,[eax+HEADER_SIZE];size of ruler
71
	mov ecx,[eax+HEADER_SIZE+4];position of ruler
72
	mov edx,[eax+HEADER_SIZE+8];step change position of ruler by press
73
				   ;buttons of scroll bar
74
	pop ebx
75
 
76
	ret
77
 
78
;void hscroll_bar_callback(header_ *control,void *data)
79
vscroll_bar_callback:
80
 
81
	mov eax,[esp+4];pointer to control scroll bar
82
 
83
	push ebx ;save befor use
84
 
85
	mov ebx,[eax+HEADER_SIZE];size of ruler
86
	mov ecx,[eax+HEADER_SIZE+4];position of ruler
87
	mov edx,[eax+HEADER_SIZE+8];step change position of ruler by press
88
				   ;buttons of scroll bar
89
	pop ebx
90
	ret
91
 
92
;void callback_func_delete_window(header_t *control,void *data)
93
callback_func_delete_window:
94
 
95
	mov eax,[esp+4] ;control
96
 
97
	QuitLibGUI eax
98
 
99
	ret
100
 
101
align 4
102
;----------------data-----------------
103
hsbdata 	gui_scroll_bar_data_t
104
vsbdata 	gui_scroll_bar_data_t
105
 
106
window		rd 1
107
hscroll_bar	rd 1
108
vscroll_bar	rd 1
109
 
110
i_end: