2006-12-29 15:50:24 +01:00
;*******************************************************
;**************GRAPHICS EDITOR ANIMAGE *****************
;*******************************************************
2016-03-21 18:29:30 +01:00
; version: 1.5
; last update: 21.03.2016
; changes: Use library 'kmenu.obj'
; autors: IgorA, Veliant
;--------------------------------------------------------
2016-03-12 21:39:39 +01:00
; version: 1.4
2016-03-21 18:29:30 +01:00
; last update: 12.03.2016
2016-03-12 21:39:39 +01:00
; changes: Use library 'libimg.obj'
2016-03-21 18:29:30 +01:00
; autors: IgorA
2016-03-12 21:39:39 +01:00
;--------------------------------------------------------
2016-03-21 18:29:30 +01:00
; version: 1.3
; last update: 05.10.2010
2010-10-04 22:40:19 +02:00
; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Fixed window flicker when redrawing,
; Fixed memory leak for stack
;--------------------------------------------------------
2016-03-21 18:29:30 +01:00
; version: 1.2
; last update: 30.09.2010
2010-09-30 15:20:36 +02:00
; written by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Program used function 68 instead 64 is now,
; select path with OpenDialog
;--------------------------------------------------------
2016-03-21 18:29:30 +01:00
; version: 1.1
; last update: 09.12.2006
; autors:
2006-12-29 15:50:24 +01:00
; programming by andrew_programmer
2010-09-30 15:20:36 +02:00
; design by golus
2006-10-12 01:19:10 +02:00
2006-12-29 15:50:24 +01:00
use32
2010-09-30 15:20:36 +02:00
org 0x0
db 'MENUET01'
2016-03-21 23:31:33 +01:00
dd 1 , START , IM_END , I_END
dd stacktop , file_path , cur_dir_path
include '../../../config.inc' ;for nightbuild
2016-03-12 21:39:39 +01:00
include '../../../macros.inc'
include '../../../proc32.inc'
include '../../../KOSfuncs.inc'
2010-09-30 15:20:36 +02:00
include '../../../develop/libraries/box_lib/load_lib.mac'
2016-03-12 21:39:39 +01:00
include '../../../dll.inc'
include '../../../libio.inc'
2016-03-21 23:31:33 +01:00
;include '../../../develop/libraries/libs-dev/libimg/libimg.inc'
2016-03-12 21:39:39 +01:00
@ use_library_mem mem.Alloc , mem.Free , mem.ReAlloc , dl l.Load
2016-03-19 10:57:37 +01:00
;---------------------------------------------------------
; *** <20> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 䥩<EFBFBD> <E4A5A9> ***
2016-03-19 20:38:56 +01:00
; *** constants for interface ***
; <20> <> <EFBFBD> ४<EFBFBD> <E0A5AA> <EFBFBD> <E0AEA2> <20> <> ᪨<>
2016-03-21 18:29:30 +01:00
ci_offs_skin_w equ 5 ;<3B> <> <EFBFBD> ४<EFBFBD> <E0A5AA> <EFBFBD> <E0AEA2> <20> <> <20> <> ਭ<EFBFBD> ࠬ<> <E0A0AC> ᪨<> <E1AAA8>
ci_offs_skin_h equ 24 ;<3B> <> <EFBFBD> ४<EFBFBD> <E0A5AA> <EFBFBD> <E0AEA2> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᪨<> <E1AAA8>
2016-03-19 20:38:56 +01:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
ci_wnd_min_siz_x equ 585 ;minimum size x
ci_wnd_min_siz_y equ 400 ;minimum size y
2016-03-19 10:57:37 +01:00
2016-03-21 18:29:30 +01:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 㬥<EFBFBD> ⮢
ci_panel_x_pos equ 0 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> x <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ci_panel_y_pos equ 20 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ci_panel_but_y1 equ ci_panel_y_pos + 5 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y <20> <> <EFBFBD> 1-<2D> <> <20> 鸞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ci_panel_but_y2 equ ci_panel_y_pos + 30 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y <20> <> <EFBFBD> 2-<2D> <> <20> 鸞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ci_palete_y_pos equ ci_panel_y_pos + 51 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 梥⮢
2016-03-19 10:57:37 +01:00
; <20> <> <EFBFBD> <EFBFBD> ।<> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2016-03-21 18:29:30 +01:00
ci_edit_wnd_x_pos equ 0 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> x <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ।<> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ci_edit_wnd_y_pos equ 71 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ।<> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2016-03-19 10:57:37 +01:00
ci_edit_wnd_border equ 3 ;ࠬ<> <E0A0AC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ।<> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD> <EFBFBD>
2016-03-19 20:38:56 +01:00
ci_scroll_dim equ 22 ;ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2016-03-19 10:57:37 +01:00
ci_scrollh_coord_x_min equ ( ci_edit_wnd_x_pos + 3 ) ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쭠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 㭪<EFBFBD>
;<3B> <> ਧ<EFBFBD> <E0A8A7> ⠫쭮<E2A0AB> <ECADAE> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD> <EFBFBD>
ci_scrollv_coord_y_min equ ( ci_edit_wnd_y_pos + 3 ) ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쭠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 㭪<EFBFBD>
;<3B> <> <EFBFBD> ⨪<EFBFBD> <E2A8AA> 쭮<EFBFBD> <ECADAE> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD> <EFBFBD>
;---------------------------------------------------------
2010-09-30 15:20:36 +02:00
include 'bmplib.inc'
include 'dialog2.inc'
include 'design.inc'
include 'graphlib.inc'
2006-10-12 01:19:10 +02:00
2010-09-30 15:20:36 +02:00
include 'cursors.inc'
2016-03-15 23:30:18 +01:00
include 'memory.inc'
2010-09-30 15:20:36 +02:00
include 'load_from_parameters.inc'
2006-10-12 01:19:10 +02:00
2006-12-29 15:50:24 +01:00
START:
2016-03-12 22:49:40 +01:00
mcall SF_SYS_MISC , SS F_HEAP_INIT
2016-03-21 18:29:30 +01:00
mcall SF_STYLE_SETTINGS , SS F_GET_COLORS , syscolors , syscolors_end - syscolors
2010-09-30 15:20:36 +02:00
load_libraries l_libs_start , end_l_libs
2006-10-12 01:19:10 +02:00
2010-09-30 15:20:36 +02:00
cmp eax , - 1
jz cl ose
2016-03-19 10:57:37 +01:00
2016-03-12 22:49:40 +01:00
mcall SF_SET_EVENTS_MASK , 0x80000067 ; 1100111b
2006-12-29 15:50:24 +01:00
;---------------------------------------------------------
;-----------------------init data-------------------------
;---------------------------------------------------------
2010-09-30 15:20:36 +02:00
include 'init_data.inc'
2006-12-29 15:50:24 +01:00
;----------------------------------------------------------
;--------get memory and draw window of program-------------
;----------------------------------------------------------
2016-03-23 11:52:58 +01:00
call GetMemory
mov [ Current_instrument ], 10 ;pencil
call TakeButtonInstruments ;set startup instrument
call cl eare_work_arrea
call load_icons
call init_main_menu
2006-10-12 01:19:10 +02:00
2016-03-12 22:49:40 +01:00
;load cursors
2010-09-30 15:20:36 +02:00
mov eax , CursorsID
2016-03-23 11:52:58 +01:00
call load_cursors
2006-10-12 01:19:10 +02:00
2006-12-29 15:50:24 +01:00
;---------------------------------------------------------
2016-03-23 11:15:41 +01:00
;---------check loading of file from parameters-----------
2006-12-29 15:50:24 +01:00
;---------------------------------------------------------
2010-09-30 15:20:36 +02:00
mov eax , file_path
cmp [ eax ], byte 0
jz @ f
call load_picture
2016-03-12 21:39:39 +01:00
call MovePictureToWorkScreen
2010-09-30 15:20:36 +02:00
@ @ :
;---------------------------------------------------------------------
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
@ @ :
;OpenDialog initialisation
2016-03-21 23:31:33 +01:00
stdcall [ OpenDialog_Init ], OpenDialog_data
2010-09-30 15:20:36 +02:00
;---------------------------------------------------------------------
2016-03-23 11:15:41 +01:00
align 4
2016-03-19 20:38:56 +01:00
red:
2016-03-23 11:15:41 +01:00
call drawwin
2006-12-29 15:50:24 +01:00
;----------------------------------------------------------
2016-03-23 11:15:41 +01:00
;---------------------main loop----------------------------
2006-12-29 15:50:24 +01:00
;----------------------------------------------------------
2016-03-19 20:38:56 +01:00
align 4
2010-09-30 15:20:36 +02:00
still:
2016-03-23 11:15:41 +01:00
mcall SF_WAIT_EVENT
2010-09-30 15:20:36 +02:00
2010-10-04 22:40:19 +02:00
cmp eax , 1
je red
2010-09-30 15:20:36 +02:00
cmp eax , 2
je keys
cmp eax , 3
je buttons
cmp eax , 6
je mouse
jmp still
;---------------------------------------------------------------------
copy_str_1:
xor eax , eax
cld
@ @ :
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'
2010-10-04 22:40:19 +02:00
include 'menu_instruments.inc'
2010-09-30 15:20:36 +02:00
include 'icons_instruments.inc'
include 'icons.inc'
include 'sprites.inc'
include 'string.inc'
include 'palette.inc'
include 'files.inc'
include 'time.inc'
2016-03-21 18:29:30 +01:00
include 'menu.inc'
2006-10-12 01:19:10 +02:00
;-----------------------------------------------------------
2006-12-29 15:50:24 +01:00
;------------variables and data of program------------------
2006-10-12 01:19:10 +02:00
;-----------------------------------------------------------
2010-09-30 15:20:36 +02:00
sound_havent_memory db 150 , 64 , 0
2010-10-04 22:40:19 +02:00
2010-09-30 15:20:36 +02:00
include 'lib_data.inc'
include 'panel_data.inc'
include 'palitra256.inc'
include 'brushes.inc'
include 'spray.inc'
include 'width_lines.inc'
2006-10-12 01:19:10 +02:00
;----------------------------------------------------------
2016-03-23 11:15:41 +01:00
;-------------------icon's picture-------------------------
2006-10-12 01:19:10 +02:00
;----------------------------------------------------------
2016-03-21 23:31:33 +01:00
align 4
2006-12-29 15:50:24 +01:00
panel_picture:
2016-03-12 22:49:40 +01:00
file 'panel_buttons.png'
2016-03-12 21:39:39 +01:00
.end:
2006-12-29 15:50:24 +01:00
;****************cursors******************
brush_cursor:
file 'brush.cur'
flood_fill_cursor:
file 'flood_fill.cur'
lastik_cursor:
file 'lastik.cur'
other_cursor:
file 'other.cur'
pencil_cursor:
file 'pencil.cur'
pipette_cursor:
file 'pipette.cur'
spray_cursor:
file 'spray.cur'
zoom_cursor:
file 'zoom.cur'
2006-10-12 01:19:10 +02:00
;----------------------------------------------------------
2016-03-23 11:15:41 +01:00
align 4
2010-09-30 15:20:36 +02:00
IM_END:
;-----------------------------------------------------------
;------------variables and data of program------------------
;-----------------------------------------------------------
time rd 1
2016-03-16 14:23:19 +01:00
PosX rd 1 ;scroll x file position
PosY rd 1 ;scroll y file position
2010-09-30 15:20:36 +02:00
PointerToIcons rd 1
ScreenPointer rd 1
PointerToPicture rd 1
PointerToCopyPicture rd 1
PointerToCopyPicture2 rd 1
PointerToEditBufer rd 1
PointerToSpriteBufer rd 1
2016-03-16 14:23:19 +01:00
PointerToPalette rd 1 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> 㦥<EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD> <20> *.bmp)
2010-09-30 15:20:36 +02:00
Color rd 1
2016-03-23 11:15:41 +01:00
SColor rd 1
2010-09-30 15:20:36 +02:00
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
Window_SizeX rd 1
Window_SizeY rd 1
Window_CordinatX rd 1
Window_CordinatY rd 1
Picture_SizeX rd 1
Picture_SizeY rd 1
2016-03-16 14:23:19 +01:00
ScreenX rd 1 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> x <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> ⮬ <20> <> <EFBFBD> <EFBFBD> ⠡<EFBFBD>
ScreenY rd 1 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> ⮬ <20> <> <EFBFBD> <EFBFBD> ⠡<EFBFBD>
2010-09-30 15:20:36 +02:00
WorkScreen_SizeX rd 1
WorkScreen_SizeY rd 1
MaxWorkScreen_SizeX rd 1
MaxWorkScreen_SizeY rd 1
2016-03-16 14:23:19 +01:00
k rd 1 ;<3B> <> <EFBFBD> <EFBFBD> ⠡
2010-09-30 15:20:36 +02:00
ReserveArray rd 1
register rd 1
CounterX rd 1
CounterY rd 1
OffsetYPicture rd 1
OffsetYWorkScreen rd 1
OffsetYBigPixel rd 1
Icon_X rd 1
Icon_Y rd 1
counter rd 1
counter2 rd 1
number_panel rd 1
number_menu rd 1
2016-03-16 14:23:19 +01:00
Scroll1CoordinatX rd 1 ;scroll x screen position
Scroll1CoordinatY rd 1 ;scroll y screen position
2010-09-30 15:20:36 +02:00
Scroll1MaxSizeX rd 1
Scroll1MaxSizeY rd 1
2016-03-19 10:57:37 +01:00
Scroll1SizeX rd 1 ;scroll polzunok size
2010-09-30 15:20:36 +02:00
Scroll1FreeX 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
Radius rd 1
Dx_ rd 1
Dy_ rd 1
line_width rd 1
a_ellips rd 1
b_ellips rd 1
2016-03-23 11:15:41 +01:00
used_OldX rd 1 ;for draw hard contour
2010-09-30 15:20:36 +02:00
used_OldY rd 1
2016-03-23 11:15:41 +01:00
rectangular_shade_x rd 1 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> x <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD>
2010-09-30 15:20:36 +02:00
rectangular_shade_y rd 1
crossing_old_x rd 1
crossing_old_y rd 1
crossing rd 1
finishing_crossing rd 1
number_undo rd 1
SpriteSizeX rd 1
SpriteSizeY rd 1
SpriteCoordinatX rd 1
SpriteCoordinatY rd 1
SpriteOldCoordinatX rd 1
SpriteOldCoordinatY rd 1
2016-03-23 11:15:41 +01:00
CursorsID rd 10
Activate_instrument rb 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
2010-09-30 15:20:36 +02:00
;---------------------------------------------------------------------
2007-06-25 19:20:49 +02:00
IncludeUGlobals
2010-09-30 15:20:36 +02:00
;---------------------------------------------------------------------
align 4
2016-03-12 21:39:39 +01:00
file_path rb 4096
filename_area rb 256
temp_dir_pach rb 4096
library _path rb 4096
cur_dir_path rb 4096
procinfo: rb 1024
2016-03-21 18:29:30 +01:00
align 4
syscolors rb 192
syscolors_end:
2010-09-30 15:20:36 +02:00
;---------------------------------------------------------------------
align 4
rb 4096
stacktop:
;---------------------------------------------------------------------
I_END: