KPACK: bigger font, FASM: upd UI

git-svn-id: svn://kolibrios.org@7829 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2020-04-27 19:11:13 +00:00
parent 585f0d6cbf
commit 0a88d5d814
5 changed files with 112 additions and 163 deletions

View File

@ -256,10 +256,18 @@ draw_window:
test eax,100b test eax,100b
jne .end jne .end
cmp dword[pinfo.box.width],230 ; check min-width WIN_MIN_W = 350
WIN_MIN_H = 300
cmp dword[pinfo.client_box.width],WIN_MIN_W
jge @f jge @f
mcall 67,-1,-1,300,-1 mcall 67,-1,-1,WIN_MIN_W+20,-1
ret jmp .end
@@:
cmp dword[pinfo.client_box.height],WIN_MIN_H
jge @f
mcall 67,-1,-1,-1,WIN_MIN_H+50
jmp .end
@@: @@:
mpack ebx,[pinfo.client_box.width],RIGHT_BTN_W mpack ebx,[pinfo.client_box.width],RIGHT_BTN_W
msub ebx,RIGHT_BTN_W+1,0 msub ebx,RIGHT_BTN_W+1,0
@ -267,26 +275,7 @@ draw_window:
mcall ,ebx,<LINE_H*1+3,LINE_H-4>,ID_EXECUTE_BTN mcall ,ebx,<LINE_H*1+3,LINE_H-4>,ID_EXECUTE_BTN
mcall ,ebx,<LINE_H*2+3,LINE_H-4>,ID_EXECDBG_BTN mcall ,ebx,<LINE_H*2+3,LINE_H-4>,ID_EXECDBG_BTN
mcall ,<5,62>,<LINE_H*2+3,LINE_H-5>,ID_OPENDLG_BTN
;button for OpenDialog [..]
; mov ebx, 5*65536+47
; mov ecx, 33*65536+14
; mcall ,,,5
; mpack ebx,6,0 ; Draw Window Text
; add ebx,1+ 14/2-3
; mcall 4,,[sc.work_text],text,text.line_size ;InFile
; add ebx, 16 ;14
; add edx,text.line_size
; mcall ;OutFile
; mov ecx,[sc.work_button_text]
; add ebx, 16 ;14
; add edx,text.line_size
; mcall ;Path
mcall 8,<5,62>,<LINE_H*2+3,LINE_H-5>,ID_OPENDLG_BTN
mov ecx, [sc.work_text] mov ecx, [sc.work_text]
or ecx, $10000000 or ecx, $10000000
@ -297,7 +286,7 @@ draw_window:
mcall ,<0,LINE_H*2+6>,,text+text.line_size*2,esi ;Path mcall ,<0,LINE_H*2+6>,,text+text.line_size*2,esi ;Path
mov ebx,[pinfo.client_box.width] mov ebx,[pinfo.client_box.width]
sub ebx,RIGHT_BTN_W+1-9 sub ebx,RIGHT_BTN_W-12
shl ebx,16 shl ebx,16
add ebx,LINE_H/2-6 add ebx,LINE_H/2-6
mov ecx, [sc.work_button_text] mov ecx, [sc.work_button_text]
@ -417,7 +406,7 @@ fun_opn_dlg: ;
ret ret
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
draw_messages: draw_messages:
mpack ebx,7-2,[pinfo.client_box.width] mpack ebx,5,[pinfo.client_box.width]
sub ebx,9 sub ebx,9
mpack ecx,0,[pinfo.client_box.height] mpack ecx,0,[pinfo.client_box.height]
madd ecx, LINE_H*4,-( LINE_H*4+5) madd ecx, LINE_H*4,-( LINE_H*4+5)
@ -425,7 +414,21 @@ draw_messages:
mov word[bottom_right],cx mov word[bottom_right],cx
msub [bottom_right],7,11 msub [bottom_right],7,11
add [bottom_right],7 shl 16 + 53 add [bottom_right],7 shl 16 + 53
mcall 13,,,[sc.work] ; clear work area mcall 13,,,0xFeFefe ; clear work area
; draw top shadow
push ecx
mov cx,1
mov edx,0xDADEDA
mcall
; draw left shadow
pop ecx
push ebx
mov bx,1
mcall
pop ebx
_cy = 0 _cy = 0
_sy = 2 _sy = 2
_cx = 4 _cx = 4

