Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1218 → Rev 1219

/programs/develop/libraries/box_lib/asm/trunk/ctrldemo.asm
1,6 → 1,6
;
;*****************************************************************************
; Example for Box_lib: scrollbar, menubar, dinamic_button
; Copyright (c) 2009, Mario79
; Copyright (c) 2009, Marat Zakiyanov aka Mario79, aka Mario
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
14,7 → 14,7
; names of its contributors may be used to endorse or promote products
; derived from this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY Mario79 ''AS IS'' AND ANY
; THIS SOFTWARE IS PROVIDED BY Marat Zakiyanov ''AS IS'' AND ANY
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
24,7 → 24,7
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*****************************************************************************
;******************************************************************************
; import_boxlib procedure written by <Lrz>
;---------------------------------------------------------------------
 
42,6 → 42,11
 
include '../../../../../macros.inc'
include '../../load_lib.mac'
;include 'macros.inc'
;include 'load_lib.mac'
@use_library
include 'opendial.mac'
use_OpenDialog
;---------------------------------------------------------------------
;--- Start of program ----------------------------------------------
;---------------------------------------------------------------------
50,70 → 55,26
mcall 66, 1, 1
mcall 40, 0x27
;---------------------------------------------------------------------
; Procinfo area for function 9 in MenuBar
mcall 68,12,1024
mov [menu_data_1.procinfo],eax
mov [menu_data_2.procinfo],eax
;---------------------------------------------------------------------
; loading Box_Lib library
 
load_libraries l_libs_start,end_l_libs
;sys_load_library boxlib_name, path, file_name, system_dir, \
;er_message_found_lib, ihead_f_l, myimport, er_message_import, ihead_f_i
; test eax,eax
; jnz button.exit
 
;----------------------------------old
; mov ebx,boxlib_name
; mov esi,path
; mov edi,file_name
; call copy_path
;
; mcall 68,19,file_name ; load of alternative
; test eax,eax
; jnz @f
;
; mcall 68,19,system_dir ; load of sys directory
; test eax,eax
; jz button.exit
;@@:
; call import_boxlib
;---------------------------------------------------------------------
; Load and convert BMP file for DinamicButton
; This procedures use cnv_bmp.obj and this module used only for
; demonstration of use DinamicButton
 
; mov ebx,plugin_BMP_name
; mov esi,path
; mov edi,file_name
copy_path plugin_BMP_name,path,file_name
;
mcall 68,19,file_name
test eax,eax
jz button.exit
jnz button.exit
mov eax,[eax+4]
mov [plugin],eax
; unpack deflate
mov eax,[unpack_DeflateUnpack2]
mov [deflate_unpack],eax
 
;OpenDialog initialisation
init_OpenDialog OpenDialog_data
 
;ïðîâåðêà íà ñêîëüêî óäà÷íî çàãóçèëàñü íàøà ëèáà
mov ebp,library01
cmp dword [ebp+ll_struc_size-4],0
jnz button.exit
;
; mov ebp,library02
; cmp dword [ebp+ll_struc_size-4],0x2
; jnz button.exit
; mov eax,dword [ebp+36]
; mov eax,[eax+4]
; mov [plugin],eax
 
; mov ebx,icons_file_name
; mov esi,path
; mov edi,file_name
copy_path icons_file_name,path,file_name
copy_path icons_file_name,path,library_path,0
mcall 70, fileinfo
 
mov [fileinfo+0],dword 0
135,7 → 96,7
xor eax,eax
mov [return_code],eax
mov eax,image_file
call [plugin]
call [cnv_png_import.Start]
mov ecx,[image_file]
mcall 68, 13,
296,7 → 257,10
;---------------------------------------------------------------------
analyse_out_menu_1:
; analyse result of Menu 1
cmp [menu_data_1.cursor_out],dword 3
mov eax,[menu_data_1.cursor_out]
cmp eax,dword 1
je OpenDialog_start
cmp eax,dword 3
je button.exit
jmp still
310,6 → 274,44
mcall 51,1,thread3,thread
jmp still
;---------------------------------------------------------------------
OpenDialog_start:
; mov ebx,open_dialog_name
; mov esi,path
; mov edi,library_path
; call copy_file_path
call get_filter_data
 
copy_path open_dialog_name,path,library_path,0
 
 
start_OpenDialog OpenDialog_data
 
cmp [OpenDialog_data.status],2 ; OpenDialog does not start
je still ; some kind of alternative, instead OpenDialog
cmp [OpenDialog_data.status],1
jne still ; OpenDialog user say cancel
; copy path
call draw_window
jmp still ; OpenDialog user selected the target file
; [OpenDialog_data.openfile_pach] pointer of area the target file
;---------------------------------------------------------------------
get_filter_data:
mov edi,[OpenDialog_data.com_area]
test edi,edi
jnz @f
add esp,4
jmp still
@@:
add edi,4096+4
mov esi,Filter
mov ecx,[esi]
inc ecx
cld
rep movsb
mov edi,[OpenDialog_data.com_area]
mov [edi+4096],dword 1
ret
;---------------------------------------------------------------------
draw_window:
mcall 12, 1
mcall 0, <0,400>, <0,400>, 0x03AABBCC, 0x805080D0, 0x005080D0
329,6 → 331,11
push dword dinamic_button_data_2
call [dinamic_button_draw]
;---------------------------------------------
mcall 13,<170,200>,<25,15>,0xffffb0
mov bx,28
add ebx,2 shl 16
mcall 4,,0xC0000000,openfile_pach,,0xffffb0
;---------------------------------------------
; set all_redraw flag for draw all ScrollBar
; In some cases it is necessity to draw only the area
; of moving of a "runner", for acceleration of output -
365,19 → 372,35
mov bx,30
mcall 13, , , 0x0
ret
 
;---------------------------------------------------------------------
include 'data.inc'
include 'w_about.inc'
;---------------------------------------------------------------------
IM_END:
rb 1024
thread:
;---------------------------------------------------------------------
rb 1024
stacktop:
;---------------------------------------------------------------------
path:
rb 4096
;---------------------------------------------------------------------
openfile_pach:
rb 4096
;---------------------------------------------------------------------
file_name:
library_path:
rb 4096
;---------------------------------------------------------------------
plugin_pach:
rb 4096
;---------------------------------------------------------------------
file_info:
rb 40
;---------------------------------------------------------------------
procinfo:
rb 1024
;---------------------------------------------------------------------
I_END: