new menu from lib,

new command redo,
fix panel interface

git-svn-id: svn://kolibrios.org@6359 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2016-03-21 17:29:30 +00:00
parent a18a9cc46b
commit a4fbf36547
13 changed files with 444 additions and 512 deletions

View File

@ -1,24 +1,31 @@
;******************************************************* ;*******************************************************
;**************GRAPHICS EDITOR ANIMAGE ***************** ;**************GRAPHICS EDITOR ANIMAGE *****************
;******************************************************* ;*******************************************************
; version: 1.4 ; version: 1.5
; last update: 12/03/2016 ; last update: 21.03.2016
; changes: Use library 'libimg.obj' ; changes: Use library 'kmenu.obj'
; autors: IgorA, Veliant
;-------------------------------------------------------- ;--------------------------------------------------------
; version: 1.3 ; version: 1.4
; last update: 05/10/2010 ; last update: 12.03.2016
; changes: Use library 'libimg.obj'
; autors: IgorA
;--------------------------------------------------------
; version: 1.3
; last update: 05.10.2010
; written by: Marat Zakiyanov aka Mario79, aka Mario ; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Fixed window flicker when redrawing, ; changes: Fixed window flicker when redrawing,
; Fixed memory leak for stack ; Fixed memory leak for stack
;-------------------------------------------------------- ;--------------------------------------------------------
; version: 1.2 ; version: 1.2
; last update: 30/09/2010 ; last update: 30.09.2010
; written by: Marat Zakiyanov aka Mario79, aka Mario ; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Program used function 68 instead 64 is now, ; changes: Program used function 68 instead 64 is now,
; select path with OpenDialog ; select path with OpenDialog
;-------------------------------------------------------- ;--------------------------------------------------------
; version 1.1 year 9.12.2006 ; version: 1.1
; AUTORS: ; last update: 09.12.2006
; autors:
; programming by andrew_programmer ; programming by andrew_programmer
; design by golus ; design by golus
@ -48,16 +55,23 @@ include '../../../libio.inc'
; *** constants for interface *** ; *** constants for interface ***
; ª®à४â¨à®¢ª¨ ­  ᪨­ ; ª®à४â¨à®¢ª¨ ­  ᪨­
ci_offs_skin_w equ 0 ; 5 ;ª®à४â¨à®¢ª  ­  è¨à¨­ã à ¬ª¨ ᪨­  ci_offs_skin_w equ 5 ;ª®à४â¨à®¢ª  ­  è¨à¨­ã à ¬ª¨ ᪨­ 
ci_offs_skin_h equ 0 ;24 ;ª®à४â¨à®¢ª  ­  ¢ëá®âã ᪨­  ci_offs_skin_h equ 24 ;ª®à४â¨à®¢ª  ­  ¢ëá®âã ᪨­ 
; £« ¢­®¥ ®ª­® ; £« ¢­®¥ ®ª­®
ci_wnd_min_siz_x equ 585 ;minimum size x ci_wnd_min_siz_x equ 585 ;minimum size x
ci_wnd_min_siz_y equ 400 ;minimum size y ci_wnd_min_siz_y equ 400 ;minimum size y
; ¯ ­¥«ì ¨­áâà㬥­â®¢
ci_panel_x_pos equ 0 ;ª®®à¤¨­ â  x ¤«ï ¯ ­¥«¨
ci_panel_y_pos equ 20 ;ª®®à¤¨­ â  y ¤«ï ¯ ­¥«¨
ci_panel_but_y1 equ ci_panel_y_pos +5 ;ª®®à¤¨­ â  y ¤«ï 1-£® à鸞 ª­®¯®ª
ci_panel_but_y2 equ ci_panel_y_pos+30 ;ª®®à¤¨­ â  y ¤«ï 2-£® à鸞 ª­®¯®ª
ci_palete_y_pos equ ci_panel_y_pos+51 ;ª®®à¤¨­ â  y ¤«ï ¯ «¨âàë 梥⮢
; ®ª­® । ªâ®à  ; ®ª­® । ªâ®à 
ci_edit_wnd_x_pos equ 5 ;ª®®à¤¨­ â  x ¤«ï ®ª­  । ªâ®à  ci_edit_wnd_x_pos equ 0 ;ª®®à¤¨­ â  x ¤«ï ®ª­  । ªâ®à 
ci_edit_wnd_y_pos equ 87 ;ª®®à¤¨­ â  y ¤«ï ®ª­  । ªâ®à  ci_edit_wnd_y_pos equ 71 ;ª®®à¤¨­ â  y ¤«ï ®ª­  । ªâ®à 
ci_edit_wnd_border equ 3 ;à ¬ª  ¢®ªà㣠®ª­  । ªâ®à  ci_edit_wnd_border equ 3 ;à ¬ª  ¢®ªà㣠®ª­  । ªâ®à 
; áªà®««¨­£¨ ; áªà®««¨­£¨
@ -79,6 +93,7 @@ include 'load_from_parameters.inc'
START: START:
mcall SF_SYS_MISC,SSF_HEAP_INIT mcall SF_SYS_MISC,SSF_HEAP_INIT
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, syscolors, syscolors_end-syscolors
load_libraries l_libs_start,end_l_libs load_libraries l_libs_start,end_l_libs
@ -97,6 +112,7 @@ include 'init_data.inc'
call GetMemory call GetMemory
call cleare_work_arrea call cleare_work_arrea
call load_icons call load_icons
call init_main_menu
;load cursors ;load cursors
mov eax,CursorsID mov eax,CursorsID
@ -177,6 +193,7 @@ include 'string.inc'
include 'palette.inc' include 'palette.inc'
include 'files.inc' include 'files.inc'
include 'time.inc' include 'time.inc'
include 'menu.inc'
;----------------------------------------------------------- ;-----------------------------------------------------------
;------------variables and data of program------------------ ;------------variables and data of program------------------
;----------------------------------------------------------- ;-----------------------------------------------------------
@ -337,6 +354,9 @@ temp_dir_pach rb 4096
library_path rb 4096 library_path rb 4096
cur_dir_path rb 4096 cur_dir_path rb 4096
procinfo: rb 1024 procinfo: rb 1024
align 4
syscolors rb 192
syscolors_end:
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4 align 4
rb 4096 rb 4096

