Function RemoveComponent is renamed in MoveComponent.

New function is added.
void ActivateTrapForSpecializedMessage (dword *control) - to activate a trap for the specialized messages.

git-svn-id: svn://kolibrios.org@675 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
andrew_programmer 2007-11-19 17:44:47 +00:00
parent 814797a829
commit 21d1027a5a
16 changed files with 177 additions and 67 deletions

View File

@ -56,10 +56,10 @@ start:
call _ksys_cofflib_getproc call _ksys_cofflib_getproc
mov [resize_component],eax mov [resize_component],eax
push fnRemoveComponent push fnMoveComponent
push [myexport] push [myexport]
call _ksys_cofflib_getproc call _ksys_cofflib_getproc
mov [remove_component],eax mov [move_component],eax
push fnCraeteButton push fnCraeteButton
push [myexport] push [myexport]
@ -235,7 +235,7 @@ start:
;init bookmark ;init bookmark
mov ecx,[ColorsTable+8] mov ecx,[ColorsTable+8]
mov [Bookmark.type],byte 10000001b mov [Bookmark.type],byte 10100001b
mov [Bookmark.x],10 mov [Bookmark.x],10
mov [Bookmark.y],10 mov [Bookmark.y],10
mov [Bookmark.sizex],350 mov [Bookmark.sizex],350
@ -302,7 +302,7 @@ start:
push 340;270 push 340;270
push 120;250 push 120;250
push ebx push ebx
call [remove_component] call [move_component]
;send message 1 for redrawing ALL controls ;send message 1 for redrawing ALL controls
mov [Message],dword 1 mov [Message],dword 1
@ -540,7 +540,7 @@ text_for_text db 'Hello world from bookmark',0
fnDestroyControl db 'DestroyControl',0 fnDestroyControl db 'DestroyControl',0
fnSendMessage db 'SendMessage',0 fnSendMessage db 'SendMessage',0
fnResizeComponent db 'ResizeComponent',0 fnResizeComponent db 'ResizeComponent',0
fnRemoveComponent db 'RemoveComponent',0 fnMoveComponent db 'MoveComponent',0
fnCraeteButton db 'CraeteButton',0 fnCraeteButton db 'CraeteButton',0
fnCraeteScroller db 'CraeteScroller',0 fnCraeteScroller db 'CraeteScroller',0
fnCraeteBookmark db 'CraeteBookmark',0 fnCraeteBookmark db 'CraeteBookmark',0
@ -556,7 +556,7 @@ myexport dd 0
destroy_control dd 0 destroy_control dd 0
send_message dd 0 send_message dd 0
resize_component dd 0 resize_component dd 0
remove_component dd 0 move_component dd 0
craete_button dd 0 craete_button dd 0
craete_scroller dd 0 craete_scroller dd 0
craete_bookmark dd 0 craete_bookmark dd 0

View File

@ -51,6 +51,11 @@ start:
call _ksys_cofflib_getproc call _ksys_cofflib_getproc
mov [send_message],eax mov [send_message],eax
push fnActivateTrapForSpecializedMessage
push [myexport]
call _ksys_cofflib_getproc
mov [activate_trap_for_specialized_message],eax
push fnCraeteButton push fnCraeteButton
push [myexport] push [myexport]
call _ksys_cofflib_getproc call _ksys_cofflib_getproc
@ -125,9 +130,11 @@ still:
mov ebx,[progress] mov ebx,[progress]
mov eax,[PointerToControlForProgressBar] mov eax,[PointerToControlForProgressBar]
mov [eax+44],byte 1b
mov [eax+44+26],ebx mov [eax+44+26],ebx
push eax
call [activate_trap_for_specialized_message]
fld [progress_step] fld [progress_step]
fld [progress] fld [progress]
fadd st0,st1 fadd st0,st1
@ -139,9 +146,11 @@ still:
mov [progress],0.02 mov [progress],0.02
mov eax,[PointerToControlForProgressBar] mov eax,[PointerToControlForProgressBar]
mov [eax+44],byte 10000001b
mov [eax+44+26],dword 0.02 mov [eax+44+26],dword 0.02
push eax
call [activate_trap_for_specialized_message]
mov [Message],dword 1 mov [Message],dword 1
push Message push Message
push Parend push Parend
@ -345,6 +354,7 @@ fnDestroyControl db 'DestroyControl',0
fnSendMessage db 'SendMessage',0 fnSendMessage db 'SendMessage',0
fnCraeteButton db 'CraeteButton',0 fnCraeteButton db 'CraeteButton',0
fnCraeteProgressbar db 'CraeteProgressbar',0 fnCraeteProgressbar db 'CraeteProgressbar',0
fnActivateTrapForSpecializedMessage db 'ActivateTrapForSpecializedMessage',0
myexport dd 0 myexport dd 0
@ -354,6 +364,8 @@ craete_button dd 0
craete_progress_bar dd 0 craete_progress_bar dd 0
activate_trap_for_specialized_message dd 0
PointerToControlForButtonExit dd 0 PointerToControlForButtonExit dd 0
PointerToControlForProgressBar dd 0 PointerToControlForProgressBar dd 0

