Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6359 → Rev 6358

/programs/media/animage/trunk/menu.inc
File deleted
\ No newline at end of file
/programs/media/animage/trunk/animage.asm
1,31 → 1,24
;*******************************************************
;**************GRAPHICS EDITOR ANIMAGE *****************
;*******************************************************
; version: 1.5
; last update: 21.03.2016
; changes: Use library 'kmenu.obj'
; autors: IgorA, Veliant
;--------------------------------------------------------
; version: 1.4
; last update: 12.03.2016
; last update: 12/03/2016
; changes: Use library 'libimg.obj'
; autors: IgorA
;--------------------------------------------------------
; version: 1.3
; last update: 05.10.2010
; last update: 05/10/2010
; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Fixed window flicker when redrawing,
; Fixed memory leak for stack
;--------------------------------------------------------
; version: 1.2
; last update: 30.09.2010
; last update: 30/09/2010
; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Program used function 68 instead 64 is now,
; select path with OpenDialog
;--------------------------------------------------------
; version: 1.1
; last update: 09.12.2006
; autors:
; version 1.1 year 9.12.2006
; AUTORS:
; programming by andrew_programmer
; design by golus
 
55,23 → 48,16
; *** constants for interface ***
 
; ª®à४â¨à®¢ª¨ ­  ᪨­
ci_offs_skin_w equ 5 ;ª®à४â¨à®¢ª  ­  è¨à¨­ã à ¬ª¨ ᪨­ 
ci_offs_skin_h equ 24 ;ª®à४â¨à®¢ª  ­  ¢ëá®âã ᪨­ 
ci_offs_skin_w equ 0 ; 5 ;ª®à४â¨à®¢ª  ­  è¨à¨­ã à ¬ª¨ ᪨­ 
ci_offs_skin_h equ 0 ;24 ;ª®à४â¨à®¢ª  ­  ¢ëá®âã ᪨­ 
 
; £« ¢­®¥ ®ª­®
ci_wnd_min_siz_x equ 585 ;minimum size x
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 0 ;ª®®à¤¨­ â  x ¤«ï ®ª­  । ªâ®à 
ci_edit_wnd_y_pos equ 71 ;ª®®à¤¨­ â  y ¤«ï ®ª­  । ªâ®à 
ci_edit_wnd_x_pos equ 5 ;ª®®à¤¨­ â  x ¤«ï ®ª­  । ªâ®à 
ci_edit_wnd_y_pos equ 87 ;ª®®à¤¨­ â  y ¤«ï ®ª­  । ªâ®à 
ci_edit_wnd_border equ 3 ;à ¬ª  ¢®ªà㣠®ª­  । ªâ®à 
 
; áªà®««¨­£¨
93,7 → 79,6
 
START:
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
 
112,7 → 97,6
call GetMemory
call cleare_work_arrea
call load_icons
call init_main_menu
 
;load cursors
mov eax,CursorsID
193,7 → 177,6
include 'palette.inc'
include 'files.inc'
include 'time.inc'
include 'menu.inc'
;-----------------------------------------------------------
;------------variables and data of program------------------
;-----------------------------------------------------------
354,9 → 337,6
library_path rb 4096
cur_dir_path rb 4096
procinfo: rb 1024
align 4
syscolors rb 192
syscolors_end:
;---------------------------------------------------------------------
align 4
rb 4096
/programs/media/animage/trunk/events_of_mouse.inc
2,8 → 2,6
;-------------interraction MOUSE--------------
;---------------------------------------------
mouse:
stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
 
or ecx,-1
mcall SF_THREAD_INFO,procinfo
16,10 → 14,10
mov edx,[Window_SizeX]
sub edx,5
 
;cmp ebx,0
;jle no_panel
cmp ebx,20
jle no_panel
 
cmp ebx,ci_panel_y_pos
cmp ebx,20+15
jae no_panel
 
cmp eax,5
29,6 → 27,8
jae no_panel
 
call GetMouseCoordinats
mov [counter],7
mov edi,panel_text
jmp panel_interraction
 
no_panel:
35,6 → 35,8
cmp [Panel_flag],0
jz no_redraw_panel
 
mov [counter],7
mov edi,panel_text
jmp panel_interraction
 
no_redraw_panel:
/programs/media/animage/trunk/events_of_window.inc
51,7 → 51,7
shl ecx,16
add ebx, [Window_SizeX]
add ecx, [Window_SizeY]
mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
mcall SF_CREATE_WINDOW,,,0x53aabbcc,,name_of_program
mov eax,[procinfo+70] ;staus of window
test eax,100b
58,18 → 58,24
jne .end
;------------------------------------------------
mov ebx,[Window_SizeX]
sub ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
mov eax,5
mov ebx,20
mov ecx,[Window_SizeX]
mov edx,15
mov esi,6
sub ecx,10
call draw_volume_rectangle ; top menu - file and etc.
 
call put_main_menu
mov [counter],7
mov edi,panel_text
call print_panel_text
;------------------------------------------------
mov eax,ci_panel_x_pos
mov ebx,ci_panel_y_pos
mov eax,5
mov ebx,20+15+1
mov ecx,[Window_SizeX]
mov edx,50
mov esi,1
sub ecx,5+ci_panel_x_pos+ci_offs_skin_w
sub ecx,10
call draw_volume_rectangle ; tools panel
call draw_icons
call PrintMousePos
91,7 → 97,7
shl ecx,16
mov cx,dx ;¢ëá®â  ¡®à¤îà 
 
mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
;------------------------------------------------
mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;¡®à¤îà á«¥¢  ®â ®ª­ 
;------------------------------------------------
109,7 → 115,7
shl ecx,16
mov cx,dx ;¢ëá®â  ¡®à¤îà 
 
mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
;------------------------------------------------
mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
;------------------------------------------------
/programs/media/animage/trunk/panel_engen.inc
2,12 → 2,76
;-----interraction panel with user----------------
;-------------------------------------------------
panel_interraction:
;>>>>>>>>>>>>>>>>>>>>>>>>>>
; mcall 18,14
 
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
;---------------------------------------------------------
;-----draw panel menu(main engin of panel)----------------
;---------------------------------------------------------
print_panel_menu:
push [counter]
;delit main buttons(some time)
mov [counter],10
 