View File

@ -13,10 +13,11 @@ draw_volume_rectangle:
cmp esi,1 cmp esi,1
jne no_volume_light_rectangle jne no_volume_light_rectangle
mov [color_rectangle],0xc7cbcf ;mov esi,dword[syscolors+20]
mov [color_rectangle],0xc7cbcf ;esi
mov [color_line1],0xaeabae mov [color_line1],0xaeabae
mov [color_line2],0xffffff mov [color_line2],0xffffff
mov [color_line3],0xc7cbcf mov [color_line3],0xc7cbcf ;esi
jmp exit_colors jmp exit_colors
;---------------------------------------------------------- ;----------------------------------------------------------
no_volume_light_rectangle: no_volume_light_rectangle:
@ -33,7 +34,8 @@ no_pressed_rectangle:
cmp esi,3 cmp esi,3
jne no_pressed_panel jne no_pressed_panel
mov [color_rectangle],0xc7cbcf mov esi,dword[syscolors+20]
mov [color_rectangle],esi
mov [color_line1],0xaeabae mov [color_line1],0xaeabae
mov [color_line2],7000 mov [color_line2],7000
mov [color_line3],0xffffff mov [color_line3],0xffffff
@ -63,20 +65,22 @@ no_light_pressed_rectangle:
cmp esi,6 cmp esi,6
jne no_work_rectangle jne no_work_rectangle
mov [color_rectangle],0xc7cbcf mov esi,dword[syscolors+20]
mov [color_rectangle],esi
mov [color_line1],0xaeabae mov [color_line1],0xaeabae
mov [color_line2],0xc7cbcf mov [color_line2],esi
mov [color_line3],0xc7cbcf mov [color_line3],esi
jmp exit_colors jmp exit_colors
;---------------------------------------------------------- ;----------------------------------------------------------
no_work_rectangle: no_work_rectangle:
cmp esi,7 cmp esi,7
jne no_work_rectangle_2 jne no_work_rectangle_2
mov [color_rectangle],0xc7cbcf mov esi,dword[syscolors+20]
mov [color_line1],0xc7cbcf mov [color_rectangle],esi
mov [color_line2],0xc7cbcf mov [color_line1],esi
mov [color_line3],0xc7cbcf mov [color_line2],esi
mov [color_line3],esi
jmp exit_colors jmp exit_colors
;---------------------------------------------------------- ;----------------------------------------------------------
no_work_rectangle_2: no_work_rectangle_2:

View File

@ -14,16 +14,27 @@ dialog_line:
call print_line call print_line
call print_cursor call print_cursor
opros: opros:
mcall SF_WAIT_EVENT mcall SF_SLEEP, 5 ;fix cpu use 100%
mcall SF_WAIT_EVENT
cmp eax,1 ;redraw window cmp eax,1 ;redraw window
je exit_cycle jne @f
cmp eax,3 ;press button call dialog2_draw
je exit_cycle
cmp eax,2 ;press key mov ebx,[string_x]
jne opros shl ebx,16
add ebx,[string_y]
mov edx,string_
mov esi,[MaxSizeString]
mcall SF_DRAW_TEXT,,0
jmp opros
@@:
cmp eax,3 ;press button
je exit_cycle
cmp eax,2 ;press key
jne opros
mcall SF_GET_KEY mcall SF_GET_KEY
shr eax,8 shr eax,8
@ -152,9 +163,13 @@ position dd 0
MaxSizeString dd 0 MaxSizeString dd 0
string_x dd 0 string_x dd 0
string_y dd 0 string_y dd 0
;**********************************************************
;---------------------------------------------------------- ;----------------------------------------------------------
value: ;input:
; eax - pointer to string
;output:
; eax - value
str_to_int:
xor edx,edx xor edx,edx
cycle_value_: cycle_value_:
xor ebx,ebx xor ebx,ebx
@ -232,5 +247,58 @@ string_y dd 0
error: error:
mov eax,edx mov eax,edx
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
align 4
dialog2_draw:
mov eax,80
mov ebx,100
mov ecx,150
mov edx,90
mov esi,1
call draw_volume_rectangle ; dialog 'file new'
mov eax,177
mov ebx,115
mov ecx,40
mov edx,14
mov esi,4
call draw_volume_rectangle
mov eax,177
mov ebx,115+24
mov ecx,40
mov edx,14
mov esi,4
call draw_volume_rectangle
mov eax,177
mov ebx,170
mov ecx,40
mov edx,15
mov esi,1
call draw_volume_rectangle ; button [Ok]
mov eax,90
mov ebx,118
mov ecx,0xffffff
mov edx,new_text1
mov esi,14
call print_text
mov eax,90
mov ebx,118+24
mov ecx,0xffffff
mov edx,new_text2
mov esi,14
call print_text
mov eax,185
mov ebx,175
mov ecx,0xffffff
mov edx,ok_text
mov esi,2
call print_text
ret
length_number dd 0 length_number dd 0

View File

@ -4,40 +4,30 @@
buttons: buttons:
cmp [Current_instrument],21 cmp [Current_instrument],21
jne no_finish_instrument_button jne @f
cmp [instrument_used],1 cmp [instrument_used],1
jne no_finish_instrument_button jne @f
cmp [Activate_instrument],0 cmp [Activate_instrument],0
jne no_finish_instrument_button jne @f
cmp [crossing],1 cmp [crossing],1
jne no_finish_instrument_button jne @f
mov [finishing_crossing],1
call TakeButtonInstruments
@@:
mov [finishing_crossing],1 mcall SF_GET_BUTTON
call TakeButtonInstruments
no_finish_instrument_button:
mov eax,17
mcall
shr eax,8 shr eax,8
cmp eax,1 cmp eax,1
jne no_exit jne no_exit
mov eax,CursorsID
mov eax,CursorsID call delete_cursors
call delete_cursors mcall SF_TERMINATE_PROCESS
or eax,-1
mcall
no_exit: no_exit:
mov [Current_instrument],eax mov [Current_instrument],eax
call button_handler_main_menu
; set cursor for current instrument ; set cursor for current instrument
pushad pushad
@ -48,8 +38,6 @@ buttons:
call set_cursor call set_cursor
popad popad
cmp eax,10 cmp eax,10
jl still jl still