View File

@ -11,6 +11,6 @@ align 4
get_version: get_version:
xor eax,eax xor eax,eax
mov eax,dword 071014 ;07.10.13 mov eax,dword 071119 ;07.11.19
ret ret

View File

@ -0,0 +1,16 @@
;*******************************************************
;*Function activate a trap for the specialized message.*
;*******************************************************
;IN
;void ActivateTrapForSpecializedMessage(dword *control)
activate_trap_for_specialized_message:
mov ebx,[esp+4]
xor eax,eax
mov al,[ebx+control_header_size]
or al,activate_trap
mov [ebx+control_header_size],al
ret 4

View File

@ -1,6 +1,6 @@
zk_redraw_all_Bookmark = 1000000b zk_redraw_all_Bookmark = 00100000b
zk_redraw_all_Bookmark_off = 10111111b zk_redraw_all_Bookmark_off = 11011111b
zk_init_Bookmark = 10000000b zk_init_Bookmark = 10000000b
zk_init_Bookmark_off = 01111111b zk_init_Bookmark_off = 01111111b
zk_child_button_type = 10001001b zk_child_button_type = 10001001b

View File

@ -1,16 +1,16 @@
;button's types ;button's types
bt_check_text_type = 1b bt_check_text_type = 00000001b
bt_check_picture_type = 10b bt_check_picture_type = 00000010b
bt_check_picture_text_type = 100b bt_check_picture_text_type = 00000100b
bt_no_draw = 1000b bt_no_draw = 00001000b
bt_check_3D_type = 10000b bt_check_3D_type = 00010000b
bt_check_full_redraw = 10000000b bt_check_full_redraw = 10000000b
bt_full_redraw_off = 1111111b bt_full_redraw_off = 01111111b
;button's flags ;button's flags
bt_crossing = 1b bt_crossing = 00000001b
bt_crossing_pressing = 11b bt_crossing_pressing = 00000011b
bt_crossing_pressing_off = 11111100b bt_crossing_pressing_off = 11111100b
bt_control_data_size = 50 bt_control_data_size = 50

View File

@ -136,6 +136,9 @@ check_box:
no_redraw_all_check_box: no_redraw_all_check_box:
cmp [eax],dword 3
je exit_check_box
cmp [eax],dword 6 cmp [eax],dword 6
jne no_mouse_check_box jne no_mouse_check_box

View File

@ -182,6 +182,9 @@ edit_box:
.no_keys_edit_box: .no_keys_edit_box:
cmp [eax],dword 3
je exit_edit_box
;events of mouse for EditBox ;events of mouse for EditBox
cmp [eax],dword 6 cmp [eax],dword 6

View File

@ -2,8 +2,8 @@
im_control_data_size = 26 im_control_data_size = 26
im_redraw_all = 10000000b im_redraw_all = 10000000b
im_redraw_all_off = 01111111b im_redraw_all_off = 01111111b
im_special_redraw_on = 1b ;im_special_redraw_on = 00000001b
im_special_redraw_off = 11111110b ;im_special_redraw_off = 11111110b
;**************************************************** ;****************************************************
;*******************craete Image********************** ;*******************craete Image**********************
@ -87,11 +87,11 @@ image:
xor eax,eax xor eax,eax
mov al,[Image.type] mov al,[Image.type]
and al,im_special_redraw_on and al,activate_trap
test al,al test al,al
jz no_activate_redraw_image jz no_activate_redraw_image
and [Image.type],im_special_redraw_off and [Image.type],deactivate_trap
or [Image.type],im_redraw_all or [Image.type],im_redraw_all
no_activate_redraw_image: no_activate_redraw_image:

View File

@ -1,15 +1,16 @@
;********************************************************************** ;**********************************************************************
; library of Graphics Universal Interface for Kolibri operation system ; library of Graphics Universal Interface for Kolibri operation system
; ;
; version 071001 ; version 071119
; 2007 year ; 2007 year
; ;
;autors: ;autors:
; ;
;andrew_programmer polynki@mail.ru ;andrew_programmer polynki@mail.ru
; ;
;menegement of controls : destroy_control, send_message ;menegement of controls : destroy_control, send_message,move_component
;GUI components : button,scroller,Bookmark,text,image,number,progres bar ; resize_component,activate_trap_for_specialized_message
;GUI components : button,scroller,Bookmark,text,image,number,progres_bar
; ;
;<Lrz> and Maxxxx32 ;<Lrz> and Maxxxx32
; ;
@ -25,6 +26,9 @@ control_header_size = 44
border_width = 5 border_width = 5
activate_trap = 01000000b
deactivate_trap = 10111111b
section '.flat' code readable align 16 section '.flat' code readable align 16
include 'macros.inc' include 'macros.inc'
@ -70,8 +74,11 @@ section '.flat' code readable align 16
;function for resize GUI component ;function for resize GUI component
include 'resize_component.inc' include 'resize_component.inc'
;function for remove GUI component ;function for move GUI component
include 'remove_component.inc' include 'move_component.inc'
;function for activate trap for specialized messages
include 'activate_trap.inc'
align 16 align 16
EXPORTS: EXPORTS:
@ -79,7 +86,8 @@ EXPORTS:
dd szSendMessage,send_message dd szSendMessage,send_message
dd szVersion,get_version dd szVersion,get_version
dd szResizeComponent,resize_component dd szResizeComponent,resize_component
dd szRemoveComponent,remove_component dd szMoveComponent,move_component
dd szActivateTrap,activate_trap_for_specialized_message
dd szcraeteButton,craete_button dd szcraeteButton,craete_button
dd szcraeteScroller,craete_scroller dd szcraeteScroller,craete_scroller
dd szcraeteBookmark,craete_Bookmark dd szcraeteBookmark,craete_Bookmark
@ -95,7 +103,8 @@ szDestroyControl db 'DestroyControl',0
szSendMessage db 'SendMessage',0 szSendMessage db 'SendMessage',0
szVersion db 'Version',0 szVersion db 'Version',0
szResizeComponent db 'ResizeComponent',0 szResizeComponent db 'ResizeComponent',0
szRemoveComponent db 'RemoveComponent',0 szMoveComponent db 'MoveComponent',0
szActivateTrap db 'ActivateTrapForSpecializedMessage',0
szcraeteButton db 'CraeteButton',0 szcraeteButton db 'CraeteButton',0
szcraeteScroller db 'CraeteScroller',0 szcraeteScroller db 'CraeteScroller',0
szcraeteBookmark db 'CraeteBookmark',0 szcraeteBookmark db 'CraeteBookmark',0

View File

@ -1,8 +1,8 @@
;**************************************************** ;****************************************************
;***************Resize of GUI component************** ;*****************move of GUI component**************
;**************************************************** ;****************************************************
;IN ;IN
;ResizeComponent(dword Parend,dword Control,dword newx,dword newy) ;MoveComponent(dword Parend,dword Control,dword newx,dword newy)
;newy ;newy
;newx ;newx
;Control ;Control
@ -12,7 +12,7 @@
align 4 align 4
remove_component: move_component:
mov ebx,[esp+4] ;Control mov ebx,[esp+4] ;Control
mov ecx,[esp+8] ;new x mov ecx,[esp+8] ;new x

View File

