- 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,21 +93,27 @@ 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
@ -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,40 +1,40 @@
;-----------------------------------------------------------------------------
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
;-----------------------------------------------------------------------------
@ -56,20 +56,20 @@ 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