View File

@ -2,6 +2,8 @@
;-------------interraction MOUSE-------------- ;-------------interraction MOUSE--------------
;--------------------------------------------- ;---------------------------------------------
mouse: mouse:
stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
or ecx,-1 or ecx,-1
mcall SF_THREAD_INFO,procinfo mcall SF_THREAD_INFO,procinfo
@ -14,11 +16,11 @@ mouse:
mov edx,[Window_SizeX] mov edx,[Window_SizeX]
sub edx,5 sub edx,5
cmp ebx,20 ;cmp ebx,0
jle no_panel ;jle no_panel
cmp ebx,20+15 cmp ebx,ci_panel_y_pos
jae no_panel jae no_panel
cmp eax,5 cmp eax,5
jle no_panel jle no_panel
@ -27,16 +29,12 @@ mouse:
jae no_panel jae no_panel
call GetMouseCoordinats call GetMouseCoordinats
mov [counter],7
mov edi,panel_text
jmp panel_interraction jmp panel_interraction
no_panel: no_panel:
cmp [Panel_flag],0 cmp [Panel_flag],0
jz no_redraw_panel jz no_redraw_panel
mov [counter],7
mov edi,panel_text
jmp panel_interraction jmp panel_interraction
no_redraw_panel: no_redraw_panel:

View File

@ -51,31 +51,25 @@ no_znak2:
shl ecx,16 shl ecx,16
add ebx, [Window_SizeX] add ebx, [Window_SizeX]
add ecx, [Window_SizeY] add ecx, [Window_SizeY]
mcall SF_CREATE_WINDOW,,,0x53aabbcc,,name_of_program mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
mov eax,[procinfo+70] ;staus of window mov eax,[procinfo+70] ;staus of window
test eax,100b test eax,100b
jne .end jne .end
;------------------------------------------------ ;------------------------------------------------
mov eax,5 mov ebx,[Window_SizeX]
mov ebx,20 sub ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
mov ecx,[Window_SizeX] mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
mov edx,15
mov esi,6
sub ecx,10
call draw_volume_rectangle ; top menu - file and etc.
mov [counter],7 call put_main_menu
mov edi,panel_text
call print_panel_text
;------------------------------------------------ ;------------------------------------------------
mov eax,5 mov eax,ci_panel_x_pos
mov ebx,20+15+1 mov ebx,ci_panel_y_pos
mov ecx,[Window_SizeX] mov ecx,[Window_SizeX]
mov edx,50 mov edx,50
mov esi,1 mov esi,1
sub ecx,10 sub ecx,5+ci_panel_x_pos+ci_offs_skin_w
call draw_volume_rectangle ; tools panel call draw_volume_rectangle ; tools panel
call draw_icons call draw_icons
call PrintMousePos call PrintMousePos
@ -97,7 +91,7 @@ no_znak2:
shl ecx,16 shl ecx,16
mov cx,dx ;¢ëá®â  ¡®à¤îà  mov cx,dx ;¢ëá®â  ¡®à¤îà 
mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬ mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
;------------------------------------------------ ;------------------------------------------------
mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;¡®à¤îà á«¥¢  ®â ®ª­  mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;¡®à¤îà á«¥¢  ®â ®ª­ 
;------------------------------------------------ ;------------------------------------------------
@ -115,7 +109,7 @@ no_znak2:
shl ecx,16 shl ecx,16
mov cx,dx ;¢ëá®â  ¡®à¤îà  mov cx,dx ;¢ëá®â  ¡®à¤îà 
mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬ mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
;------------------------------------------------ ;------------------------------------------------
mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬ mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
;------------------------------------------------ ;------------------------------------------------

View File

@ -11,9 +11,8 @@ load_icons:
ret ret
draw_icons: draw_icons:
mov [Icon_X],ci_panel_x_pos+2
mov [Icon_X],7 mov [Icon_Y],ci_panel_y_pos+3
mov [Icon_Y],20+15+4
;draw panel picture ;draw panel picture
mov edx,[Icon_X] mov edx,[Icon_X]
@ -28,13 +27,12 @@ draw_icons:
;main buttons of instrumnts ;main buttons of instrumnts
and [counter],0 and [counter],0
mov [Icon_X],9 mov [Icon_X],ci_panel_x_pos+4
mov [Icon_Y],21+15+4+1
main_buttons: main_buttons:
mov ebx,[Icon_X] mov ebx,[Icon_X]
mov ecx,[Icon_Y] mov ecx,ci_panel_but_y1
dec ebx dec ebx
dec ecx dec ecx
shl ebx,16 shl ebx,16
@ -57,13 +55,12 @@ draw_icons:
;buttons of brushes(and lines width) ;buttons of brushes(and lines width)
and [counter],0 and [counter],0
mov [Icon_X],8+1 mov [Icon_X],ci_panel_x_pos+4
mov [Icon_Y],20+15+4+25+1
next_button_brush: next_button_brush:
mov ebx,[Icon_X] mov ebx,[Icon_X]
mov ecx,[Icon_Y] mov ecx,ci_panel_but_y2
dec ebx dec ebx
dec ecx dec ecx
shl ebx,16 shl ebx,16
@ -85,13 +82,12 @@ draw_icons:
;buttons of zoom ;buttons of zoom
and [counter],0 and [counter],0
mov [Icon_X],8+155+1 mov [Icon_X],ci_panel_x_pos+159
mov [Icon_Y],20+15+4+25+1
next_button_zoom: next_button_zoom:
mov ebx,[Icon_X] mov ebx,[Icon_X]
mov ecx,[Icon_Y] mov ecx,ci_panel_but_y2
dec ebx dec ebx
dec ecx dec ecx
shl ebx,16 shl ebx,16
@ -111,11 +107,10 @@ draw_icons:
; button of palette ; button of palette
mov [Icon_X],7+105+1 mov [Icon_X],ci_panel_x_pos+108
mov [Icon_Y],19+15+4+25+1
mov ebx,[Icon_X] mov ebx,[Icon_X]
mov ecx,[Icon_Y] mov ecx,ci_panel_but_y2-1
dec ebx dec ebx
dec ecx dec ecx
shl ebx,16 shl ebx,16
@ -127,11 +122,10 @@ draw_icons:
mcall SF_DEFINE_BUTTON mcall SF_DEFINE_BUTTON
; button of color ; button of color
mov [Icon_X],7+128+1 mov [Icon_X],ci_panel_x_pos+131
mov [Icon_Y],19+15+4+25+1
mov ebx,[Icon_X] mov ebx,[Icon_X]
mov ecx,[Icon_Y] mov ecx,ci_panel_but_y1-1
dec ebx dec ebx
dec ecx dec ecx
shl ebx,16 shl ebx,16
@ -142,6 +136,7 @@ draw_icons:
add edx,1000000000000000000000000000000b add edx,1000000000000000000000000000000b
mcall SF_DEFINE_BUTTON mcall SF_DEFINE_BUTTON
mcall SF_DRAW_RECT, 136*65536+19,64*65536+19,[Color] mcall SF_DRAW_RECT, ((ci_panel_x_pos+130) shl 16)+21,\
((ci_panel_y_pos+28) shl 16)+21, [Color]
ret ret

View File

@ -321,7 +321,8 @@ TakeButtonInstruments:
and ebx,0xffffff and ebx,0xffffff
mov [Color],ebx mov [Color],ebx
mcall SF_DRAW_RECT, 136*65536+20, 65*65536+21, [Color] mcall SF_DRAW_RECT, ((ci_panel_x_pos+130) shl 16)+21,\
((ci_panel_y_pos+28) shl 16)+21, [Color]
jmp still jmp still
no_pipetka: no_pipetka:
@ -618,13 +619,13 @@ TakeButtonInstruments:
jne no_palette jne no_palette
mov eax,20 mov eax,20
mov ebx,100 mov ebx,ci_palete_y_pos
mov ecx,32*10+32*5+7 mov ecx,32*10+32*5+7
mov edx,8*10+7*10 mov edx,140
mov esi,1 mov esi,1
call draw_volume_rectangle call draw_volume_rectangle
mov [x],20+5 mov [x],20+5
mov [y],100+10 mov [y],ci_palete_y_pos+10
mov edi,256 mov edi,256
xor esi,esi xor esi,esi
next_rectangle: next_rectangle:
@ -675,7 +676,7 @@ TakeButtonInstruments:
jz wait_events jz wait_events
call GetMouseCoordinats call GetMouseCoordinats
mov [x],20+5 mov [x],20+5
mov [y],100+10 mov [y],ci_palete_y_pos+10
mov [counter],0 mov [counter],0
next_rectangle_column: next_rectangle_column:
mov eax,[x] mov eax,[x]

View File

@ -0,0 +1,169 @@
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
init_main_menu:
stdcall [kmenu_init], syscolors
stdcall [ksubmenu_new]
mov [main_menu], eax
stdcall [ksubmenu_new]
mov [main_menu_file], eax
stdcall [ksubmenu_new]
mov [main_menu_edit], eax
stdcall [ksubmenu_new]
mov [main_menu_instr], eax
; init 'File' menu
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 0x71
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 0x72
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 0x73
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_SaveAs, 0x74
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 0x75
stdcall [ksubmenu_add], [main_menu_file], eax
; add 'File' menu to main
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
stdcall [ksubmenu_add], [main_menu], eax
; init 'Edit' menu
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Undo, 0x61
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Redo, 0x62
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Copy, 0x63
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Paste, 0x64
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Cut, 0x65
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_edit], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_ClS, 0x66
stdcall [ksubmenu_add], [main_menu_edit], eax
; add 'Edit' menu to main
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
stdcall [ksubmenu_add], [main_menu], eax
; init 'Edit' menu
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
stdcall [ksubmenu_add], [main_menu_instr], eax
; add 'Instruments' menu to main
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
stdcall [ksubmenu_add], [main_menu], eax
ret
put_main_menu:
stdcall [kmainmenu_draw], [main_menu]
ret
button_handler_main_menu:
cmp eax, 0x71
jne @f
mov [number_panel], 7
mov [number_menu], 1
jmp TakeInstruments
@@:
cmp eax, 0x72
jne @f
mov [number_panel], 7
mov [number_menu], 2
jmp TakeInstruments
@@:
cmp eax, 0x73
jne @f
mov [number_panel], 7
mov [number_menu], 3
jmp TakeInstruments
@@:
cmp eax, 0x74
jne @f
mov [number_panel], 7
mov [number_menu], 4
jmp TakeInstruments
@@:
cmp eax, 0x75
jne @f
mov [number_panel], 7
mov [number_menu], 5
jmp TakeInstruments
@@:
cmp eax, 0x61
jne @f
mov [number_panel], 6
mov [number_menu], 1
jmp TakeInstruments
@@:
cmp eax, 0x62
jne @f
mov [number_panel], 6
mov [number_menu], 2
jmp TakeInstruments
@@:
cmp eax, 0x63
jne @f
mov [number_panel], 6
mov [number_menu], 3
jmp TakeInstruments
@@:
cmp eax, 0x64
jne @f
mov [number_panel], 6
mov [number_menu], 4
jmp TakeInstruments
@@:
cmp eax, 0x65
jne @f
mov [number_panel], 6
mov [number_menu], 5
jmp TakeInstruments
@@:
cmp eax, 0x66
jne @f
mov [number_panel], 6
mov [number_menu], 6
jmp TakeInstruments
@@:
cmp eax, 0x51
jne @f
mov [number_panel], 5
mov [number_menu], 1
jmp TakeInstruments
@@:
.end_handler:
ret
main_menu dd 0
main_menu_file dd 0
main_menu_edit dd 0
main_menu_instr dd 0
sz_main_menu_File db 'File', 0
sz_main_menu_File_New db 'New', 0
sz_main_menu_File_Open db 'Open', 0
sz_main_menu_File_Save db 'Save', 0
sz_main_menu_File_SaveAs db 'Save as', 0
sz_main_menu_File_Exit db 'Exit', 0
sz_main_menu_Edit db 'Edit', 0
sz_main_menu_Edit_Undo db 'Undo', 0
sz_main_menu_Edit_Redo db 'Redo', 0
sz_main_menu_Edit_Copy db 'Copy', 0
sz_main_menu_Edit_Paste db 'Paste', 0
sz_main_menu_Edit_Cut db 'Cut', 0
sz_main_menu_Edit_ClS db 'Clear screen', 0
sz_main_menu_Instr db 'Instruments', 0
sz_main_menu_Instr_Pencil db 'Pencil', 0