@ -2,10 +2,10 @@
nm_control_data_size = 22 nm_control_data_size = 22
nm_redraw_all = 10000000b nm_redraw_all = 10000000b
nm_redraw_off = 01111111b nm_redraw_off = 01111111b
nm_special_redraw_on = 100b ;nm_special_redraw_on = 00000100b
nm_special_redraw_off = 11111011b ;nm_special_redraw_off = 11111011b
nm_integer_type = 10b nm_integer_type = 00000010b
nm_no_show_number = 1b nm_no_show_number = 00000001b
;**************************************************** ;****************************************************
;********************craete Number********************** ;********************craete Number**********************
@ -92,12 +92,12 @@ number:
xor ebx,ebx xor ebx,ebx
mov bl,[Number.type] mov bl,[Number.type]
and bl,nm_special_redraw_on and bl,activate_trap
test bl,bl test bl,bl
jz no_special_message_for_number jz no_special_message_for_number
or [Number.type],nm_redraw_all or [Number.type],nm_redraw_all
and [Number.type],nm_special_redraw_off and [Number.type],deactivate_trap
no_special_message_for_number: no_special_message_for_number:

View File

@ -2,8 +2,8 @@
pb_control_data_size = 34 pb_control_data_size = 34
pb_redraw_all = 10000000b pb_redraw_all = 10000000b
pb_redraw_all_off = 01111111b pb_redraw_all_off = 01111111b
pb_special_progress_on = 1b ;pb_special_progress_on = 00000001b
pb_special_progress_off = 11111110b ;pb_special_progress_off = 11111110b
;**************************************************** ;****************************************************
;****************craete ProgressBar******************** ;****************craete ProgressBar********************
@ -109,7 +109,18 @@ progress_bar:
cmp [eax],dword 3 cmp [eax],dword 3
jne no_special_message_progress_bar jne no_special_message_progress_bar
or [ProgressBar.type],pb_special_progress_on xor eax,eax
mov al,[ProgressBar.type]
and al,activate_trap
test al,al
jz no_draw_progress_bar
and [ProgressBar.type],deactivate_trap
call draw_progress
no_draw_progress_bar:
jmp exit_progress_bar
no_special_message_progress_bar: no_special_message_progress_bar:
@ -127,17 +138,6 @@ progress_bar:
no_draw_all_progress_bar: no_draw_all_progress_bar:
xor eax,eax
mov al,[ProgressBar.type]
and al,pb_special_progress_on
test al,al
jz no_draw_progress_bar
and [ProgressBar.type],pb_special_progress_off
call draw_progress
no_draw_progress_bar:
exit_progress_bar: exit_progress_bar:

View File

@ -1,20 +1,21 @@
;scroller's flags ;scroller's flags
sc_check_vertical = 1b sc_check_vertical = 00000001b
sc_check_horizontal = 10b sc_check_horizontal = 00000010b
sc_check_init_child_buttons = 100b sc_check_init_child_buttons = 00000100b
sc_check_3D_type = 10000b sc_active = 00001000b
sc_scroll_bar_move = 100000b sc_check_3D_type = 00010000b
sc_active = 1000000b sc_scroll_bar_move = 00100000b
sc_redraw = 10000000b sc_redraw = 10000000b
sc_redraw_off = 01111111b sc_redraw_off = 01111111b
sc_full_redraw = 11100000b sc_full_redraw = 10101000b
sc_scroll_bar_move_off = 11011111b sc_scroll_bar_move_off = 11011111b
sc_move_active_off = 10011111b sc_move_active_off = 11010111b
sc_first_child_button_pressed = 1b sc_first_child_button_pressed = 00000001b
sc_first_child_button_pressed_off = 11111110b sc_first_child_button_pressed_off = 11111110b
sc_second_child_button_pressed = 10000b sc_second_child_button_pressed = 00010000b
sc_second_child_button_pressed_off = 11101111b sc_second_child_button_pressed_off = 11101111b
sc_control_data_size = 29 sc_control_data_size = 29

View File

