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

View File

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

View File

@ -11,6 +11,6 @@ align 4
get_version:
xor eax,eax
mov eax,dword 071014 ;07.10.13
mov eax,dword 071119 ;07.11.19
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_off = 10111111b
zk_redraw_all_Bookmark = 00100000b
zk_redraw_all_Bookmark_off = 11011111b
zk_init_Bookmark = 10000000b
zk_init_Bookmark_off = 01111111b
zk_child_button_type = 10001001b
@ -1161,7 +1161,7 @@ SendMessageChildControlsOfBookmark:
mov ebx,[eax]
mov eax,ebx
mov ebx,[Bookmark.MessageForChildButton+12]
test ebx,ebx
jz bookmark_left_button_of_mouse_not_pressed

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,8 +2,8 @@
pb_control_data_size = 34
pb_redraw_all = 10000000b
pb_redraw_all_off = 01111111b
pb_special_progress_on = 1b
pb_special_progress_off = 11111110b
;pb_special_progress_on = 00000001b
;pb_special_progress_off = 11111110b
;****************************************************
;****************craete ProgressBar********************
@ -109,7 +109,18 @@ progress_bar:
cmp [eax],dword 3
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:
@ -127,17 +138,6 @@ 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:

View File

@ -1,24 +1,25 @@
;scroller's flags
sc_check_vertical = 1b
sc_check_horizontal = 10b
sc_check_init_child_buttons = 100b
sc_check_3D_type = 10000b
sc_scroll_bar_move = 100000b
sc_active = 1000000b
sc_check_vertical = 00000001b
sc_check_horizontal = 00000010b
sc_check_init_child_buttons = 00000100b
sc_active = 00001000b
sc_check_3D_type = 00010000b
sc_scroll_bar_move = 00100000b
sc_redraw = 10000000b
sc_redraw_off = 01111111b
sc_full_redraw = 11100000b
sc_full_redraw = 10101000b
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_second_child_button_pressed = 10000b
sc_second_child_button_pressed = 00010000b
sc_second_child_button_pressed_off = 11101111b
sc_control_data_size = 29
sc_child_button_type = 10001000b
sc_child_button_type = 10001000b
;****************************************************
;******************Crate Scroller*********************

View File

@ -1,9 +1,9 @@
tx_control_data_size = 22
tx_no_show_text = 1b
tx_no_show_text = 00000001b
tx_redraw_all = 10000000b
tx_redraw_all_off = 01111111b
tx_special_redraw_on = 100b
tx_special_redraw_on = 00000100b
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.