View File

@ -6,76 +6,33 @@ TakeInstruments:
cmp [number_panel],7 cmp [number_panel],7
jne no_file jne no_file
;<<<<<NEW>>>>>>> ; <<< New >>>
cmp [number_menu],1 cmp [number_menu],1
jne no_new jne no_new
mov eax,80 call dialog2_draw
mov ebx,100
mov ecx,150
mov edx,90
mov esi,1
call draw_volume_rectangle
mov eax,177
mov ebx,115
mov ecx,40
mov edx,14
mov esi,4
call draw_volume_rectangle
mov eax,177
mov ebx,115+24
mov ecx,40
mov edx,14
mov esi,4
call draw_volume_rectangle
mov eax,175
mov ebx,170
mov ecx,40
mov edx,15
mov esi,1
call draw_volume_rectangle
mov eax,90
mov ebx,118
mov ecx,0xffffff
mov edx,new_text1
mov esi,14
call print_text
mov eax,90
mov ebx,118+24
mov ecx,0xffffff
mov edx,new_text2
mov esi,14
call print_text
mov eax,185
mov ebx,175
mov ecx,0xffffff
mov edx,ok_text
mov esi,2
call print_text
mov edx,1000000000000000000000000000000b+1000 mov edx,1000000000000000000000000000000b+1000
mcall SF_DEFINE_BUTTON,<177,40>,<115,14>, mcall SF_DEFINE_BUTTON,<177,40>,<115,14>,
mov edx,1000000000000000000000000000000b+1001 mov edx,1000000000000000000000000000000b+1001
mcall ,,<139,14>, mcall ,,<139,14>,
mov edx,1000000000000000000000000000000b+1002 mov edx,1000000000000000000000000000000b+1002
mcall ,<175,40>,<170,15> mcall ,,<170,15>
no_activate_space: no_activate_space:
mcall SF_SLEEP, 5 ;fix cpu use 100%
mcall SF_WAIT_EVENT mcall SF_WAIT_EVENT
cmp eax,1 cmp eax,1 ;redraw window
je exit_new jne @f
call dialog2_draw
jmp no_activate_space
@@:
cmp eax,3 cmp eax,3 ;press button
jne no_activate_space jne no_activate_space
mcall SF_GET_BUTTON mcall SF_GET_BUTTON
shr eax,8 shr eax,8
@ -98,7 +55,7 @@ no_activate_space:
dec eax dec eax
mov [length_number],eax mov [length_number],eax
mov eax,string_ mov eax,string_
call value call str_to_int
mov [Picture_SizeX],eax mov [Picture_SizeX],eax
jmp no_activate_space jmp no_activate_space
@ -119,7 +76,7 @@ no_picture_size_x:
dec eax dec eax
mov [length_number],eax mov [length_number],eax
mov eax,string_ mov eax,string_
call value call str_to_int
mov [Picture_SizeY],eax mov [Picture_SizeY],eax
jmp no_activate_space jmp no_activate_space
@ -130,27 +87,27 @@ no_picture_size_y:
exit_new: exit_new:
mov edx,11100000000000000000000000000000b+1002 mov edx,11100000000000000000000000000000b+1002
mcall SF_DEFINE_BUTTON,<175,40>,<170,15> mcall SF_DEFINE_BUTTON,<177,40>,<170,15>
mov edx,11100000000000000000000000000000b+1001 mov edx,11100000000000000000000000000000b+1001
mcall ,<177,40>,<139,14> mcall ,,<139,14>
mov edx,11100000000000000000000000000000b+1000 mov edx,11100000000000000000000000000000b+1000
mcall ,,<115,14> mcall ,,<115,14>
;get memory for new picture ;get memory for new picture
call GetMemory call GetMemory
and [save_flag],0 and [save_flag],0
and [number_panel],0 and [number_panel],0
and [number_menu],0 and [number_menu],0
call cleare_work_arrea call cleare_work_arrea
call drawwin call drawwin
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_new: no_new:
;<<<<<OPEN>>>>>>> ; <<< Open >>>
cmp [number_menu],2 cmp [number_menu],2
jne no_open jne no_open
@ -173,7 +130,7 @@ no_new:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_open: no_open:
;<<<<<<<<<<<SAVE>>>>>>>>>>>> ; <<< Save >>>
cmp [number_menu],3 cmp [number_menu],3
jne no_save_ jne no_save_
@ -188,7 +145,7 @@ no_save_file:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_save_: no_save_:
;<<<<<<<<<SAVE AS>>>>>>>>>>> ; <<< Save as >>>
cmp [number_menu],4 cmp [number_menu],4
jne no_save jne no_save
@ -211,9 +168,7 @@ no_save_:
pop esi eax pop esi eax
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
mov [OpenDialog_data.type],1 ; save mov [OpenDialog_data.type],1 ; save
stdcall [OpenDialog_Start],OpenDialog_data
push dword OpenDialog_data
call [OpenDialog_Start]
cmp [OpenDialog_data.status],1 cmp [OpenDialog_data.status],1
jne still jne still
@ -222,7 +177,7 @@ save1:
save_enter: save_enter:
mcall SF_SET_EVENTS_MASK,0x80000027 ;100111b mcall SF_SET_EVENTS_MASK,0x80000027 ;100111b
call analizing_picture_to_palette call analizing_picture_to_palette
;eax => number of colors in picture ;eax => number of colors in picture
mov ebx,[PointerToPicture] mov ebx,[PointerToPicture]
@ -251,7 +206,7 @@ save_enter:
; jmp still ; jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_save: no_save:
;<<<<<<EXIT>>>>>>> ; <<< Exit >>>
cmp [number_menu],5 cmp [number_menu],5
jne no_exit_program jne no_exit_program
@ -260,10 +215,10 @@ no_save:
no_exit_program: no_exit_program:
no_file: no_file:
;|||||||||||||||||||||||||||||EDIT||||||||||||||||||||||||| ;|||||||||||||||||||||||||||||EDIT|||||||||||||||||||||||||
;<<<<<<<<<<UNDO>>>>>>>>>>
cmp [number_panel],6 cmp [number_panel],6
jne still ;no_edit jne no_edit
; <<< Undo >>>
cmp [number_menu],1 cmp [number_menu],1
jne no_undo jne no_undo
@ -280,13 +235,35 @@ no_file:
mov [PointerToCopyPicture2],eax mov [PointerToCopyPicture2],eax
call MovePictureToWorkScreen call MovePictureToWorkScreen
and [number_panel],0 and [number_panel],0
and [number_menu],0 and [number_menu],0
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_undo: no_undo:
;<<<<<<<<<<COPY>>>>>>>>>> ; <<< Redo >>>
cmp [number_menu],2 cmp [number_menu],2
jne no_redo
cmp [number_undo],0
je no_redo
;rotate bufers +1
dec [number_undo]
mov eax,[PointerToPicture]
mov ebx,[PointerToCopyPicture]
mov ecx,[PointerToCopyPicture2]
mov [PointerToPicture],ecx
mov [PointerToCopyPicture],eax
mov [PointerToCopyPicture2],ebx
call MovePictureToWorkScreen
and [number_panel],0
and [number_menu],0
jmp still
;---------------------------------------------------------------------
no_redo:
; <<< Copy >>>
cmp [number_menu],3
jne no_copy jne no_copy
cmp [instrument_used],1 cmp [instrument_used],1
@ -385,8 +362,8 @@ loop_fill_rectangle_x_copy:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_copy: no_copy:
;<<<<<<<<<<PASTE>>>>>>>> ; <<< Paste >>>
cmp [number_menu],3 cmp [number_menu],4
jne no_paste jne no_paste
cmp [instrument_used],1 cmp [instrument_used],1
@ -480,8 +457,8 @@ loop_fill_rectangle_x_paste:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_paste: no_paste:
;<<<<<<<<<<CUT>>>>>>>>>> ; <<< Cut >>>
cmp [number_menu],4 cmp [number_menu],5
jne no_cut jne no_cut
cmp [instrument_used],1 cmp [instrument_used],1
@ -573,8 +550,8 @@ loop_fill_rectangle_x:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_cut: no_cut:
;<<<<<<CLEARE ALL>>>>>> ; <<< Cleare all >>>
cmp [number_menu],5 cmp [number_menu],6
jne no_cleare_all jne no_cleare_all
call cleare_work_arrea call cleare_work_arrea
@ -585,9 +562,9 @@ no_cut:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
no_cleare_all: no_cleare_all:
;<<<<<<TO ALLOCATE ALL>>>>>> ; <<< To allocate all >>>
cmp [number_menu],6 cmp [number_menu],7
jne still ;no_to_allocate_all jne still ;no_to_allocate_all
mov [OldX],1 mov [OldX],1
mov [OldY],1 mov [OldY],1
@ -608,6 +585,19 @@ no_cleare_all:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
;no_to_allocate_all: ;no_to_allocate_all:
;no_edit: no_edit:
; jmp still ;|||||||||||||||||||||||||INSTRUMENTS||||||||||||||||||||||
cmp [number_panel],5
jne no_instruments
; <<< Pencil >>>
cmp [number_menu],1
jne no_pencil
; ... todo ...
and [number_panel],0
and [number_menu],0
no_pencil:
no_instruments:
jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------

