BoxLib:
A new component PathShow - displaying the path for the files and directories. If the entire path to display in the show area is not possible, then the path is displayed in the compressed form. git-svn-id: svn://kolibrios.org@1433 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
79c0315dca
commit
47a917da42
@ -303,6 +303,10 @@ start_OpenDialog OpenDialog_data
|
|||||||
cmp [OpenDialog_data.status],1
|
cmp [OpenDialog_data.status],1
|
||||||
jne still ; OpenDialog user say cancel
|
jne still ; OpenDialog user say cancel
|
||||||
; copy path
|
; copy path
|
||||||
|
; prepare path - PathShow
|
||||||
|
push dword PathShow_data_1
|
||||||
|
call [PathShow_prepare]
|
||||||
|
|
||||||
call draw_window
|
call draw_window
|
||||||
jmp still ; OpenDialog user selected the target file
|
jmp still ; OpenDialog user selected the target file
|
||||||
; [OpenDialog_data.openfile_pach] pointer of area the target file
|
; [OpenDialog_data.openfile_pach] pointer of area the target file
|
||||||
@ -344,9 +348,12 @@ draw_window:
|
|||||||
call [dinamic_button_draw]
|
call [dinamic_button_draw]
|
||||||
;---------------------------------------------
|
;---------------------------------------------
|
||||||
mcall 13,<170,200>,<25,15>,0xffffb0
|
mcall 13,<170,200>,<25,15>,0xffffb0
|
||||||
mov bx,28
|
; mov bx,28
|
||||||
add ebx,2 shl 16
|
; add ebx,2 shl 16
|
||||||
mcall 4,,0xC0000000,openfile_pach,,0xffffb0
|
; mcall 4,,0xC0000000,text_work_area,,0xffffb0
|
||||||
|
; draw for PathShow
|
||||||
|
push dword PathShow_data_1
|
||||||
|
call [PathShow_draw]
|
||||||
;---------------------------------------------
|
;---------------------------------------------
|
||||||
; set all_redraw flag for draw all ScrollBar
|
; set all_redraw flag for draw all ScrollBar
|
||||||
; In some cases it is necessity to draw only the area
|
; In some cases it is necessity to draw only the area
|
||||||
@ -408,6 +415,9 @@ library_path:
|
|||||||
plugin_pach:
|
plugin_pach:
|
||||||
rb 4096
|
rb 4096
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
text_work_area:
|
||||||
|
rb 4096
|
||||||
|
;---------------------------------------------------------------------
|
||||||
file_info:
|
file_info:
|
||||||
rb 40
|
rb 40
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
;--- ДАННЫЕ ПРОГРАММЫ ----------------------------------------------
|
;--- data area -------------------------------------------------------
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
header_1 db 'Box_lib Control Demo by Mario79',0
|
header_1 db 'Box_lib Control Demo by Mario79',0
|
||||||
|
|
||||||
@ -19,9 +19,10 @@ plugins_directory db 0
|
|||||||
system_dir_Boxlib db '/sys/lib/box_lib.obj',0
|
system_dir_Boxlib db '/sys/lib/box_lib.obj',0
|
||||||
system_dir_CnvPNG db '/sys/lib/cnv_png.obj',0
|
system_dir_CnvPNG db '/sys/lib/cnv_png.obj',0
|
||||||
system_dir_UNPACK db '/sys/lib/archiver.obj',0
|
system_dir_UNPACK db '/sys/lib/archiver.obj',0
|
||||||
; Если есть желание разъединить, то нужно использовать следующию конструкцию
|
; …᫨ ¥áâì ¦¥« ¨¥ à §ê¥¤¨¨âì, ⮠㦮 ¨á¯®«ì§®¢ âì á«¥¤ãîé¨î ª®áâàãªæ¨î
|
||||||
;system_path db '/sys/lib/box_lib.obj',0
|
;system_path db '/sys/lib/box_lib.obj',0
|
||||||
;... любая последовательность других команд и определений.
|
;... «î¡ ï ¯®á«¥¤®¢ ⥫ì®áâì ¤àã£¨å ª®¬ ¤ ¨ ®¯à¥¤¥«¥¨©.
|
||||||
|
;library_name db 'box_lib.obj',0
|
||||||
;library_name db 'box_lib.obj',0
|
;library_name db 'box_lib.obj',0
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
ihead_f_i:
|
ihead_f_i:
|
||||||
@ -38,13 +39,13 @@ err_message_import3 db 'archiver.obj - Wrong import!',0
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
l_libs_start:
|
l_libs_start:
|
||||||
library01 l_libs system_dir_Boxlib+9, path, file_name, system_dir_Boxlib, \
|
library01 l_libs system_dir_Boxlib+9, path, file_name, system_dir_Boxlib,\
|
||||||
er_message_found_lib, ihead_f_l, Box_lib_import, er_message_import, ihead_f_i, plugins_directory
|
er_message_found_lib, ihead_f_l, Box_lib_import, er_message_import, ihead_f_i, plugins_directory
|
||||||
|
|
||||||
library02 l_libs system_dir_CnvPNG+9, path, file_name, system_dir_CnvPNG,\
|
library02 l_libs system_dir_CnvPNG+9, path, file_name, system_dir_CnvPNG,\
|
||||||
er_message_found_lib2, ihead_f_l, cnv_png_import, er_message_import2, ihead_f_i, plugins_directory
|
er_message_found_lib2, ihead_f_l, cnv_png_import, er_message_import2, ihead_f_i, plugins_directory
|
||||||
|
|
||||||
library03 l_libs system_dir_UNPACK+9, path, file_name, system_dir_UNPACK, \
|
library03 l_libs system_dir_UNPACK+9, path, file_name, system_dir_UNPACK,\
|
||||||
err_message_found_lib3, ihead_f_l, UNPACK_import, err_message_import3, ihead_f_i, plugins_directory
|
err_message_found_lib3, ihead_f_l, UNPACK_import, err_message_import3, ihead_f_i, plugins_directory
|
||||||
|
|
||||||
end_l_libs:
|
end_l_libs:
|
||||||
@ -163,6 +164,10 @@ menu_bar_activate dd aMenu_bar_activate
|
|||||||
;FileBrowser_mouse dd aFileBrowser_mouse
|
;FileBrowser_mouse dd aFileBrowser_mouse
|
||||||
;FileBrowser_key dd aFileBrowser_key
|
;FileBrowser_key dd aFileBrowser_key
|
||||||
;Version_FileBrowser dd aVersion_FileBrowser
|
;Version_FileBrowser dd aVersion_FileBrowser
|
||||||
|
|
||||||
|
PathShow_prepare dd sz_PathShow_prepare
|
||||||
|
PathShow_draw dd sz_PathShow_draw
|
||||||
|
|
||||||
dd 0
|
dd 0
|
||||||
dd 0
|
dd 0
|
||||||
|
|
||||||
@ -201,6 +206,11 @@ aMenu_bar_activate db 'menu_bar_activate',0
|
|||||||
;aFileBrowser_mouse db 'FileBrowser_mouse',0
|
;aFileBrowser_mouse db 'FileBrowser_mouse',0
|
||||||
;aFileBrowser_key db 'FileBrowser_key',0
|
;aFileBrowser_key db 'FileBrowser_key',0
|
||||||
;aVersion_FileBrowser db 'version_FileBrowser',0
|
;aVersion_FileBrowser db 'version_FileBrowser',0
|
||||||
|
|
||||||
|
sz_PathShow_prepare db 'PathShow_prepare',0
|
||||||
|
sz_PathShow_draw db 'PathShow_draw',0
|
||||||
|
;szVersion_path_show db 'version_PathShow',0
|
||||||
|
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
@ -445,3 +455,17 @@ db 'KEX',0
|
|||||||
.end:
|
.end:
|
||||||
db 0
|
db 0
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
PathShow_data_1:
|
||||||
|
.type dd 0 ;+0
|
||||||
|
.start_y dw 28 ;+4
|
||||||
|
.start_x dw 172 ;+6
|
||||||
|
.font_size_x dw 6 ;+8 ; 6 - for font 0, 8 - for font 1
|
||||||
|
.area_size_x dw 200 ;+10
|
||||||
|
.font_number dd 0 ;+12 ; 0 - monospace, 1 - variable
|
||||||
|
.background_flag dd 0 ;+16
|
||||||
|
.font_color dd 0x0 ;+20
|
||||||
|
.background_color dd 0x0 ;+24
|
||||||
|
.text_pointer dd openfile_pach ;+28
|
||||||
|
.work_area_pointer dd text_work_area ;+32
|
||||||
|
.temp_text_length dd 0 ;+36
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
@ -6,3 +6,4 @@ include 'd_button.mac' ;macro implements dinamic_button
|
|||||||
include 'menubar.mac' ;macro implements menubar
|
include 'menubar.mac' ;macro implements menubar
|
||||||
include 'filebrowser.mac' ;macro implements filebrowser
|
include 'filebrowser.mac' ;macro implements filebrowser
|
||||||
include 'tree_list.mac' ;macro implements tree_list, image_list, list_box
|
include 'tree_list.mac' ;macro implements tree_list, image_list, list_box
|
||||||
|
include 'pathshow.mac' ;macro implements pathshow
|
@ -82,14 +82,13 @@ use_file_browser
|
|||||||
align 16
|
align 16
|
||||||
use_tree_list
|
use_tree_list
|
||||||
|
|
||||||
;;;;;;;;;;;
|
|
||||||
;;Data
|
|
||||||
;;;;;;;;;;;
|
|
||||||
;align 16
|
|
||||||
;mouse_flag dd 0x0
|
|
||||||
|
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
;align 16
|
;PathShow Group
|
||||||
|
;--------------------------------------------------
|
||||||
|
align 16
|
||||||
|
use_path_show
|
||||||
|
|
||||||
|
align 16
|
||||||
init:
|
init:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -98,71 +97,75 @@ align 16
|
|||||||
EXPORTS:
|
EXPORTS:
|
||||||
|
|
||||||
|
|
||||||
dd sz_init, init
|
dd sz_init, init
|
||||||
dd sz_version, 0x00000001
|
dd sz_version, 0x00000001
|
||||||
|
|
||||||
dd sz_edit_box, edit_box
|
dd sz_edit_box, edit_box
|
||||||
dd sz_edit_box_key, edit_box_key
|
dd sz_edit_box_key, edit_box_key
|
||||||
dd sz_edit_box_mouse, edit_box_mouse
|
dd sz_edit_box_mouse, edit_box_mouse
|
||||||
dd szVersion_ed, 0x00000001
|
dd szVersion_ed, 0x00000001
|
||||||
|
|
||||||
dd sz_check_box_draw, check_box_draw
|
dd sz_check_box_draw, check_box_draw
|
||||||
dd sz_check_box_mouse, check_box_mouse
|
dd sz_check_box_mouse, check_box_mouse
|
||||||
dd szVersion_ch, 0x00000001
|
dd szVersion_ch, 0x00000001
|
||||||
|
|
||||||
dd sz_option_box_draw, option_box_draw
|
dd sz_option_box_draw, option_box_draw
|
||||||
dd sz_option_box_mouse, option_box_mouse
|
dd sz_option_box_mouse, option_box_mouse
|
||||||
dd szVersion_op, 0x00000001
|
dd szVersion_op, 0x00000001
|
||||||
|
|
||||||
dd sz_Scrollbar_ver_draw, scroll_bar_vertical.draw
|
dd sz_Scrollbar_ver_draw, scroll_bar_vertical.draw
|
||||||
dd sz_Scrollbar_ver_mouse, scroll_bar_vertical.mouse
|
dd sz_Scrollbar_ver_mouse, scroll_bar_vertical.mouse
|
||||||
dd sz_Scrollbar_hor_draw, scroll_bar_horizontal.draw
|
dd sz_Scrollbar_hor_draw, scroll_bar_horizontal.draw
|
||||||
dd sz_Scrollbar_hor_mouse, scroll_bar_horizontal.mouse
|
dd sz_Scrollbar_hor_mouse, scroll_bar_horizontal.mouse
|
||||||
dd szVersion_scrollbar, 0x00010001
|
dd szVersion_scrollbar, 0x00010001
|
||||||
|
|
||||||
dd sz_Dbutton_draw, dinamic_button.draw
|
dd sz_Dbutton_draw, dinamic_button.draw
|
||||||
dd sz_Dbutton_mouse, dinamic_button.mouse
|
dd sz_Dbutton_mouse, dinamic_button.mouse
|
||||||
dd szVersion_dbutton, 0x00010001
|
dd szVersion_dbutton, 0x00010001
|
||||||
|
|
||||||
dd sz_Menu_bar_draw, menu_bar.draw
|
dd sz_Menu_bar_draw, menu_bar.draw
|
||||||
dd sz_Menu_bar_mouse, menu_bar.mouse
|
dd sz_Menu_bar_mouse, menu_bar.mouse
|
||||||
dd sz_Menu_bar_activate, menu_bar.activate
|
dd sz_Menu_bar_activate, menu_bar.activate
|
||||||
dd szVersion_menu_bar, 0x00010002
|
dd szVersion_menu_bar, 0x00010002
|
||||||
|
|
||||||
dd sz_FileBrowser_draw, fb_draw_panel
|
dd sz_FileBrowser_draw, fb_draw_panel
|
||||||
dd sz_FileBrowser_mouse, fb_mouse
|
dd sz_FileBrowser_mouse, fb_mouse
|
||||||
dd sz_FileBrowser_key, fb_key
|
dd sz_FileBrowser_key, fb_key
|
||||||
dd szVersion_FileBrowser, 0x00010001
|
dd szVersion_FileBrowser, 0x00010001
|
||||||
|
|
||||||
dd sz_tl_data_init, tl_data_init
|
dd sz_tl_data_init, tl_data_init
|
||||||
dd sz_tl_data_clear, tl_data_clear
|
dd sz_tl_data_clear, tl_data_clear
|
||||||
dd sz_tl_info_clear, tl_info_clear
|
dd sz_tl_info_clear, tl_info_clear
|
||||||
dd sz_tl_key, tl_key
|
dd sz_tl_key, tl_key
|
||||||
dd sz_tl_mouse, tl_mouse
|
dd sz_tl_mouse, tl_mouse
|
||||||
dd sz_tl_draw, tl_draw
|
dd sz_tl_draw, tl_draw
|
||||||
dd sz_tl_info_undo, tl_info_undo
|
dd sz_tl_info_undo, tl_info_undo
|
||||||
dd sz_tl_info_redo, tl_info_redo
|
dd sz_tl_info_redo, tl_info_redo
|
||||||
dd sz_tl_node_add, tl_node_add
|
dd sz_tl_node_add, tl_node_add
|
||||||
dd sz_tl_node_set_data,tl_node_set_data
|
dd sz_tl_node_set_data, tl_node_set_data
|
||||||
dd sz_tl_node_get_data,tl_node_get_data
|
dd sz_tl_node_get_data, tl_node_get_data
|
||||||
dd sz_tl_node_delete,tl_node_delete
|
dd sz_tl_node_delete, tl_node_delete
|
||||||
dd sz_tl_cur_beg, tl_cur_beg
|
dd sz_tl_cur_beg, tl_cur_beg
|
||||||
dd sz_tl_cur_next, tl_cur_next
|
dd sz_tl_cur_next, tl_cur_next
|
||||||
dd sz_tl_cur_perv, tl_cur_perv
|
dd sz_tl_cur_perv, tl_cur_perv
|
||||||
dd sz_tl_node_close_open,tl_node_close_open
|
dd sz_tl_node_close_open, tl_node_close_open
|
||||||
dd sz_tl_node_lev_inc,tl_node_lev_inc
|
dd sz_tl_node_lev_inc, tl_node_lev_inc
|
||||||
dd sz_tl_node_lev_dec,tl_node_lev_dec
|
dd sz_tl_node_lev_dec, tl_node_lev_dec
|
||||||
dd sz_tl_node_move_up,tl_node_move_up
|
dd sz_tl_node_move_up, tl_node_move_up
|
||||||
dd sz_tl_node_move_down, tl_node_move_down
|
dd sz_tl_node_move_down, tl_node_move_down
|
||||||
dd sz_tl_node_poi_get_info, tl_node_poi_get_info
|
dd sz_tl_node_poi_get_info, tl_node_poi_get_info
|
||||||
dd sz_tl_node_poi_get_next_info,tl_node_poi_get_next_info
|
dd sz_tl_node_poi_get_next_info, tl_node_poi_get_next_info
|
||||||
dd sz_tl_node_poi_get_data, tl_node_poi_get_data
|
dd sz_tl_node_poi_get_data, tl_node_poi_get_data
|
||||||
dd sz_tl_save_mem, tl_save_mem
|
dd sz_tl_save_mem, tl_save_mem
|
||||||
dd sz_tl_load_mem, tl_load_mem
|
dd sz_tl_load_mem, tl_load_mem
|
||||||
dd sz_tl_get_mem_size,tl_get_mem_size
|
dd sz_tl_get_mem_size, tl_get_mem_size
|
||||||
dd sz_tl_version_tree_list, 0x00000001
|
dd sz_tl_version_tree_list, 0x00000001
|
||||||
|
|
||||||
dd 0,0
|
dd sz_PathShow_prepare, path_show.prepare
|
||||||
|
dd sz_PathShow_draw, path_show.draw
|
||||||
|
dd szVersion_path_show, 0x00010001
|
||||||
|
|
||||||
|
dd 0,0
|
||||||
|
|
||||||
|
|
||||||
sz_init db 'lib_init',0
|
sz_init db 'lib_init',0
|
||||||
@ -201,30 +204,34 @@ sz_FileBrowser_mouse db 'FileBrowser_mouse',0
|
|||||||
sz_FileBrowser_key db 'FileBrowser_key',0
|
sz_FileBrowser_key db 'FileBrowser_key',0
|
||||||
szVersion_FileBrowser db 'version_FileBrowser',0
|
szVersion_FileBrowser db 'version_FileBrowser',0
|
||||||
|
|
||||||
sz_tl_data_init db 'tl_data_init',0
|
sz_tl_data_init db 'tl_data_init',0
|
||||||
sz_tl_data_clear db 'tl_data_clear',0
|
sz_tl_data_clear db 'tl_data_clear',0
|
||||||
sz_tl_info_clear db 'tl_info_clear',0
|
sz_tl_info_clear db 'tl_info_clear',0
|
||||||
sz_tl_key db 'tl_key',0
|
sz_tl_key db 'tl_key',0
|
||||||
sz_tl_mouse db 'tl_mouse',0
|
sz_tl_mouse db 'tl_mouse',0
|
||||||
sz_tl_draw db 'tl_draw',0
|
sz_tl_draw db 'tl_draw',0
|
||||||
sz_tl_info_undo db 'tl_info_undo',0
|
sz_tl_info_undo db 'tl_info_undo',0
|
||||||
sz_tl_info_redo db 'tl_info_redo',0
|
sz_tl_info_redo db 'tl_info_redo',0
|
||||||
sz_tl_node_add db 'tl_node_add',0
|
sz_tl_node_add db 'tl_node_add',0
|
||||||
sz_tl_node_set_data db 'tl_node_set_data',0
|
sz_tl_node_set_data db 'tl_node_set_data',0
|
||||||
sz_tl_node_get_data db 'tl_node_get_data',0
|
sz_tl_node_get_data db 'tl_node_get_data',0
|
||||||
sz_tl_node_delete db 'tl_node_delete',0
|
sz_tl_node_delete db 'tl_node_delete',0
|
||||||
sz_tl_cur_beg db 'tl_cur_beg',0
|
sz_tl_cur_beg db 'tl_cur_beg',0
|
||||||
sz_tl_cur_next db 'tl_cur_next',0
|
sz_tl_cur_next db 'tl_cur_next',0
|
||||||
sz_tl_cur_perv db 'tl_cur_perv',0
|
sz_tl_cur_perv db 'tl_cur_perv',0
|
||||||
sz_tl_node_close_open db 'tl_node_close_open',0
|
sz_tl_node_close_open db 'tl_node_close_open',0
|
||||||
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
|
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
|
||||||
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
|
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
|
||||||
sz_tl_node_move_up db 'tl_node_move_up',0
|
sz_tl_node_move_up db 'tl_node_move_up',0
|
||||||
sz_tl_node_move_down db 'tl_node_move_down',0
|
sz_tl_node_move_down db 'tl_node_move_down',0
|
||||||
sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
|
sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
|
||||||
sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
|
sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
|
||||||
sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
|
sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
|
||||||
sz_tl_save_mem db 'tl_save_mem',0
|
sz_tl_save_mem db 'tl_save_mem',0
|
||||||
sz_tl_load_mem db 'tl_load_mem',0
|
sz_tl_load_mem db 'tl_load_mem',0
|
||||||
sz_tl_get_mem_size db 'tl_get_mem_size',0
|
sz_tl_get_mem_size db 'tl_get_mem_size',0
|
||||||
sz_tl_version_tree_list db 'version_tree_list',0
|
sz_tl_version_tree_list db 'version_tree_list',0
|
||||||
|
|
||||||
|
sz_PathShow_prepare db 'PathShow_prepare',0
|
||||||
|
sz_PathShow_draw db 'PathShow_draw',0
|
||||||
|
szVersion_path_show db 'version_PathShow',0
|
||||||
|
152
programs/develop/libraries/box_lib/trunk/pathshow.mac
Normal file
152
programs/develop/libraries/box_lib/trunk/pathshow.mac
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
;**************************************************************
|
||||||
|
; Path Show Macro for Kolibri OS
|
||||||
|
; Copyright (c) 2010, Marat Zakiyanov aka Mario79, aka Mario
|
||||||
|
; All rights reserved.
|
||||||
|
;
|
||||||
|
; Redistribution and use in source and binary forms, with or without
|
||||||
|
; modification, are permitted provided that the following conditions are met:
|
||||||
|
; * Redistributions of source code must retain the above copyright
|
||||||
|
; notice, this list of conditions and the following disclaimer.
|
||||||
|
; * Redistributions in binary form must reproduce the above copyright
|
||||||
|
; notice, this list of conditions and the following disclaimer in the
|
||||||
|
; documentation and/or other materials provided with the distribution.
|
||||||
|
; * Neither the name of the <organization> nor the
|
||||||
|
; 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 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
|
||||||
|
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
; 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.
|
||||||
|
;*****************************************************************************
|
||||||
|
macro path_show_start
|
||||||
|
{
|
||||||
|
pusha
|
||||||
|
mov edi,dword [esp+36]
|
||||||
|
}
|
||||||
|
;*****************************************************************************
|
||||||
|
macro path_show_exit
|
||||||
|
{
|
||||||
|
popa
|
||||||
|
ret 4
|
||||||
|
}
|
||||||
|
;*****************************************************************************
|
||||||
|
macro use_path_show
|
||||||
|
{
|
||||||
|
path_show:
|
||||||
|
ps_type equ [edi] ;dword
|
||||||
|
ps_start_y equ [edi+4] ;word
|
||||||
|
ps_start_x equ [edi+6] ;word
|
||||||
|
ps_font_size_x equ [edi+8] ;word
|
||||||
|
ps_area_size_x equ [edi+10] ;word
|
||||||
|
ps_font_number equ [edi+12] ;dword
|
||||||
|
ps_background_flag equ [edi+16] ;dword
|
||||||
|
ps_font_color equ [edi+20] ;dword
|
||||||
|
ps_background_color equ [edi+24] ;dword
|
||||||
|
ps_text_pointer equ [edi+28] ;dword
|
||||||
|
ps_work_area_pointer equ [edi+32] ;dword
|
||||||
|
ps_temp_text_length equ [edi+36] ;dword
|
||||||
|
;*****************************************************************************
|
||||||
|
;*****************************************************************************
|
||||||
|
; draw event
|
||||||
|
;*****************************************************************************
|
||||||
|
;*****************************************************************************
|
||||||
|
.prepare:
|
||||||
|
path_show_start
|
||||||
|
;-------------------------------------
|
||||||
|
mov esi,ps_text_pointer
|
||||||
|
xor eax,eax
|
||||||
|
xor ecx,ecx
|
||||||
|
dec ecx
|
||||||
|
cld
|
||||||
|
@@:
|
||||||
|
lodsb
|
||||||
|
inc ecx
|
||||||
|
test eax,eax
|
||||||
|
jnz @b
|
||||||
|
mov ps_temp_text_length,ecx
|
||||||
|
movzx eax,word ps_font_size_x
|
||||||
|
imul ecx,eax
|
||||||
|
movzx eax,word ps_area_size_x
|
||||||
|
cmp ecx,eax
|
||||||
|
jae .cut
|
||||||
|
;-------------------------------------
|
||||||
|
mov esi,ps_text_pointer
|
||||||
|
mov edi,ps_work_area_pointer
|
||||||
|
xor eax,eax
|
||||||
|
@@:
|
||||||
|
lodsb
|
||||||
|
stosb
|
||||||
|
test eax,eax
|
||||||
|
jnz @b
|
||||||
|
jmp .exit
|
||||||
|
;-------------------------------------
|
||||||
|
.cut:
|
||||||
|
; copy the first 6 characters of path
|
||||||
|
mov esi,ps_text_pointer
|
||||||
|
push edi
|
||||||
|
mov edi,ps_work_area_pointer
|
||||||
|
mov ecx,6
|
||||||
|
rep movsb
|
||||||
|
; insert a line break '...'
|
||||||
|
mov al,byte '.'
|
||||||
|
mov ecx,3
|
||||||
|
rep stosb
|
||||||
|
mov ecx,edi
|
||||||
|
; calculate the display length, in characters
|
||||||
|
pop edi
|
||||||
|
movzx ebx,word ps_font_size_x
|
||||||
|
movzx eax,word ps_area_size_x
|
||||||
|
xor edx,edx
|
||||||
|
div ebx
|
||||||
|
sub eax,9
|
||||||
|
; eax - maximum length of display area, the number of characters
|
||||||
|
mov esi,ps_temp_text_length
|
||||||
|
add esi,ps_text_pointer
|
||||||
|
sub esi,eax
|
||||||
|
; esi - pointer of the last segment of the displayed text
|
||||||
|
mov edi,ecx
|
||||||
|
mov ecx,eax
|
||||||
|
rep movsb
|
||||||
|
xor eax,eax
|
||||||
|
stosb
|
||||||
|
;-------------------------------------
|
||||||
|
.exit:
|
||||||
|
path_show_exit
|
||||||
|
;*****************************************************************************
|
||||||
|
;*****************************************************************************
|
||||||
|
; draw event
|
||||||
|
;*****************************************************************************
|
||||||
|
;*****************************************************************************
|
||||||
|
.draw:
|
||||||
|
path_show_start
|
||||||
|
;-------------------------------------
|
||||||
|
mov ebx,ps_start_y
|
||||||
|
xor ecx,ecx
|
||||||
|
or ecx,0x80000000
|
||||||
|
mov eax,ps_background_flag
|
||||||
|
and eax,1b
|
||||||
|
shl eax,30
|
||||||
|
add ecx,eax
|
||||||
|
mov eax,ps_font_number
|
||||||
|
and eax,11b
|
||||||
|
shl eax,28
|
||||||
|
add ecx,eax
|
||||||
|
mov eax,ps_font_color
|
||||||
|
and eax,0xffffff
|
||||||
|
add ecx,eax
|
||||||
|
mov edx,ps_work_area_pointer
|
||||||
|
mov eax,ps_background_color
|
||||||
|
and eax,0xffffff
|
||||||
|
xor esi,esi
|
||||||
|
mov edi,eax
|
||||||
|
mcall 4
|
||||||
|
path_show_exit
|
||||||
|
}
|
||||||
|
;*****************************************************************************
|
Loading…
x
Reference in New Issue
Block a user