Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 6836 → Rev 6837

/programs/media/animage/trunk/animage.asm
35,18 → 35,18
; design by golus
 
use32
org 0x0
db 'MENUET01'
dd 1, START, IM_END, I_END
dd stacktop, file_path, cur_dir_path
org 0x0
db 'MENUET01'
dd 1, START, IM_END, I_END
dd stacktop, file_path, cur_dir_path
 
include '../../../config.inc' ;for nightbuild
include '../../../macros.inc'
include '../../../macros.inc'
include '../../../proc32.inc'
include '../../../KOSfuncs.inc'
include '../../../develop/libraries/box_lib/load_lib.mac'
include '../../../dll.inc'
include '../../../libio.inc'
include '../../../develop/libraries/libs-dev/libio/libio.inc'
include '../../../develop/libraries/libs-dev/libimg/libimg.inc'
;include '../../../debug.inc'
 
80,125 → 80,125
; áªà®««¨­£¨
ci_scroll_dim equ 22 ;à §¬¥àë áªà®««¨­£®¢
ci_scrollh_coord_x_min equ (ci_edit_wnd_x_pos+3) ;¬¨­¨¬ «ì­ ï ¯®§¨æ¨ï ¯®«§ã­ª 
;£®à¨§®­â «ì­®£® áªà®««¨­£ 
;£®à¨§®­â «ì­®£® áªà®««¨­£ 
ci_scrollv_coord_y_min equ (ci_edit_wnd_y_pos+3) ;¬¨­¨¬ «ì­ ï ¯®§¨æ¨ï ¯®«§ã­ª 
;¢¥à⨪ «ì­®£® áªà®««¨­£ 
;¢¥à⨪ «ì­®£® áªà®««¨­£ 
;---------------------------------------------------------
 
include 'bmplib.inc'
include 'dialog2.inc'
include 'design.inc'
include 'graphlib.inc'
include 'bmplib.inc'
include 'dialog2.inc'
include 'design.inc'
include 'graphlib.inc'
 
include 'cursors.inc'
include 'memory.inc'
include 'load_from_parameters.inc'
include 'cursors.inc'
include 'memory.inc'
include 'load_from_parameters.inc'
 
START:
mcall SF_SYS_MISC,SSF_HEAP_INIT
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, syscolors, syscolors_end-syscolors
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
 
cmp eax,-1
jz close
cmp eax,-1
jz close
 
mcall SF_SET_EVENTS_MASK,0x80000067 ; 1100111b
mcall SF_SET_EVENTS_MASK,0x80000067 ; 1100111b
;---------------------------------------------------------
;-----------------------init data-------------------------
;---------------------------------------------------------
include 'init_data.inc'
include 'init_data.inc'
 
;----------------------------------------------------------
;--------get memory and draw window of program-------------
;----------------------------------------------------------
call GetMemory
mov [Current_instrument],10 ;pencil
call TakeButtonInstruments ;set startup instrument
call cleare_work_arrea
call load_icons
call init_main_menu
call GetMemory
mov [Current_instrument],10 ;pencil
call TakeButtonInstruments ;set startup instrument
call cleare_work_arrea
call load_icons
call init_main_menu
 
;load cursors
mov eax,CursorsID
call load_cursors
mov eax,CursorsID
call load_cursors
 
;---------------------------------------------------------
;---------check loading of file from parameters-----------
;---------------------------------------------------------
mov eax,file_path
cmp [eax],byte 0
jz @f
call load_picture
call MovePictureToWorkScreen
mov eax,file_path
cmp [eax],byte 0
jz @f
call load_picture
call MovePictureToWorkScreen
@@:
 
;---------------------------------------------------------------------
mov edi,filename_area
mov esi,path4+5
call copy_str_1
mov edi,filename_area
mov esi,path4+5
call copy_str_1
 
mov edi,file_path
cmp [edi],byte 0
jne @f
mov esi,path4
call copy_str_1
mov edi,file_path
cmp [edi],byte 0
jne @f
mov esi,path4
call copy_str_1
@@:
;OpenDialog initialisation
stdcall [OpenDialog_Init], OpenDialog_data
;OpenDialog initialisation
stdcall [OpenDialog_Init], OpenDialog_data
;---------------------------------------------------------------------
 
align 4
red:
call drawwin
call drawwin
;----------------------------------------------------------
;---------------------main loop----------------------------
;----------------------------------------------------------
align 4
still:
mcall SF_WAIT_EVENT
mcall SF_WAIT_EVENT
 
cmp eax,1
je red
cmp eax,1
je red
 
cmp eax,2
je keys
cmp eax,2
je keys
 
cmp eax,3
je buttons
cmp eax,3
je buttons
 
cmp eax,6
je mouse
cmp eax,6
je mouse
 
jmp still
jmp still
;---------------------------------------------------------------------
copy_str_1:
xor eax,eax
cld
xor eax,eax
cld
@@:
lodsb
stosb
test eax,eax
jnz @b
ret
lodsb
stosb
test eax,eax
jnz @b
ret
;---------------------------------------------------------------------
include 'events.inc'
include 'events_of_window.inc'
include 'events_of_keys.inc'
include 'events_of_buttons.inc'
include 'events_of_mouse.inc'
include 'panel_engen.inc'
include 'screen.inc'
include 'events.inc'
include 'events_of_window.inc'
include 'events_of_keys.inc'
include 'events_of_buttons.inc'
include 'events_of_mouse.inc'
include 'panel_engen.inc'
include 'screen.inc'
include 'menu_instruments.inc'
include 'icons_instruments.inc'
include 'icons.inc'
include 'sprites.inc'
include 'string.inc'
include 'palette.inc'
include 'files.inc'
include 'time.inc'
include 'menu.inc'
include 'icons_instruments.inc'
include 'icons.inc'
include 'sprites.inc'
include 'string.inc'
include 'palette.inc'
include 'files.inc'
include 'time.inc'
include 'menu.inc'
;-----------------------------------------------------------
;------------variables and data of program------------------
;-----------------------------------------------------------
205,11 → 205,11
;sound_havent_memory db 150,64,0
 
include 'lib_data.inc'
include 'panel_data.inc'
include 'palitra256.inc'
include 'brushes.inc'
include 'spray.inc'
include 'width_lines.inc'
include 'panel_data.inc'
include 'palitra256.inc'
include 'brushes.inc'
include 'spray.inc'
include 'width_lines.inc'
;----------------------------------------------------------
;-------------------icon's picture-------------------------
;----------------------------------------------------------
244,117 → 244,117
;-----------------------------------------------------------
;------------variables and data of program------------------
;-----------------------------------------------------------
time rd 1
PosX rd 1 ;scroll x file position
PosY rd 1 ;scroll y file position
PointerToIcons rd 1
ScreenPointer rd 1
PointerToPicture rd 1
PointerToCopyPicture rd 1
PointerToCopyPicture2 rd 1
PointerToEditBufer rd 1
PointerToSpriteBufer rd 1
PointerToPalette rd 1 ;㪠§ â¥«ì ­  ¯¨«¨âàã (­ã¦¥­ ¤«ï á®åà ­¥­¨ï ¢ *.bmp)
Color rd 1
SColor rd 1
Number_Brush rd 1
Brush_SizeX rd 1
Brush_SizeY rd 1
Current_instrument rd 1
Last_instrument rd 1
OldX rd 1
OldY rd 1
time rd 1
PosX rd 1 ;scroll x file position
PosY rd 1 ;scroll y file position
PointerToIcons rd 1
ScreenPointer rd 1
PointerToPicture rd 1
PointerToCopyPicture rd 1
PointerToCopyPicture2 rd 1
PointerToEditBufer rd 1
PointerToSpriteBufer rd 1
PointerToPalette rd 1 ;㪠§ â¥«ì ­  ¯¨«¨âàã (­ã¦¥­ ¤«ï á®åà ­¥­¨ï ¢ *.bmp)
Color rd 1
SColor rd 1
Number_Brush rd 1
Brush_SizeX rd 1
Brush_SizeY rd 1
Current_instrument rd 1
Last_instrument rd 1
OldX rd 1
OldY rd 1
 