51,18 → 115,144
add edx,11100000000000000000000000000000b
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
;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 [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
 
push [counter]
pusha
call drawwin
popa
pop [counter]
 
mov [number_panel],0
mov eax,[counter]
mov [number_panel],eax
 
jmp TakeInstruments
 
72,8 → 262,8
PrintMousePos:
pushad
mov eax,[Window_SizeX]
sub eax,75+ci_offs_skin_w
mov ebx,ci_panel_y_pos+6
sub eax,75
mov ebx,20+15+6
mov ecx,52
mov edx,18
mov esi,4
80,8 → 270,8
call draw_volume_rectangle ; border for mouse x pos
 
mov eax,[Window_SizeX]
sub eax,75+ci_offs_skin_w
mov ebx,ci_panel_y_pos+6+18+4
sub eax,75
mov ebx,20+15+6+18+2
mov ecx,52
mov edx,18
mov esi,4
88,8 → 278,8
call draw_volume_rectangle ; border for mouse y pos
 
mov eax,[Window_SizeX]
sub eax,70+ci_offs_skin_w
mov ebx,ci_panel_y_pos+6+6
sub eax,70
mov ebx,20+15+6+6
and ecx,0
mov edx,mouse_pos_x
mov esi,2
96,8 → 286,8
call print_text
 
mov eax,[Window_SizeX]
sub eax,70+ci_offs_skin_w
mov ebx,ci_panel_y_pos+6+6+18+4
sub eax,70
mov ebx,20+15+6+6+18+1
and ecx,0
mov edx,mouse_pos_y
mov esi,2
106,9 → 296,9
mov ecx,[ScreenX]
add ecx,[PosX]
mov edx,[Window_SizeX]
sub edx,55+ci_offs_skin_w
sub edx,55
shl edx,16
add edx,ci_panel_y_pos+6+6
add edx,20+15+6+6
and esi,0
mcall SF_DRAW_NUMBER,<4,0>
 
115,9 → 305,9
mov ecx,[ScreenY]
add ecx,[PosY]
mov edx,[Window_SizeX]
sub edx,55+ci_offs_skin_w
sub edx,55
shl edx,16
add edx,ci_panel_y_pos+6+18+4+6
add edx,20+15+6+18+1+6
mcall
 
popad
124,6 → 314,28
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_scrollers:
/programs/media/animage/trunk/design.inc
13,11 → 13,10
cmp esi,1
jne no_volume_light_rectangle
 
;mov esi,dword[syscolors+20]
mov [color_rectangle],0xc7cbcf ;esi
mov [color_rectangle],0xc7cbcf
mov [color_line1],0xaeabae
mov [color_line2],0xffffff
mov [color_line3],0xc7cbcf ;esi
mov [color_line3],0xc7cbcf
jmp exit_colors
;----------------------------------------------------------
no_volume_light_rectangle:
34,8 → 33,7
cmp esi,3
jne no_pressed_panel
 
mov esi,dword[syscolors+20]
mov [color_rectangle],esi
mov [color_rectangle],0xc7cbcf
mov [color_line1],0xaeabae
mov [color_line2],7000
mov [color_line3],0xffffff
65,11 → 63,10
cmp esi,6
jne no_work_rectangle
 
mov esi,dword[syscolors+20]
mov [color_rectangle],esi
mov [color_rectangle],0xc7cbcf
mov [color_line1],0xaeabae
mov [color_line2],esi
mov [color_line3],esi
mov [color_line2],0xc7cbcf
mov [color_line3],0xc7cbcf
jmp exit_colors
;----------------------------------------------------------
no_work_rectangle:
76,11 → 73,10
cmp esi,7
jne no_work_rectangle_2
 
mov esi,dword[syscolors+20]
mov [color_rectangle],esi
mov [color_line1],esi
mov [color_line2],esi
mov [color_line3],esi
mov [color_rectangle],0xc7cbcf
mov [color_line1],0xc7cbcf
mov [color_line2],0xc7cbcf
mov [color_line3],0xc7cbcf
jmp exit_colors
;----------------------------------------------------------
no_work_rectangle_2:
/programs/media/animage/trunk/icons.inc
11,9 → 11,10
ret
 
draw_icons:
mov [Icon_X],ci_panel_x_pos+2
mov [Icon_Y],ci_panel_y_pos+3
 
mov [Icon_X],7
mov [Icon_Y],20+15+4
 
;draw panel picture
mov edx,[Icon_X]
shl edx,16
27,12 → 28,13
;main buttons of instrumnts
 
and [counter],0
mov [Icon_X],ci_panel_x_pos+4
mov [Icon_X],9
mov [Icon_Y],21+15+4+1
 
main_buttons:
 
mov ebx,[Icon_X]
mov ecx,ci_panel_but_y1
mov ecx,[Icon_Y]
dec ebx
dec ecx
shl ebx,16
55,12 → 57,13
;buttons of brushes(and lines width)
and [counter],0
 
mov [Icon_X],ci_panel_x_pos+4
mov [Icon_X],8+1
mov [Icon_Y],20+15+4+25+1
 
next_button_brush:
 
mov ebx,[Icon_X]
mov ecx,ci_panel_but_y2
mov ecx,[Icon_Y]
dec ebx
dec ecx
shl ebx,16
82,12 → 85,13
;buttons of zoom
and [counter],0
 
mov [Icon_X],ci_panel_x_pos+159
mov [Icon_X],8+155+1
mov [Icon_Y],20+15+4+25+1
 
next_button_zoom:
 
mov ebx,[Icon_X]
mov ecx,ci_panel_but_y2
mov ecx,[Icon_Y]
dec ebx
dec ecx
shl ebx,16
107,10 → 111,11
 
 
; button of palette
mov [Icon_X],ci_panel_x_pos+108
mov [Icon_X],7+105+1
mov [Icon_Y],19+15+4+25+1
 
mov ebx,[Icon_X]
mov ecx,ci_panel_but_y2-1
mov ecx,[Icon_Y]
dec ebx
dec ecx
shl ebx,16
122,10 → 127,11
mcall SF_DEFINE_BUTTON
 
; button of color
mov [Icon_X],ci_panel_x_pos+131
mov [Icon_X],7+128+1
mov [Icon_Y],19+15+4+25+1
 
mov ebx,[Icon_X]
mov ecx,ci_panel_but_y1-1
mov ecx,[Icon_Y]
dec ebx
dec ecx
shl ebx,16
136,7 → 142,6
add edx,1000000000000000000000000000000b
mcall SF_DEFINE_BUTTON
 
mcall SF_DRAW_RECT, ((ci_panel_x_pos+130) shl 16)+21,\
((ci_panel_y_pos+28) shl 16)+21, [Color]
mcall SF_DRAW_RECT, 136*65536+19,64*65536+19,[Color]
 
ret
/programs/media/animage/trunk/icons_instruments.inc
321,8 → 321,7
and ebx,0xffffff
mov [Color],ebx
 
mcall SF_DRAW_RECT, ((ci_panel_x_pos+130) shl 16)+21,\
((ci_panel_y_pos+28) shl 16)+21, [Color]
mcall SF_DRAW_RECT, 136*65536+20, 65*65536+21, [Color]
 
jmp still
no_pipetka:
619,13 → 618,13
jne no_palette
 
mov eax,20
mov ebx,ci_palete_y_pos
mov ebx,100
mov ecx,32*10+32*5+7
mov edx,140
mov edx,8*10+7*10
mov esi,1
call draw_volume_rectangle
mov [x],20+5
mov [y],ci_palete_y_pos+10
mov [y],100+10
mov edi,256
xor esi,esi
next_rectangle:
676,7 → 675,7
jz wait_events
call GetMouseCoordinats
mov [x],20+5
mov [y],ci_palete_y_pos+10
mov [y],100+10
mov [counter],0
next_rectangle_column:
mov eax,[x]
/programs/media/animage/trunk/screen.inc
245,8 → 245,9
fps:
mov ebx,[ScreenPointer]
mov ecx,[WorkScreen_SizeX]
mov edx,[WorkScreen_SizeY]
shl ecx,16
add ecx,[WorkScreen_SizeY]
add ecx,edx
mov edx,((ci_edit_wnd_x_pos+ci_edit_wnd_border) shl 16)\
+ (ci_edit_wnd_y_pos+ci_edit_wnd_border)
mcall SF_PUT_IMAGE
262,7 → 263,6
mov eax,0xffffffff
mov ecx,ebx
shr ecx,2
cld
rep stosd
mov ecx,ebx
and ecx,3
279,7 → 279,6
mov eax,0xffffffff
mov ecx,ebx
shr ecx,2
cld
rep stosd
mov ecx,ebx
and ecx,3
/programs/media/animage/trunk/menu_instruments.inc
6,12 → 6,59
cmp [number_panel],7
jne no_file
 
; <<< New >>>
;<<<<<NEW>>>>>>>
cmp [number_menu],1
jne no_new
 
call dialog2_draw
mov eax,80
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
mcall SF_DEFINE_BUTTON,<177,40>,<115,14>,
 
19,19 → 66,15
mcall ,,<139,14>,
 
mov edx,1000000000000000000000000000000b+1002
mcall ,,<170,15>
mcall ,<175,40>,<170,15>
 
no_activate_space:
mcall SF_SLEEP, 5 ;fix cpu use 100%
mcall SF_WAIT_EVENT
 
cmp eax,1 ;redraw window
jne @f
call dialog2_draw
jmp no_activate_space
@@:
cmp eax,1
je exit_new
 
cmp eax,3 ;press button
cmp eax,3
jne no_activate_space
 
mcall SF_GET_BUTTON
55,7 → 98,7
dec eax
mov [length_number],eax
mov eax,string_
call str_to_int
call value
 
mov [Picture_SizeX],eax
jmp no_activate_space
76,7 → 119,7
dec eax
mov [length_number],eax
mov eax,string_
call str_to_int
call value
 
mov [Picture_SizeY],eax
jmp no_activate_space
87,10 → 130,10
 
exit_new:
mov edx,11100000000000000000000000000000b+1002
mcall SF_DEFINE_BUTTON,<177,40>,<170,15>
mcall SF_DEFINE_BUTTON,<175,40>,<170,15>
 
mov edx,11100000000000000000000000000000b+1001
mcall ,,<139,14>
mcall ,<177,40>,<139,14>
 
mov edx,11100000000000000000000000000000b+1000
mcall ,,<115,14>
107,7 → 150,7
jmp still
;---------------------------------------------------------------------
no_new:
; <<< Open >>>
;<<<<<OPEN>>>>>>>
cmp [number_menu],2
jne no_open
 
130,7 → 173,7
jmp still
;---------------------------------------------------------------------
no_open:
; <<< Save >>>
;<<<<<<<<<<<SAVE>>>>>>>>>>>>
cmp [number_menu],3
jne no_save_
 
145,7 → 188,7
jmp still
;---------------------------------------------------------------------
no_save_:
; <<< Save as >>>
;<<<<<<<<<SAVE AS>>>>>>>>>>>
cmp [number_menu],4
jne no_save
 
168,8 → 211,10
pop esi eax
;---------------------------------------------------------------------
mov [OpenDialog_data.type],1 ; save
stdcall [OpenDialog_Start],OpenDialog_data
 
push dword OpenDialog_data
call [OpenDialog_Start]
 
cmp [OpenDialog_data.status],1
jne still
;---------------------------------------------------------------------
206,7 → 251,7
; jmp still
;---------------------------------------------------------------------
no_save:
; <<< Exit >>>
;<<<<<<EXIT>>>>>>>
cmp [number_menu],5
jne no_exit_program
 
215,10 → 260,10
no_exit_program:
no_file:
;|||||||||||||||||||||||||||||EDIT|||||||||||||||||||||||||
;<<<<<<<<<<UNDO>>>>>>>>>>
cmp [number_panel],6
jne no_edit
jne still ;no_edit
 
; <<< Undo >>>
cmp [number_menu],1
jne no_undo
 
240,30 → 285,8
jmp still
;---------------------------------------------------------------------
no_undo:
; <<< Redo >>>
;<<<<<<<<<<COPY>>>>>>>>>>
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
 
cmp [instrument_used],1
362,8 → 385,8
jmp still
;---------------------------------------------------------------------
no_copy:
; <<< Paste >>>
cmp [number_menu],4
;<<<<<<<<<<PASTE>>>>>>>>
cmp [number_menu],3
jne no_paste
 
cmp [instrument_used],1
457,8 → 480,8
jmp still
;---------------------------------------------------------------------
no_paste:
; <<< Cut >>>
cmp [number_menu],5
;<<<<<<<<<<CUT>>>>>>>>>>
cmp [number_menu],4
jne no_cut
 
cmp [instrument_used],1
550,8 → 573,8
jmp still
;---------------------------------------------------------------------
no_cut:
; <<< Cleare all >>>
cmp [number_menu],6
;<<<<<<CLEARE ALL>>>>>>
cmp [number_menu],5
jne no_cleare_all
 
call cleare_work_arrea
562,8 → 585,8
jmp still
;---------------------------------------------------------------------
no_cleare_all:
; <<< To allocate all >>>
cmp [number_menu],7
;<<<<<<TO ALLOCATE ALL>>>>>>
cmp [number_menu],6
jne still ;no_to_allocate_all
 
mov [OldX],1
585,19 → 608,6
jmp still
;---------------------------------------------------------------------
;no_to_allocate_all:
no_edit:
;|||||||||||||||||||||||||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
;no_edit:
; jmp still
;---------------------------------------------------------------------
/programs/media/animage/trunk/dialog2.inc
15,21 → 15,10
call print_cursor
 
opros:
mcall SF_SLEEP, 5 ;fix cpu use 100%
mcall SF_WAIT_EVENT
 
cmp eax,1 ;redraw window
jne @f
call dialog2_draw
 
mov ebx,[string_x]
shl ebx,16
add ebx,[string_y]
mov edx,string_
mov esi,[MaxSizeString]
mcall SF_DRAW_TEXT,,0
jmp opros
@@:
je exit_cycle
cmp eax,3 ;press button
je exit_cycle
 
163,13 → 152,9
MaxSizeString dd 0
string_x dd 0
string_y dd 0
 
;**********************************************************
;----------------------------------------------------------
;input:
; eax - pointer to string
;output:
; eax - value
str_to_int:
value:
xor edx,edx
cycle_value_:
xor ebx,ebx
247,58 → 232,5
error:
mov eax,edx
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
/programs/media/animage/trunk/panel_data.inc
1,9 → 1,93
;**********************************************************
;------------------TEXT DATA-------------------------------
;**********************************************************
name_of_program db 'ANIMAGE graphics editor v1.5',0
name_of_program db 'ANIMAGE graphics editor v1.4',0
mouse_pos_x db 'X='
mouse_pos_y db 'Y='
new_text1 db 'PICTURE SIZE X'
new_text2 db 'PICTURE SIZE Y'
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
/programs/media/animage/trunk/events_of_buttons.inc
4,30 → 4,40
buttons:
 
cmp [Current_instrument],21
jne @f
jne no_finish_instrument_button
 
cmp [instrument_used],1
jne @f
jne no_finish_instrument_button
 
cmp [Activate_instrument],0
jne @f
jne no_finish_instrument_button
 
cmp [crossing],1
jne @f
jne no_finish_instrument_button
 
mov [finishing_crossing],1
call TakeButtonInstruments
@@:
 
mcall SF_GET_BUTTON
no_finish_instrument_button:
 
mov eax,17
mcall
 
shr eax,8
 
cmp eax,1
jne no_exit
 
mov eax,CursorsID
call delete_cursors
mcall SF_TERMINATE_PROCESS
 
or eax,-1
mcall
 
no_exit:
 
 
mov [Current_instrument],eax
call button_handler_main_menu
 
; set cursor for current instrument
pushad
38,6 → 48,8
call set_cursor
popad
 
 
 
cmp eax,10
jl still