@ -1,9 +1,9 @@
tx_control_data_size = 22 tx_control_data_size = 22
tx_no_show_text = 1b tx_no_show_text = 00000001b
tx_redraw_all = 10000000b tx_redraw_all = 10000000b
tx_redraw_all_off = 01111111b tx_redraw_all_off = 01111111b
tx_special_redraw_on = 100b tx_special_redraw_on = 00000100b
tx_special_redraw_off = 11111011b tx_special_redraw_off = 11111011b
;**************************************************** ;****************************************************

View File

@ -0,0 +1,66 @@
19.11.07
RUSSIAN
Ôóíêöèÿ RemoveComponent ïåðåèìåíîâàíà â MoveComponent.
Äîáàâëåíà íîâàÿ ôóíêöèÿ.
void ActivateTrapForSpecializedMessage(dword *control) - àêòèâèðîâàòü ëîâóøêó äëÿ ñïåöèàëèçèðîâàííûõ ñîîáùåíèé.
ENGLISH
Function RemoveComponent is renamed in MoveComponent.
New function is added.
void ActivateTrapForSpecializedMessage (dword *control) - to activate a trap for the specialized messages.
15.10.07
RUSSIAN
Âûøëà íîâàÿ âåðñèÿ áèáëèîòåêè libGUI.
×òî íîâîãî â ýòîé âåðñèè:
1) Ïåðåäà÷à ïàðàìåòðîâ ôóíêöèÿì áèáëèîòåêè ïåðåïèñàíà íà êîíâåíöèþ stdcall.
2)Òåïåðü ôóíêöèè ëèíêóþòñÿ ïî èìåíàì.
3)Òåïåðü, åñëè íàâåñòè ìûøü íà êîìïîíåíò è íàæàòü ëåâóþ êíîïêó ìûøè, òî âñå ñîîáùåíèÿ îò
ìûøè ïîñûëàþòñÿ òîëüêî ýòîìó êîìïîíåíòó.Åñëè îòïóñòèòü ëåâóþ êíîïêó ìûøè, òî ñîîáùåíèÿ îò
ìûøè âíîâü ñòàíîâÿòñÿ äîñòóïíûìè äëÿ âñåõ êîìïîíåíòîâ.
4) Â áèáëèîòåêó äîáàâëåíû íîâûå ôóíêöèè.
int Version(void) - ïîëó÷èòü âåðñèþ áèáëèîòåêè. Âåðñèÿ âîçâðàùàåòñÿ â ôîðìàòå: ãîä + ìåñÿö + äåíü . Òåêóùàÿ
áèáëèîòåêà èìååò âåðñèþ 071014.
void RemoveComponent(void *Control,int new_x,int new_y) - ïåðåìåùàåò êîìïîíåíò â íîâûå êîîðäèíàòû.
void ResizeComponent(void *Control,int new_sizex,int new_sizey) - èçìåíÿåò ðàçìåð êîìïîíåíòà.
Ïðèìåðû èñïîëüçîâàíèÿ ýòèõ ôóíêöèé ñìîòðèòå â ïðèìåðå Bookmark.
5)Äîáàâëåí ïðèìåð ðàáîòû ñ libGUI â ÿçûêå ïðîãðàììèðîâàíèÿ C. Ýòîò ïðèìåð ÿâëÿåòñÿ ÷àñòüþ èíòåðôåéñà íàïèñàííîãî
ìíîé äëÿ ìîåé íàó÷íîé ïðîãðàììû.
ENGLISH
14.10.07
The new version of library libGUI has left.
That new in this version:
1) Transfer of parameters to functions of library is copied on the convention stdcall.
2) Now functions link on names.
3)Now, if to guide the mouse on a component and to press the left button of the mouse all
messages from the mouse are sent only to this component.If to release(let off) the left
button of the mouse messages from the mouse again become accessible to all components.
4) In library new functions are added.
int Version (void) - to receive the version of library. The version comes back in a format: year + month + day.
The current library has version 71014.
void RemoveComponent (void *Control, int new_x, int new_y) - moves a component to new coordinates.
void ResizeComponent (void *Control, int new_sizex, int new_sizey) - changes the size of a component.
Examples of use of these functions look in example Bookmark.
5) The example of work with libGUI in programming language C is added. This example is a part of the interface
written by me for my scientific program.