- bigger texts and other elements
- now user can click on element in preview window to edit its color

git-svn-id: svn://kolibrios.org@8992 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2021-07-04 10:44:36 +00:00
parent 241c5e20f1
commit eba3c4bb9d
3 changed files with 137 additions and 115 deletions

View File

@ -2,45 +2,45 @@
area:
.x = 5 ;345
.y = 5 ;20
.width = 206
.height = 191
.w = 226
.height = 220
;--------------------------------------
wnd3:
.x = area.x+32
.x = area.x+37
.y = area.y+35
.width = 160
.height = 100
.w = 170
.height = 105
;--------------------------------------
wnd4:
.x = area.x+15
.y = area.y+70
.width = 160
.height = 100
.x = area.x+20
.y = area.y+75
.w = 170
.height = 105
;--------------------------------------
virtual at edi+SKIN_PARAMS.dtp.data
dtp system_colors
end virtual
;----------------------------------------------------------------------
draw_skin:
mcall 13,<area.x,area.width>,<area.y+2,area.height>,0x00FFFFFF
mcall 13,<area.x,area.w>,<area.y+2,area.height>,0x00FFFFFF
mov ebp,not_packed_area
mov edi,[ebp+SKIN_HEADER.params]
add edi,ebp
mpack ebx,wnd3.x,wnd3.width
mpack ebx,wnd3.x,wnd3.w
mpack ecx,wnd3.y,wnd3.height
mov edx,[edi+SKIN_PARAMS.colors_1.outer]
call draw_framerect
mpack ebx,wnd3.x+4,wnd3.width-8
mpack ebx,wnd3.x+4,wnd3.w-8
mpack ecx,wnd3.y+4,wnd3.height-8
mov edx,[edi+SKIN_PARAMS.colors_1.inner]
call draw_framerect
mcall 13,<wnd3.x+1,wnd3.width-2>,<wnd3.y+1,3>,[edi+SKIN_PARAMS.colors_1.frame]
mcall 13,<wnd3.x+1,wnd3.w-2>,<wnd3.y+1,3>,[edi+SKIN_PARAMS.colors_1.frame]
add ecx,(wnd3.height-5)*65536
mcall
mcall ,<wnd3.x+1,3>,<wnd3.y+1,wnd3.height-2>
add ebx,(wnd3.width-5)*65536
add ebx,(wnd3.w-5)*65536
mcall
mcall ,<wnd3.x+5,wnd3.width-10>,<wnd3.y+5,wnd3.height-10>,dword[dtp.work]
mcall ,<wnd3.x+5,wnd3.w-10>,<wnd3.y+5,wnd3.height-10>,dword[dtp.work]
mov eax,0x00000001 ; left, inactive
call find_bitmap
@ -50,7 +50,7 @@ draw_skin:
mov eax,0x00000003 ; base, inactive
call find_bitmap
pop edx
mov esi,wnd3.x+wnd3.width-1
mov esi,wnd3.x+wnd3.w-1
sub esi,edx
shl edx,16
add edx,wnd3.x*65536+wnd3.y
@ -73,7 +73,7 @@ draw_skin:
shr edx,16
neg edx
shl edx,16
add edx,(wnd3.x+wnd3.width)*65536+wnd3.y
add edx,(wnd3.x+wnd3.w)*65536+wnd3.y
mcall 7
mov ebp,not_packed_area
@ -93,22 +93,28 @@ draw_skin:
;---------------------------------------------------------
mov edi,[ebp+SKIN_HEADER.params]
add edi,ebp
mpack ebx,wnd4.x,wnd4.width
mpack ebx,wnd4.x,wnd4.w
mpack ecx,wnd4.y,wnd4.height
mov edx,[edi+SKIN_PARAMS.colors.outer]
call draw_framerect
mpack ebx,wnd4.x+4,wnd4.width-8
mpack ebx,wnd4.x+4,wnd4.w-8
mpack ecx,wnd4.y+4,wnd4.height-8
mov edx,[edi+SKIN_PARAMS.colors.inner]
call draw_framerect
mcall 13,<wnd4.x+1,wnd4.width-2>,<wnd4.y+1,3>,[edi+SKIN_PARAMS.colors.frame]
mcall 13,<wnd4.x+1,wnd4.w-2>,<wnd4.y+1,3>,[edi+SKIN_PARAMS.colors.frame]
add ecx,(wnd4.height-5)*65536
mcall
mcall ,<wnd4.x+1,3>,<wnd4.y+1,wnd4.height-2>
add ebx,(wnd4.width-5)*65536
add ebx,(wnd4.w-5)*65536
mcall
mcall ,<wnd4.x+5,wnd4.width-10>,<wnd4.y+5,wnd4.height-10>,dword[dtp.work]
mcall ,<wnd4.x+5,wnd4.w-10>,<wnd4.y+5,wnd4.height-10>,dword[dtp.work]
mov eax,[edi+SKIN_PARAMS.skin_height]
shl eax,16
sub eax,[edi+SKIN_PARAMS.skin_height]
add ecx,eax
mov edx,36+0x40000000
mcall 8
mov eax,0x00010001 ; left, inactive
call find_bitmap
mcall 7,,,<wnd4.x,wnd4.y>
@ -117,7 +123,7 @@ draw_skin:
mov eax,0x00010003 ; base, inactive
call find_bitmap
pop edx
mov esi,wnd4.x+wnd4.width-1
mov esi,wnd4.x+wnd4.w-1
sub esi,edx
shl edx,16
add edx,wnd4.x*65536+wnd4.y
@ -140,7 +146,7 @@ draw_skin:
shr edx,16
neg edx
shl edx,16
add edx,(wnd4.x+wnd4.width)*65536+wnd4.y
add edx,(wnd4.x+wnd4.w)*65536+wnd4.y
mcall 7
mov ebp,not_packed_area
@ -151,6 +157,7 @@ draw_skin:
mov ecx,dword[dtp.grab_text]
add ecx,0x10000000
mcall 4,,,caption_text,caption_text.size
mcall 8, <wnd4.x, 85>, <wnd4.y, 23>,35+0x40000000 ;button under caption
;----------------------------------------------------------------------
mov edi,[ebp+SKIN_HEADER.buttons]
add edi,ebp
@ -160,10 +167,10 @@ draw_skin:
je .lp2
mov ebx,dword[edi+SKIN_BUTTONS.left-2]
mov bx,[edi+SKIN_BUTTONS.width]
mov bx,[edi+SKIN_BUTTONS.w]
mov ecx,dword[edi+SKIN_BUTTONS.top-2]
mov cx,[edi+SKIN_BUTTONS.height]
add ebx,(wnd4.x+wnd4.width)*65536
add ebx,(wnd4.x+wnd4.w)*65536
add ecx,wnd4.y*65536
dec ebx
dec ecx
@ -176,22 +183,32 @@ draw_skin:
add edi,ebp
mpack ebx,wnd4.x+10,wnd4.y+10
add bx,word[edi+SKIN_PARAMS.skin_height]
mcall 4,,[dtp.work_text],window_text,window_text.size
mov ecx,[dtp.work_text]
add ecx,0x10000000
mcall 4,,,window_text,window_text.size
mov ecx,[edi+SKIN_PARAMS.skin_height]
shl ecx,16
add ecx,(wnd4.y+8)*65536+10
mcall 13,<wnd4.x+window_text.size*6+20,wnd4.x+wnd4.width-10-\
(wnd4.x+window_text.size*6+20)>,,[dtp.work_graph]
add ecx,(wnd4.y+8)*65536+18
add ecx,25*65536+10
mcall 8,<wnd4.x+wnd4.width/2-button_text.size*3-6,\
button_text.size*6+11>,,0,[dtp.work_button]
mcall 13,<wnd4.x+window_text.size*8+20,wnd4.x+wnd4.w-10-\
(wnd4.x+window_text.size*8+20)>,,[dtp.work_graph]
mov edx, 40+0x40000000 ; graf button
mcall 8
dec edx ; window text button
mcall 8, <wnd4.x+10, window_text.size*8>
add ecx,35*65536+5
mcall 8,<wnd4.x+wnd4.w/2-button_text.size*4-8,\
button_text.size*8+15>,,37,[dtp.work_button]
shr ecx,16
mov bx,cx
add ebx,0x00060007
mcall 4,,[dtp.work_button_text],button_text,button_text.size
add ebx,0x00060005
mov ecx, [dtp.work_button_text]
add ecx, 0x10000000
mcall 4,,,button_text,button_text.size
ret
;---------------------------------------------------------------------
find_bitmap:

View File

@ -1,75 +1,75 @@
;-----------------------------------------------------------------------------
text:
if lang eq ru
db ' UNUSED1 '
db ' UNUSED2 '
db ' 3D ’…ŚŤ€ź Ž<E28099>ŽŤ€ '
db ' 3D ‘‚…’‹€ź Ž<E28099>ŽŤ€ '
db ' ‡<EFBFBD>ŽŽŽŠ ŽŠŤ€ '
db ' <EFBFBD><EFBFBD>Ž—€ź Ž<>ś '
db ' ŠŤŽŹŠ€ <20><EFBFBD>Ž—…‰ Ž<><E28098> '
db ' …Š‘’ Ť€ ŠŤŽŹŠ… '
db ' …Š‘’ <20><EFBFBD>Ž—…‰ Ž<><E28098> '
db ' <EFBFBD><EFBFBD>€”<EFBFBD>Š€ <20><EFBFBD>Ž—…‰ Ž<><E28098> '
db ' Unused1 '
db ' Unused2 '
db ' 3d ⥬­ ï áâ®à®­  '
db ' 3d ᢥ⫠ï áâ®à®­  '
db ' ‡ £®«®¢®ª ®ª­  '
db ' ”®­ ®ª­  '
db ' Š­®¯ª  '
db ' ¥ªáâ ­  ª­®¯ª¥ '
db ' ¥ªáâ ¢ ®ª­¥ '
db ' ƒà ä¨ª  ¢ ®ª­¥ '
db 'x'
else if lang eq et
db ' UNUSED1 '
db ' UNUSED2 '
db ' WORK 3D DARK '
db ' WORK 3D LIGHT '
db ' AKNA PEALKIRI '
db ' AKNA TÖÖPIIRKOND '
db ' AKNA TÖÖPIIRKONNA NUPP '
db ' AKNA TÖÖPIIRKONNA NUPPU TEKST '
db ' AKNA TÖÖPIIRKONNA TEKST '
db ' AKNA TÖÖPIIRKONNA GRAAFIKA '
db ' Unused1 '
db ' Unused2 '
db ' 3d dark '
db ' 3d light '
db ' Akna pealkiri '
db ' Akna tööpiirkond '
db ' Akna tööpiirkonna nupp '
db ' Akna tööpiirkonna nuppu tekst '
db ' Akna tööpiirkonna tekst '
db ' Akna tööpiirkonna graafika '
db 'x'
else
db ' UNUSED1 '
db ' UNUSED2 '
db ' WORK 3D DARK '
db ' WORK 3D LIGHT '
db ' WINDOW TITLE '
db ' WORK AREA BACKGROUND '
db ' WORK AREA BUTTON '
db ' WORK AREA BUTTON TEXT '
db ' WORK AREA TEXT '
db ' WORK AREA GRAPH '
db ' Unused1 '
db ' Unused2 '
db ' 3d dark '
db ' 3d light '
db ' Window title '
db ' Window background '
db ' Button '
db ' Button text '
db ' Window text '
db ' Window graph '
db 'x'
end if
;-----------------------------------------------------------------------------
if lang eq ru
sz t1,'‡€<EFBFBD><EFBFBD>“‡<EFBFBD>ś Ž•<C5BD>€Ť<E282AC>ś Ź<><C5B9>Ś…Ť<E280A6>ś'
sz t1,'‡€ƒ<EFBFBD>“‡ˆœ Ž•<C5BD><EFBFBD>ˆœ <20><>ˆŒ…<C592>ˆœ'
else if lang eq et
sz t1,' LAADI SALVESTA KINNITA'
sz t1,' LAADI SALVESTA KINNITA'
else
sz t1,' LOAD SAVE APPLY'
sz t1,' LOAD SAVE APPLY'
end if
;-----------------------------------------------------------------------------
if lang eq ru
sz t2,'‡€<EFBFBD><EFBFBD>“‡<EFBFBD>ś 3D ŹŽŠ<E28098>… Ź<><C5B9>Ś…Ť<E280A6>ś'
sz t2,'‡€ƒ<EFBFBD>“‡ˆœ 3D <20>ŽŠˆ<20><>ˆŒ…<C592>ˆœ'
else if lang eq et
sz t2,' LAADI 3D LAME KINNITA'
sz t2,' LAADI 3D LAME KINNITA'
else
sz t2,' LOAD 3D FLAT APPLY'
sz t2,' LOAD 3D FLAT APPLY'
end if
;-----------------------------------------------------------------------------
select_dtp_text:
if lang eq ru
db ' <EFBFBD>Ž<EFBFBD> ŽŽ<E2809A>Ž Ž”Ž<E2809D>Ś…Ť<E280A6>ź: ',0
db ' ë¡®à 梥⮢®£® ®ä®à¬«¥­¨ï: ',0
else if lang eq et
db ' VALIK VARVISKEEME: ',0
db ' Valik varviskeeme: ',0
else
db ' CHOICE OF COLOR SCHEMES: ',0
db ' Choice of color schemes: ',0
end if
;-----------------------------------------------------------------------------
select_skin_text:
if lang eq ru
db ' <EFBFBD>Ž<EFBFBD> <20>Š“<C5A0>Š<EFBFBD>: ',0
db ' ë¡®à ᪨­ : ',0
else if lang eq et
db ' VALIK NAHAD: ',0
db ' Valik nahad: ',0
else
db ' CHOICE OF SKINS: ',0
db ' Choice of skins: ',0
end if
;-----------------------------------------------------------------------------
if lang eq ru
@ -255,10 +255,10 @@ sz_Frame_draw db 'frame_draw',0
;---------------------------------------------------------------------
PathShow_data_1:
.type dd 0 ;+0
.start_y dw frame_1.y+10 ;+4
.start_x dw frame_1.x+7 ;+6
.start_y dw frame_1.y+19 ;+4
.start_x dw frame_1.x+15 ;+6
.font_size_x dw 6 ;+8 ; 6 - for font 0, 8 - for font 1
.area_size_x dw frame_1.width-20 ;+10
.area_size_x dw frame_1.w-28 ;+10
.font_number dd 0 ;+12 ; 0 - monospace, 1 - variable
.background_flag dd 0 ;+16
.font_color dd 0x0 ;+20
@ -269,10 +269,10 @@ PathShow_data_1:
;---------------------------------------------------------------------
PathShow_data_2:
.type dd 0 ;+0
.start_y dw frame_2.y+10 ;+4
.start_x dw frame_2.x+7 ;+6
.start_y dw frame_2.y+19 ;+4
.start_x dw frame_2.x+15 ;+6
.font_size_x dw 6 ;+8 ; 6 - for font 0, 8 - for font 1
.area_size_x dw frame_2.width-20 ;+10
.area_size_x dw frame_2.w-28 ;+10
.font_number dd 0 ;+12 ; 0 - monospace, 1 - variable
.background_flag dd 0 ;+16
.font_color dd 0x0 ;+20
@ -389,8 +389,8 @@ frame_data:
.draw_text_flag dd 1 ;+20
.text_pointer dd 0 ;+24
.text_position dd 0 ;+28
.font_number dd 0 ;+32
.font_size_y dd 9 ;+36
.font_number dd 1 ;+32
.font_size_y dd 14 ;+36
.font_color dd 0x0 ;+40
.font_backgr_color dd 0xffffff ;+44
;---------------------------------------------------------------------

View File

@ -68,7 +68,7 @@ struct SKIN_BUTTONS
left dw ?
top dw ?
size:
width dw ?
w dw ?
height dw ?
ends
;--------------------------------------
@ -80,15 +80,19 @@ ends
;--------------------------------------
frame_1:
.x = 5
.y = 220
.width = 420
.height = 50
.y = area.y + area.height + 20
.w = area.w + 217
.height = 65
;--------------------------------------
frame_2:
.x = 5
.y = 280
.width = 420
.height = 50
.x = frame_1.x
.y = frame_1.y + frame_1.height + 20
.w = frame_1.w
.height = frame_1.height
;---------------------------------------------------------------------
win:
.w = frame_2.w + frame_2.x + frame_2.x + 9
.h = frame_2.y + frame_2.height + 10
;---------------------------------------------------------------------
START: ; start of execution
;---------------------------------------------------------------------
@ -394,29 +398,30 @@ save_file:
ret
;---------------------------------------------------------------------
draw_button_row:
mov edx,0x60000000 + 31 ; BUTTON ROW
mov ebx,220*65536+14
mov ecx,10*65536+14
mov edx,0x40000000 + 31 ; BUTTON ROW
mov ebx,(area.w+18)*65536+29
mov ecx,9*65536+15
mov eax,8
;-----------------------------------
.newb:
mcall
add ecx,20*65536
add ecx,22*65536
inc edx
cmp edx,0x60000000 + 40
cmp edx,0x40000000 + 40
jbe .newb
ret
;---------------------------------------------------------------------
draw_button_row_of_texts:
mov ebx,240*65536+13 ; ROW OF TEXTS
mov ebx,(area.w+49)*65536+9 ; ROW OF TEXTS
mov ecx,[w_work_text]
add ecx,0x10000000
mov edx,text
mov esi,32
mov eax,4
;-----------------------------------
.newline:
mcall
add ebx,20
add ebx,22
add edx,32
cmp [edx],byte 'x'
jne .newline
@ -425,7 +430,7 @@ draw_button_row_of_texts:
draw_colours:
pusha
mov esi,color_table
mov ebx,220*65536+14
mov ebx,(area.w+19)*65536+28
mov ecx,10*65536+14
mov eax,13
mov [frame_data.draw_text_flag],dword 0
@ -449,7 +454,7 @@ newcol:
pop ecx ebx
add ecx,20*65536
add ecx,22*65536
add esi,4
cmp esi,color_table+4*9
jbe newcol
@ -459,8 +464,8 @@ newcol:
;----------------------------------------------------------------------
draw_PathShow:
pusha
mcall 13,<frame_1.x+5,frame_1.width-15>,<frame_1.y+7,15>,0xffffff
mcall 13,<frame_2.x+5,frame_2.width-15>,<frame_2.y+7,15>,0xffffff
mcall 13,<frame_1.x+10,frame_1.w-25>,<frame_1.y+16,15>,0xffffff
mcall 13,<frame_2.x+10,frame_2.w-25>,<frame_2.y+16,15>,0xffffff
; draw for PathShow
push dword PathShow_data_1
call [PathShow_draw]
@ -484,9 +489,9 @@ draw_window:
xor esi,esi
mov edx,[w_work] ; color of work area RRGGBB,8->color
or edx,0x34000000
mov ecx,50 shl 16 + 346
mov ecx,50 shl 16 + win.h
add ecx,[current_skin_high]
mcall ,<110,440>,,,,title
mcall ,<110, win.w>,,,,title
mcall 9,procinfo,-1
@ -508,20 +513,20 @@ draw_window:
;-----------------------------------
; select color DTP frame
; LOAD BUTTON ; button 12
mcall 8,<frame_1.x+10,load_w>,<frame_1.y+25,18>,12,[w_work_button]
mcall 8,<frame_1.x+10,load_w>,<frame_1.y+38,18>,12,[w_work_button]
; SAVE BUTTON
add ebx,(load_w+2)*65536-load_w+save_w
inc edx
mcall ; button 13
; APPLY BUTTON
mov ebx,(frame_1.x + frame_1.width - apply_w - 15)*65536+apply_w
mov ebx,(frame_1.x + frame_1.w - apply_w - 15)*65536+apply_w
mcall 8,,,16 ; button 17
; select color DTP button text
mcall 4,<frame_1.x+16,frame_1.y+31>,[w_work_button_text],t1,t1.size
mcall 4,<frame_1.x+16,frame_1.y+44>,[w_work_button_text],t1,t1.size
;-----------------------------------
; select skin frame
; LOAD SKIN BUTTON ; button 17
mcall 8,<frame_2.x+10,load_w>,<frame_2.y+25,18>,17,[w_work_button]
mcall 8,<frame_2.x+10,load_w>,<frame_2.y+38,18>,17,[w_work_button]
; 3D
mov ebx,(frame_2.x+155)*65536+34
mcall ,,,14 ; button 14
@ -530,16 +535,16 @@ draw_window:
inc edx
mcall ; button 15
; APPLY SKIN BUTTON
mov ebx,(frame_2.x + frame_2.width - apply_w -15)*65536+apply_w
mov ebx,(frame_2.x + frame_2.w - apply_w -15)*65536+apply_w
mcall ,,,18 ; button 18
; select skin button text
mcall 4,<frame_2.x+16,frame_2.y+31>,[w_work_button_text],t2,t2.size
mcall 4,<frame_2.x+16,frame_2.y+44>,[w_work_button_text],t2,t2.size
;-----------------------------------
call draw_button_row
call draw_button_row_of_texts
call draw_colours
;-----------------------------------
mov [frame_data.x],dword frame_1.x shl 16+frame_1.width
mov [frame_data.x],dword frame_1.x shl 16+frame_1.w
mov [frame_data.y],dword frame_1.y shl 16+frame_1.height
mov [frame_data.text_pointer],dword select_dtp_text
mov eax,[w_work]
@ -551,7 +556,7 @@ draw_window:
push dword frame_data
call [Frame_draw]
;-----------------------------------
mov [frame_data.x],dword frame_2.x shl 16+frame_2.width
mov [frame_data.x],dword frame_2.x shl 16+frame_2.w
mov [frame_data.y],dword frame_2.y shl 16+frame_2.height
mov [frame_data.text_pointer],dword select_skin_text