View File

@ -1,93 +1,9 @@
;********************************************************** ;**********************************************************
;------------------TEXT DATA------------------------------- ;------------------TEXT DATA-------------------------------
;********************************************************** ;**********************************************************
name_of_program db 'ANIMAGE graphics editor v1.4',0 name_of_program db 'ANIMAGE graphics editor v1.5',0
mouse_pos_x db 'X=' mouse_pos_x db 'X='
mouse_pos_y db 'Y=' mouse_pos_y db 'Y='
new_text1 db 'PICTURE SIZE X' new_text1 db 'PICTURE SIZE X'
new_text2 db 'PICTURE SIZE Y' new_text2 db 'PICTURE SIZE Y'
ok_text db 'OK' ok_text db 'OK'
panel_text: dd 15,24,4
db 'File'
dd 65,24,4
db 'Edit'
dd 115,24,11
db 'Instruments'
dd 235,24,7
db 'Palette'
dd 315,24,7
db 'Filters'
dd 395,24,9
db 'Animation'
dd 495,24,5
db 'Help '
menu_text_en:
dd menu_text7
dd menu_text6
dd menu_text5
dd menu_text4
dd menu_text3
dd menu_text2
dd menu_text1
dd 0,0,0
menu_rectangles: dd 485,36,120,100
dd 385,36,120,100
dd 295,36,120,100
dd 225,36,120,100
dd 105,36,120,100
dd 55,36,120,100;20
dd 5,36,120,100
menu_text1:
dd 15,43,3
db 'New'
dd 15,63,4
db 'Open'
dd 15,83,4
db 'Save'
dd 15,103,7
db 'Save as'
dd 15,123,4
db 'Exit'
menu_text2:
dd 65,43,4
db 'Undo'
dd 65,63,4
db 'Copy'
dd 65,83,5
db 'Paste'
dd 65,103,3
db 'Cut'
dd 65,123,13
db 'Clear screen'
;dd 95,143,12
;db 'Allocate all'
menu_text3:
dd 115,43,3
db 0,0,0;'Pencil'
dd 115,63,3
db 0,0,0;'Brushes'
dd 115,83,3
db 0,0,0;'Colors'
dd 115,103,3
db 0,0,0;'Pipetka'
menu_text4:
dd 235,43,1
db 0,0,0
menu_text5:
dd 315,43,1
db 0,0,0
menu_text6:
dd 395,43,1
db 0,0,0
menu_text7:
dd 495,43,1
db 0,0,0,0
menu_counters:
dd 1,1,1,1,1,5,5

View File

@ -2,76 +2,12 @@
;-----interraction panel with user---------------- ;-----interraction panel with user----------------
;------------------------------------------------- ;-------------------------------------------------
panel_interraction: panel_interraction:
;>>>>>>>>>>>>>>>>>>>>>>>>>>
; mcall 18,14
and [Panel_flag],0 and [Panel_flag],0
;collision with text on panel
next_columnus_text:
mov eax,[edi]
mov ebx,[edi+4]
sub eax,10
sub ebx,3
mov [Icon_text_x],eax
mov [Icon_text_y],ebx
mov esi,[edi+8]
imul esi,10
mov [button_menu_size_x],esi
mov [button_menu_size_y],dword 13
mov esi,[edi+8]
add edi,4*3
add edi,esi
mov ecx,[MouseX]
mov edx,[MouseY]
push edi
mov edi,[button_menu_size_y]
mov esi,[button_menu_size_x]
call columnus
pop edi
mov esi,7
test eax,eax
jz no_columnus_text
mov esi,1
mov [Panel_flag],1
call GetMouseClick
test eax,eax
jz no_mouse_pressed
; mcall 18,14
jmp print_panel_menu
no_mouse_pressed:
no_columnus_text:
mov eax,[Icon_text_x]
mov ebx,[Icon_text_y]
mov ecx,[button_menu_size_x]
mov edx,[button_menu_size_y]
call draw_volume_rectangle
push [counter]
push edi
mov [counter],7
mov edi,panel_text
call print_panel_text
pop edi
pop [counter]
dec [counter]
jnz next_columnus_text
jmp still jmp still
;--------------------------------------------------------- ;---------------------------------------------------------
;-----draw panel menu(main engin of panel)---------------- ;-----draw panel menu(main engin of panel)----------------
;--------------------------------------------------------- ;---------------------------------------------------------
print_panel_menu: print_panel_menu:
push [counter]
;delit main buttons(some time) ;delit main buttons(some time)
mov [counter],10 mov [counter],10
@ -83,7 +19,7 @@ next_icon_delit1:
cmp [counter],30 cmp [counter],30
jl next_icon_delit1 jl next_icon_delit1
;delit buttons of brushes ;delit buttons of brushes
mov [counter],40 mov [counter],40
next_icon_delit2: next_icon_delit2:
@ -94,7 +30,7 @@ next_icon_delit2:
cmp [counter],45 cmp [counter],45
jl next_icon_delit2 jl next_icon_delit2
;delit buttons of zoom ;delit buttons of zoom
mov [counter],45 mov [counter],45
next_icon_delit3: next_icon_delit3:
@ -115,144 +51,18 @@ next_icon_delit3:
add edx,11100000000000000000000000000000b add edx,11100000000000000000000000000000b
mcall SF_DEFINE_BUTTON mcall SF_DEFINE_BUTTON
pop [counter]
push esi
mov esi,[counter]
dec esi
shl esi,4
mov eax,[menu_rectangles+esi]
mov ebx,[menu_rectangles+esi+4]
mov ecx,[menu_rectangles+esi+8]
mov edx,[menu_rectangles+esi+12]
mov esi,1
mov [menu_coordinat_x],eax
mov [menu_size_x],ecx
call draw_volume_rectangle
pop esi
calculate_counter_menu:
;calculate menu counter
mov eax,[counter]
dec eax
shl eax,2
mov ebx,[menu_counters+eax]
mov [counter_menu],ebx
call GetMouseCoordinats
and [menu_counter],0
push esi edi
;ᣫ ¦¨¢ ­¨¥  ­¨¬ æ¨¨ >>>>>>>>>>>>>>>>>>
; mcall 18,4
menu_loop:
mov eax,[menu_coordinat_x]
mov ebx,36
mov ecx,[MouseX]
mov edx,[MouseY]
mov esi,[menu_size_x]
mov edi,18
add ebx,[menu_counter]
add eax,2
sub esi,3
inc ebx
call columnus
mov esi,7
test eax,eax
jz no_columnus_menu_text
mov esi,1
no_columnus_menu_text:
mov eax,[menu_coordinat_x]
mov ebx,36
mov ecx,[menu_size_x]
mov edx,18
add ebx,[menu_counter]
add eax,2
sub ecx,3
inc ebx
call draw_volume_rectangle
add [menu_counter],20
dec [counter_menu]
jnz menu_loop
;print menu text
push [counter]
mov esi,[counter]
dec esi
shl esi,2
mov edi,[menu_text_en+esi]
mov eax,[menu_counters+esi]
mov [counter],eax
call print_panel_text
pop [counter]
pop edi esi
menu_still:
mcall SF_WAIT_EVENT
mcall SF_GET_KEY
mcall SF_GET_BUTTON
call GetMouseClick
test eax,eax
jz calculate_counter_menu
call GetMouseCoordinats call GetMouseCoordinats
;calculate menu counter
mov eax,[counter]
dec eax
shl eax,2
mov ebx,[menu_counters+eax]
mov [counter_menu],ebx
and [menu_counter],0 and [menu_counter],0
and [counter_11],0 and [counter_11],0
push esi edi
menu_loop2:
mov eax,[menu_coordinat_x]
mov ebx,36
mov ecx,[MouseX]
mov edx,[MouseY]
mov esi,[menu_size_x]
mov edi,18
add ebx,[menu_counter]
add eax,2
sub esi,3
inc ebx
call columnus
inc [counter_11]
test eax,eax
jz no_columnus_menu_text2
mov esi,[counter_11]
mov [number_menu],esi
no_columnus_menu_text2:
add [menu_counter],20
dec [counter_menu]
jnz menu_loop2
pop edi esi
mcall SF_SLEEP,15 mcall SF_SLEEP,15
push [counter]
pusha pusha
call drawwin call drawwin
popa popa
pop [counter]
mov eax,[counter] mov [number_panel],0
mov [number_panel],eax
jmp TakeInstruments jmp TakeInstruments
@ -262,80 +72,58 @@ no_columnus_menu_text2:
PrintMousePos: PrintMousePos:
pushad pushad
mov eax,[Window_SizeX] mov eax,[Window_SizeX]
sub eax,75 sub eax,75+ci_offs_skin_w
mov ebx,20+15+6 mov ebx,ci_panel_y_pos+6
mov ecx,52 mov ecx,52
mov edx,18 mov edx,18
mov esi,4 mov esi,4
call draw_volume_rectangle ; border for mouse x pos call draw_volume_rectangle ; border for mouse x pos
mov eax,[Window_SizeX] mov eax,[Window_SizeX]
sub eax,75 sub eax,75+ci_offs_skin_w
mov ebx,20+15+6+18+2 mov ebx,ci_panel_y_pos+6+18+4
mov ecx,52 mov ecx,52
mov edx,18 mov edx,18
mov esi,4 mov esi,4
call draw_volume_rectangle ; border for mouse y pos call draw_volume_rectangle ; border for mouse y pos
mov eax,[Window_SizeX] mov eax,[Window_SizeX]
sub eax,70 sub eax,70+ci_offs_skin_w
mov ebx,20+15+6+6 mov ebx,ci_panel_y_pos+6+6
and ecx,0 and ecx,0
mov edx,mouse_pos_x mov edx,mouse_pos_x
mov esi,2 mov esi,2
call print_text call print_text
mov eax,[Window_SizeX] mov eax,[Window_SizeX]
sub eax,70 sub eax,70+ci_offs_skin_w
mov ebx,20+15+6+6+18+1 mov ebx,ci_panel_y_pos+6+6+18+4
and ecx,0 and ecx,0
mov edx,mouse_pos_y mov edx,mouse_pos_y
mov esi,2 mov esi,2
call print_text call print_text
mov ecx,[ScreenX] mov ecx,[ScreenX]
add ecx,[PosX] add ecx,[PosX]
mov edx,[Window_SizeX] mov edx,[Window_SizeX]
sub edx,55 sub edx,55+ci_offs_skin_w
shl edx,16 shl edx,16
add edx,20+15+6+6 add edx,ci_panel_y_pos+6+6
and esi,0 and esi,0
mcall SF_DRAW_NUMBER,<4,0> mcall SF_DRAW_NUMBER,<4,0>
mov ecx,[ScreenY] mov ecx,[ScreenY]
add ecx,[PosY] add ecx,[PosY]
mov edx,[Window_SizeX] mov edx,[Window_SizeX]
sub edx,55 sub edx,55+ci_offs_skin_w
shl edx,16 shl edx,16
add edx,20+15+6+18+1+6 add edx,ci_panel_y_pos+6+18+4+6
mcall mcall
popad popad
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
;----------print text on the panel and menu----------------
;----------------------------------------------------------
print_panel_text:
next_panel_text:
mov eax,[edi]
mov ebx,[edi+4]
; xor ecx,ecx
mov ecx,0x10000000
mov edx,edi
add edx,12
mov esi,[edi+8]
add edi,esi
add edi,3*4
push edi
call print_text
pop edi
dec [counter]
jnz next_panel_text
ret
;----------------------------------------------------------
;------------draw lines of scoll--------------------------- ;------------draw lines of scoll---------------------------
;---------------------------------------------------------- ;----------------------------------------------------------
draw_scrollers: draw_scrollers:

View File

@ -245,9 +245,8 @@ big_pixel_x:
fps: fps:
mov ebx,[ScreenPointer] mov ebx,[ScreenPointer]
mov ecx,[WorkScreen_SizeX] mov ecx,[WorkScreen_SizeX]
mov edx,[WorkScreen_SizeY]
shl ecx,16 shl ecx,16
add ecx,edx add ecx,[WorkScreen_SizeY]
mov edx,((ci_edit_wnd_x_pos+ci_edit_wnd_border) shl 16)\ mov edx,((ci_edit_wnd_x_pos+ci_edit_wnd_border) shl 16)\
+ (ci_edit_wnd_y_pos+ci_edit_wnd_border) + (ci_edit_wnd_y_pos+ci_edit_wnd_border)
mcall SF_PUT_IMAGE mcall SF_PUT_IMAGE
@ -263,6 +262,7 @@ cleare_screen:
mov eax,0xffffffff mov eax,0xffffffff
mov ecx,ebx mov ecx,ebx
shr ecx,2 shr ecx,2
cld
rep stosd rep stosd
mov ecx,ebx mov ecx,ebx
and ecx,3 and ecx,3
@ -279,6 +279,7 @@ cleare_work_arrea:
mov eax,0xffffffff mov eax,0xffffffff
mov ecx,ebx mov ecx,ebx
shr ecx,2 shr ecx,2
cld
rep stosd rep stosd
mov ecx,ebx mov ecx,ebx
and ecx,3 and ecx,3