View File

@ -473,9 +473,7 @@ dc1:
cmp ax,word[bottom_right+2] cmp ax,word[bottom_right+2]
ja dc2 ja dc2
mov [dc],dl mov [dc],dl
mov ecx,[sc.work_text] mcall 4,[textxy],0x10000000,dc,1
or ecx,$10000000
mcall 4,[textxy],,dc,1
add [textxy],0x00080000 add [textxy],0x00080000
popa popa
ret ret

View File

@ -1,30 +1,29 @@
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
aQuestion db '?' aQuestion db '?',0
caption_str db 'KPack',0 caption_str db 'KPack - Kolibri Packer',0
buttons1names db ' InFile:' buttons1names db ' InFile:'
db 'OutFile:' db 'OutFile:'
db ' Path:' db ' Path:'
aCompress db 'COMPRESS',0 aCompress db ' Compress',0
aDecompress db 'DECOMPRESS',0 aDecompress db 'Decompress',0
definoutname db 0 definoutname db 0
defpath db '/rd/1',0 defpath db '/rd/1',0
;curedit dd 0 ;curedit dd 0
info_str db 'KPack - Kolibri Packer, version 0.20',10 info_str db 'KPack - Kolibri Packer, version 0.21',10
db 'Uses LZMA v4.32 compression library',10,10 db 'Uses LZMA v4.32 compression library',10,10
info_len = $ - info_str info_len = $ - info_str
usage_str db 'Written by diamond in 2006, 2007, 2009 specially for KolibriOS',10 usage_str db 'Written by diamond in 2006-2009 specially for KolibriOS',10
db 'Disassembled code, using Box_Lib, Proc_Lib and OpenDialog',10 db 'Disassembled code, using Box_Lib, Proc_Lib and OpenDialog',10
db ' by Mario79, 2010',10 db 'by Mario79, 2010',10
db 'LZMA is copyright (c) 1999-2005 by Igor Pavlov',10 db 'LZMA is copyright (c) 1999-2005 by Igor Pavlov',10
db 10 db 10
db 'Command-line usage:',10 db 'Command-line usage:',10
db ' path_to_infile with zero',10 db ' path_to_infile with zero',10
db 10 db 10
db 'Window usage:',10 db 'Window usage:',10
db 'Select file with PATH-button and press needed button',10 db ' Select file with PATH-button or set all data in the',10
db ' or enter input and output file name,',10 db ' text fileds manually, then press an appropriate button',10
db ' enter path and press needed button',10
usage_len = $ - usage_str usage_len = $ - usage_str
already_str db 'Already packed kernel.mnt file',10 already_str db 'Already packed kernel.mnt file',10
already_len = $ - already_str already_len = $ - already_str
@ -79,26 +78,10 @@ Box_lib_import:
edit_box_draw dd aEdit_box_draw edit_box_draw dd aEdit_box_draw
edit_box_key dd aEdit_box_key edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse edit_box_mouse dd aEdit_box_mouse
;version_ed dd aVersion_ed
init_checkbox dd aInit_checkbox init_checkbox dd aInit_checkbox
check_box_draw dd aCheck_box_draw check_box_draw dd aCheck_box_draw
check_box_mouse dd aCheck_box_mouse check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch
;option_box_draw dd aOption_box_draw
;option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
;scrollbar_ver_draw dd aScrollbar_ver_draw
;scrollbar_ver_mouse dd aScrollbar_ver_mouse
;scrollbar_hor_draw dd aScrollbar_hor_draw
;scrollbar_hor_mouse dd aScrollbar_hor_mouse
;version_scrollbar dd aVersion_scrollbar
;menu_bar_draw dd aMenu_bar_draw
;menu_bar_mouse dd aMenu_bar_mouse
;version_menu_bar dd aVersion_menu_bar
dd 0 dd 0
dd 0 dd 0
@ -106,26 +89,11 @@ check_box_mouse dd aCheck_box_mouse
aEdit_box_draw db 'edit_box',0 aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0 aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0 aEdit_box_mouse db 'edit_box_mouse',0
;aVersion_ed db 'version_ed',0
aInit_checkbox db 'init_checkbox2',0 aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0 aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0 aCheck_box_mouse db 'check_box_mouse2',0
;aVersion_ch db 'version_ch',0
;aOption_box_draw db 'option_box_draw',0
;aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
;aScrollbar_ver_draw db 'scrollbar_v_draw',0
;aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
;aScrollbar_hor_draw db 'scrollbar_h_draw',0
;aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
;aVersion_scrollbar db 'version_scrollbar',0
;aMenu_bar_draw db 'menu_bar_draw',0
;aMenu_bar_mouse db 'menu_bar_mouse',0
;aVersion_menu_bar db 'version_menu_bar',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
head_f_i: head_f_i:
head_f_l db 'System error',0 head_f_l db 'System error',0
@ -192,19 +160,31 @@ dd Filter.end - Filter.1
.end: .end:
db 0 db 0
WIN_W = 490
WIN_H = 350
LINE_H = 25
RIGHT_BTN_W = 103
EDIT_X = 76
LOG_Y = LINE_H*3+5
LOG_H = WIN_H-LOG_Y-9
start_temp_file_name: db 'temp.bin',0 start_temp_file_name: db 'temp.bin',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4 align 4
edit1 edit_box 160, 60, 1, 0xffffff, 0xff, 0x80ff, 0, 0x8000, 256, inname, mouse_dd, 0, 11,11 edit1 edit_box WIN_W-EDIT_X-RIGHT_BTN_W-12, EDIT_X, 3, 0xffffff,\
edit2 edit_box 160, 60, 17, 0xffffff, 0xff, 0x80ff, 0, 0x8000,256, outname, mouse_dd, 0, 7,7 0xA4C4E4, 0x80ff, 0, 0x10000000, 256, inname, mouse_dd, 0, 11,11
edit3 edit_box 160, 60, 33, 0xffffff, 0xff, 0x80ff, 0, 0x8000,256, path, mouse_dd, 0, 6,6 edit2 edit_box WIN_W-EDIT_X-RIGHT_BTN_W-12, EDIT_X, LINE_H+3, 0xffffff,\
0xA4C4E4, 0x80ff, 0, 0x10000000, 256, outname, mouse_dd, 0, 7,7
edit3 edit_box WIN_W-EDIT_X-RIGHT_BTN_W-12, EDIT_X, LINE_H*2+3, 0xffffff,\
0xA4C4E4, 0x80ff, 0, 0x10000000, 256, path, mouse_dd, 0, 6,6
editboxes_end: editboxes_end:
mouse_dd dd 0 mouse_dd dd 0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
check1 check_box2 (353 shl 16)+10, (39 shl 16)+10, 4, 0x80FFFFFF, 0, 0, check_text, ch_flag_bottom check1 check_box2 ((WIN_W - RIGHT_BTN_W - 5) shl 16)+15, ((LINE_H*2+6) shl 16)+15, 6, 0xffffff,\
0x80ff, 0x10000000, check_text,ch_flag_top
check1_end: check1_end:
check_text db 'Kernel',0 check_text db 'Kernel',0

View File

@ -2,7 +2,7 @@
params: params:
rb 256 rb 256
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
color_table system_colors sc system_colors
innamelen rd 1 innamelen rd 1
inname rb 256 ;48 inname rb 256 ;48

View File

@ -1,34 +1,9 @@
; kpack = Kolibri Packer
;---------------------------------------------------------------------
; version: 0.20
; last update: 08/18/2011
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Checking for "rolled up" window
;---------------------------------------------------------------------
; version: 0.20
; last update: 07/12/2010
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Added code for packing the kernel.mnt
;---------------------------------------------------------------------
; version: 0.15
; last update: 06/11/2010
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: 1) Window Y=4, B=1
; 2) Refresh lenght of data after Editbox editing
; 3) Changed format of start parameter -
; longer path (total length 255 + zero).
;---------------------------------------------------------------------
; version: 0.14
; last update: 03/11/2010
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: select path with OpenDialog,
; using Box_Lib and Proc_Lib
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
; Kpack - Kolibri Packer ; Kpack - Kolibri Packer
; Kolibri version ; Kolibri version
; Written by diamond in 2006, 2007 specially for KolibriOS ; Written by diamond in 2006, 2007 specially for KolibriOS
; ;
; Disassemled and corrected in 2010 specially for FASM ; Disassemled and corrected in 2010-2011 specially for FASM
; by Marat Zakiyanov aka Mario79, aka Mario ; by Marat Zakiyanov aka Mario79, aka Mario
; ;
; Uses LZMA compression library by Igor Pavlov ; Uses LZMA compression library by Igor Pavlov
@ -49,6 +24,7 @@ use32
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
include '../../../config.inc' ;for nightbuild include '../../../config.inc' ;for nightbuild
include '../../../macros.inc' include '../../../macros.inc'
include '../../../gui_patterns.inc'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../develop/libraries/box_lib/load_lib.mac' include '../../../develop/libraries/box_lib/load_lib.mac'
@use_library @use_library
@ -397,10 +373,10 @@ newline:
x2: x2:
mov [message_cur_pos],edx mov [message_cur_pos],edx
; update window ; update window
mcall 13,<6,414>,<54,222>,[color_table+20] call draw_log_area
;-------------------------------------- ;--------------------------------------
draw_messages: draw_messages:
mov ebx,12 shl 16+60 mov ebx,12 shl 16 + LOG_Y + 7
mov edi,message_mem mov edi,message_mem
;-------------------------------------- ;--------------------------------------
@@: @@:
@ -413,31 +389,38 @@ draw_messages:
neg ecx neg ecx
mov esi,ecx mov esi,ecx
pop edi pop edi
mcall 4,,[color_table+32],edi mcall 4,,0xB0000000,edi
add ebx,10 add ebx,16
add edi,80 add edi,80
cmp edi,message_cur_pos cmp edi,message_cur_pos
jb @b jb @b
ret ret
;********************************************************************* ;*********************************************************************
draw_log_area:
DrawRectangle 5, LOG_Y, WIN_W-12, LOG_H, [sc.work_graph]
mcall 13, <6,WIN_W-13>, <LOG_Y+1,LOG_H-1>, 0xFFFfff
ret
;*********************************************************************
draw_window: draw_window:
; start redraw ; start redraw
mcall 12,1 mcall 12,1
mcall 48,3,sc,40
mcall 48,3,color_table,40 ;--------------------------------------
;-------------------------------------- edit_boxes_set_sys_color edit1,editboxes_end,sc
edit_boxes_set_sys_color edit1,editboxes_end,color_table check_boxes_set_sys_color2 check1,check1_end,sc
check_boxes_set_sys_color2 check1,check1_end,color_table ;--------------------------------------
;--------------------------------------
; define window ; define window
xor eax,eax mcall 48,4
mov ecx,100 shl 16+306
mov edx,[color_table.work] mov ecx,100 shl 16 + WIN_H
add ecx, eax
mov edx,[sc.work]
add edx,34000000h add edx,34000000h
xor esi,esi xor esi,esi
xor edi,edi xor edi,edi
mcall ,<100,436>,,,,caption_str mcall 0,<250,WIN_W+10>,,,,caption_str
mcall 9,procinfo,-1 mcall 9,procinfo,-1
mov eax,[procinfo+70] ;status of window mov eax,[procinfo+70] ;status of window
@ -445,18 +428,12 @@ check_boxes_set_sys_color2 check1,check1_end,color_table
jne .end jne .end
;-------------------------------------- ;--------------------------------------
; draw lines and frame ; draw lines and frame
call draw_lines call draw_log_area
; draw buttons ; draw buttons
call draw_buttons call draw_buttons
; draw messages ; draw messages
call draw_messages call draw_messages
; draw editbox's ; draw editbox's
mov eax,[procinfo+42]
sub eax,65+72+10
mov [edit1.width],eax
mov [edit2.width],eax
mov [edit3.width],eax
call draw_editbox call draw_editbox
; end redraw ; end redraw
.end: .end:
@ -473,6 +450,9 @@ draw_editbox:
push dword edit3 push dword edit3
call [edit_box_draw] call [edit_box_draw]
mov eax,[sc.work_text]
or eax, 0x90000000
mov [check1.text_color], eax
push dword check1 push dword check1
call [check_box_draw] call [check_box_draw]
ret ret
@ -491,64 +471,52 @@ set_editbox_position:
mov [edi+52], eax ;ed_pos mov [edi+52], eax ;ed_pos
ret ret
;********************************************************************* ;*********************************************************************
draw_lines:
mov ecx,2 shl 16+12*3
; draw frame for messages data
push ecx
add ecx,50 shl 16+16
mcall 38,<3,423>,,[color_table.work_graph]
add ecx,224*(1 shl 16+1)
mcall
sub cx,224
mcall ,<3,3>
mcall ,<423,423>
pop ecx
ret
;*********************************************************************
draw_buttons: draw_buttons:
; define compress button ; define compress button
mov cx,18 mov cx,18
mcall 8,<351,73>,<1, 17>,2,[color_table.work_button] mcall 8,<WIN_W - RIGHT_BTN_W - 5, RIGHT_BTN_W>, <3, 20>,2,[sc.work_button]
; uncompress button ; uncompress button
add ecx,18 shl 16
inc edx inc edx
add ecx,LINE_H shl 16
mcall mcall
;add ecx,-12h+0Ch+140000h
mov ecx, 38 shl 16 + 11
; question button ; question button
push esi push esi
mov dl,7 mov dl,7
mcall ,<413,11> mcall ,<WIN_W-25,18>,<LINE_H*2+3,18>
shr ecx,16 mov ecx,[sc.work_button_text]
lea ebx,[ecx+1A00002h] or ecx,0x90000000
mcall 4,,[color_table.work_button_text],aQuestion,1 mov edx,aQuestion
mcall 4,<WIN_W-19, LINE_H*2+5>
pop esi pop esi
; define settings buttons ; define Path button
mov ecx,16*2+2 mcall 8,<6,64>,<LINE_H*2+3,20>,4
shl ecx,16 ; text on Path button
mov cx,13
mcall 8,<6,50>,,4
; text on settings buttons
mov ebx,8 shl 16+5 mov ebx,8 shl 16+5
mov al,4 mov al,4
mov ecx,[color_table.work_text] mov ecx,[sc.work_text]
push buttons1names push buttons1names
pop edx pop edx
push 8 push 8
pop esi pop esi
;-------------------------------------- ;--------------------------------------
; text on settings buttons
mov ecx, [sc.work_text]
or ecx, 0x10000000
mcall , <8, 5>, , buttons1names, 8
add edx,esi
add ebx,LINE_H
mcall mcall
add edx,esi add edx,esi
add ebx,16 add ebx,LINE_H
mcall mov ecx,[sc.work_button_text]
add edx,esi or ecx, 0x10000000
add ebx,16 sub ebx, 10 shl 16
mov ecx,[color_table.work_button_text]
mcall mcall
; text on compress and decompress buttons ; text on compress and decompress buttons
or ecx,0x80000000 or ecx,0x80000000
mcall ,<364,6>,,aCompress mcall ,<WIN_W - RIGHT_BTN_W+7,6>,,aCompress
mcall ,<359,24>,,aDecompress mcall ,<WIN_W - RIGHT_BTN_W+7,LINE_H+6>,,aDecompress
ret ret
;********************************************************************* ;*********************************************************************
;Pack procedures ;Pack procedures