MouseX rd 1
MouseY rd 1
MouseBut rd 1 ;ᮡëâ¨ï ®â ª­®¯®ª ¬ëè¨
Window_SizeX rd 1
Window_SizeY rd 1
Window_CordinatX rd 1
Window_CordinatY rd 1
Picture_SizeX rd 1
Picture_SizeY rd 1
ScreenX rd 1 ;ª®®à¤¨­ â  x ªãàá®à  á ãç¥â®¬ ¬ áèâ ¡ 
ScreenY rd 1 ;ª®®à¤¨­ â  y ªãàá®à  á ãç¥â®¬ ¬ áèâ ¡ 
WorkScreen_SizeX rd 1 ;è¨à¨­  à ¡®ç¥£® íªà ­ 
WorkScreen_SizeY rd 1 ;¢ëá®â  à ¡®ç¥£® íªà ­ 
MaxWorkScreen_SizeX rd 1
MaxWorkScreen_SizeY rd 1
k rd 1 ;¬ áèâ ¡
MouseX rd 1
MouseY rd 1
MouseBut rd 1 ;ᮡëâ¨ï ®â ª­®¯®ª ¬ëè¨
Window_SizeX rd 1
Window_SizeY rd 1
Window_CordinatX rd 1
Window_CordinatY rd 1
Picture_SizeX rd 1
Picture_SizeY rd 1
ScreenX rd 1 ;ª®®à¤¨­ â  x ªãàá®à  á ãç¥â®¬ ¬ áèâ ¡ 
ScreenY rd 1 ;ª®®à¤¨­ â  y ªãàá®à  á ãç¥â®¬ ¬ áèâ ¡ 
WorkScreen_SizeX rd 1 ;è¨à¨­  à ¡®ç¥£® íªà ­ 
WorkScreen_SizeY rd 1 ;¢ëá®â  à ¡®ç¥£® íªà ­ 
MaxWorkScreen_SizeX rd 1
MaxWorkScreen_SizeY rd 1
k rd 1 ;¬ áèâ ¡
 
ReserveArray rd 1 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¨á¯®«ì§ã¥¬ãî ¯à¨ à¨á®¢ ­¨¨ 䨣ãà
;¤«ï á®åà ­¥­¨ï ãç á⪮¢ ä®­  ¯®¤ 䨣ãà ¬¨,   â ª¦¥ ¤«ï § «¨¢ª¨
CounterX rd 1 ;ç¨á«® ¯¨ªá¥«¥© ¨§®¡à ¦¥­¨ï ¯® è¨à¨­¥, ª®â®àë¥ ¯®¯ ¤ îâ
;¢ íªà ­ à ¡®ç¥© ®¡« áâ¨, á ãç¥â®¬ ⥪ã饣® ¬ áèâ ¡ 
CounterY rd 1
OffsetYPicture rd 1 ;ᤢ¨£ ¯® ®á¨ y ¢ ¡ãä¥à¥ ¨§®¡à ¦¥­¨ï ¯à¨ à¨á®¢ ­¨¨
;á«¥¤ãî饩 «¨­¨¨ ¨§®¡à ¦¥­¨ï
OffsetYWorkScreen rd 1 ;ᤢ¨£ ¯® ®á¨ y ¢ ¡ãä¥à¥ à ¡®ç¥© ®¡« á⨠¯à¨
;à¨á®¢ ­¨¨ á«¥¤ãî饩 «¨­¨¨ ¯¨ªá¥«¥©. —¥¬ ¡®«ìè¥ ¬ áèâ ¡, ⥬ ­¨¦¥
;­ã¦­® ®¯ã᪠âìáï ¯® à ¡®ç¥© ®¡« áâ¨.
OffsetYBigPixel rd 1 ;ᤢ¨£ ¯® ®á¨ y ¤«ï à¨á®¢ ­¨ï ¯¨ªá¥«¥© ­  ¡®«ì讬
;¬ áèâ ¡¥. ¨áã¥âáï 1-ï ¯®«®á  ¯¨ªá¥«ï,   ¯®â®¬ ­ã¦­® ¯¥à¥©â¨ ¢­¨§ ¨
;¢«¥¢® ¤«ï à¨á®¢ ­¨ï á«¥¤ãî饩 ¯®«®áë.
ReserveArray rd 1 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¨á¯®«ì§ã¥¬ãî ¯à¨ à¨á®¢ ­¨¨ 䨣ãà
;¤«ï á®åà ­¥­¨ï ãç á⪮¢ ä®­  ¯®¤ 䨣ãà ¬¨,   â ª¦¥ ¤«ï § «¨¢ª¨
CounterX rd 1 ;ç¨á«® ¯¨ªá¥«¥© ¨§®¡à ¦¥­¨ï ¯® è¨à¨­¥, ª®â®àë¥ ¯®¯ ¤ îâ
;¢ íªà ­ à ¡®ç¥© ®¡« áâ¨, á ãç¥â®¬ ⥪ã饣® ¬ áèâ ¡ 
CounterY rd 1
OffsetYPicture rd 1 ;ᤢ¨£ ¯® ®á¨ y ¢ ¡ãä¥à¥ ¨§®¡à ¦¥­¨ï ¯à¨ à¨á®¢ ­¨¨
;á«¥¤ãî饩 «¨­¨¨ ¨§®¡à ¦¥­¨ï
OffsetYWorkScreen rd 1 ;ᤢ¨£ ¯® ®á¨ y ¢ ¡ãä¥à¥ à ¡®ç¥© ®¡« á⨠¯à¨
;à¨á®¢ ­¨¨ á«¥¤ãî饩 «¨­¨¨ ¯¨ªá¥«¥©. —¥¬ ¡®«ìè¥ ¬ áèâ ¡, ⥬ ­¨¦¥
;­ã¦­® ®¯ã᪠âìáï ¯® à ¡®ç¥© ®¡« áâ¨.
OffsetYBigPixel rd 1 ;ᤢ¨£ ¯® ®á¨ y ¤«ï à¨á®¢ ­¨ï ¯¨ªá¥«¥© ­  ¡®«ì讬
;¬ áèâ ¡¥. ¨áã¥âáï 1-ï ¯®«®á  ¯¨ªá¥«ï,   ¯®â®¬ ­ã¦­® ¯¥à¥©â¨ ¢­¨§ ¨
;¢«¥¢® ¤«ï à¨á®¢ ­¨ï á«¥¤ãî饩 ¯®«®áë.
 
Icon_X rd 1
Icon_Y rd 1
counter rd 1
counter2 rd 1
number_panel rd 1
number_menu rd 1
Icon_X rd 1
Icon_Y rd 1
counter rd 1
counter2 rd 1
number_panel rd 1
number_menu rd 1
 
Scroll1CoordinatX rd 1 ;scroll x screen position
Scroll1CoordinatY rd 1 ;scroll y screen position
Scroll1MaxSizeX rd 1
Scroll1MaxSizeY rd 1
Scroll1SizeX rd 1 ;scroll polzunok size
Scroll1FreeX rd 1
Scroll1CoordinatX rd 1 ;scroll x screen position
Scroll1CoordinatY rd 1 ;scroll y screen position
Scroll1MaxSizeX rd 1
Scroll1MaxSizeY rd 1
Scroll1SizeX rd 1 ;scroll polzunok size
Scroll1FreeX rd 1
 
Scroll2CoordinatX rd 1
Scroll2CoordinatY rd 1
Scroll2MaxSizeX rd 1
Scroll2MaxSizeY rd 1
Scroll2SizeY rd 1
Scroll2FreeY rd 1
Scroll2CoordinatX rd 1
Scroll2CoordinatY rd 1
Scroll2MaxSizeX rd 1
Scroll2MaxSizeY rd 1
Scroll2SizeY rd 1
Scroll2FreeY rd 1
 
x rd 1
y rd 1
x rd 1
y rd 1
 
Radius rd 1
Dx_ rd 1
Dy_ rd 1
line_width rd 1
a_ellips rd 1
b_ellips rd 1
Radius rd 1
Dx_ rd 1
Dy_ rd 1
line_width rd 1
a_ellips rd 1
b_ellips rd 1
 
used_OldX rd 1 ;for draw hard contour
used_OldY rd 1
used_OldX rd 1 ;for draw hard contour
used_OldY rd 1
paste_img_w rd 1 ;è¨à¨­  ¢áâ ¢«ï¥¬®£® ¨§®¡à ¦¥­¨ï
paste_img_h rd 1 ;¢ëá®â  ¢áâ ¢«ï¥¬®£® ¨§®¡à ¦¥­¨ï
crossing_old_x rd 1 ;­ ç «ì­ ï ª®®à¤. x ®¡« á⨠ª®¯¨à®¢ ­¨ï
crossing_old_y rd 1 ;­ ç «ì­ ï ª®®à¤. y ®¡« á⨠ª®¯¨à®¢ ­¨ï
rectangular_shade_x rd 1 ;ª®­¥ç­ ï ª®®à¤. x ®¡« á⨠ª®¯¨à®¢ ­¨ï
rectangular_shade_y rd 1 ;ª®­¥ç­ ï ª®®à¤. y ®¡« á⨠ª®¯¨à®¢ ­¨ï
crossing rd 1 ;0 - ¢ë¤¥«¥­¨ï ­¥â, 1 - ¨¤¥â ¯à®æ¥á ¢ë¤¥«¥­¨ï,
;2 - ¢ë¤¥«¥­¨¥ § ¢¥à襭®, 3 - ®¡« áâì ¢ë¤¥«¥­¨ï ¯¥à¥¬¥é ¥âáï
number_undo rd 1
SpriteSizeX rd 1 ;???
SpriteSizeY rd 1 ;???
SpriteCoordinatX rd 1
SpriteCoordinatY rd 1
SpriteOldCoordinatX rd 1
SpriteOldCoordinatY rd 1
crossing_old_x rd 1 ;­ ç «ì­ ï ª®®à¤. x ®¡« á⨠ª®¯¨à®¢ ­¨ï
crossing_old_y rd 1 ;­ ç «ì­ ï ª®®à¤. y ®¡« á⨠ª®¯¨à®¢ ­¨ï
rectangular_shade_x rd 1 ;ª®­¥ç­ ï ª®®à¤. x ®¡« á⨠ª®¯¨à®¢ ­¨ï
rectangular_shade_y rd 1 ;ª®­¥ç­ ï ª®®à¤. y ®¡« á⨠ª®¯¨à®¢ ­¨ï
crossing rd 1 ;0 - ¢ë¤¥«¥­¨ï ­¥â, 1 - ¨¤¥â ¯à®æ¥á ¢ë¤¥«¥­¨ï,
;2 - ¢ë¤¥«¥­¨¥ § ¢¥à襭®, 3 - ®¡« áâì ¢ë¤¥«¥­¨ï ¯¥à¥¬¥é ¥âáï
number_undo rd 1
SpriteSizeX rd 1 ;???
SpriteSizeY rd 1 ;???
SpriteCoordinatX rd 1
SpriteCoordinatY rd 1
SpriteOldCoordinatX rd 1
SpriteOldCoordinatY rd 1
 
CursorsID rd 10
CursorsID rd 10
 
Activate_instrument rb 1 ;¥á«¨ à ¢­® 0 - â® ª®¯¨à®¢ ­¨¥ ⥪ã饣® ¡ãä¥à 
;¤«ï ¥£® । ªâ¨à®¢ ­¨ï, ¥á«¨ 1 - ⥪ã騩 ¡ãä¥à ­¥ ª®¯¨àã¥âáï
save_flag rb 1
exit_from_work_arrea rb 1
lastik_is_active rb 1
instrument_used rb 1
DrawSprite_flag rb 1
Paste_flag rb 1
Activate_instrument rb 1 ;¥á«¨ à ¢­® 0 - â® ª®¯¨à®¢ ­¨¥ ⥪ã饣® ¡ãä¥à 
;¤«ï ¥£® । ªâ¨à®¢ ­¨ï, ¥á«¨ 1 - ⥪ã騩 ¡ãä¥à ­¥ ª®¯¨àã¥âáï
save_flag rb 1
exit_from_work_arrea rb 1
lastik_is_active rb 1
instrument_used rb 1
DrawSprite_flag rb 1
Paste_flag rb 1
;---------------------------------------------------------------------
IncludeUGlobals
;---------------------------------------------------------------------
370,7 → 370,7
syscolors_end:
;---------------------------------------------------------------------
align 4
rb 4096
rb 4096
stacktop:
;---------------------------------------------------------------------
I_END: