From eba3c4bb9d78fe88929af6cb2e740de840be8cff Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sun, 4 Jul 2021 10:44:36 +0000 Subject: [PATCH] skincfg: - 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 --- programs/system/skincfg/trunk/drawskin.inc | 89 ++++++++++-------- programs/system/skincfg/trunk/idata.inc | 100 ++++++++++----------- programs/system/skincfg/trunk/skincfg.asm | 63 +++++++------ 3 files changed, 137 insertions(+), 115 deletions(-) diff --git a/programs/system/skincfg/trunk/drawskin.inc b/programs/system/skincfg/trunk/drawskin.inc index f547ee54f2..6bc91782c9 100644 --- a/programs/system/skincfg/trunk/drawskin.inc +++ b/programs/system/skincfg/trunk/drawskin.inc @@ -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,,,0x00FFFFFF + mcall 13,,,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,,,[edi+SKIN_PARAMS.colors_1.frame] + mcall 13,,,[edi+SKIN_PARAMS.colors_1.frame] add ecx,(wnd3.height-5)*65536 mcall mcall ,, - add ebx,(wnd3.width-5)*65536 + add ebx,(wnd3.w-5)*65536 mcall - mcall ,,,dword[dtp.work] + mcall ,,,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,,,[edi+SKIN_PARAMS.colors.frame] + mcall 13,,,[edi+SKIN_PARAMS.colors.frame] add ecx,(wnd4.height-5)*65536 mcall mcall ,, - add ebx,(wnd4.width-5)*65536 + add ebx,(wnd4.w-5)*65536 mcall - mcall ,,,dword[dtp.work] - + mcall ,,,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,,, @@ -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, , ,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,,,[dtp.work_graph] + add ecx,(wnd4.y+8)*65536+18 - add ecx,25*65536+10 - mcall 8,,,0,[dtp.work_button] + mcall 13,,,[dtp.work_graph] + mov edx, 40+0x40000000 ; graf button + mcall 8 + + dec edx ; window text button + mcall 8, + + add ecx,35*65536+5 + mcall 8,,,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: diff --git a/programs/system/skincfg/trunk/idata.inc b/programs/system/skincfg/trunk/idata.inc index 09f1fec3f0..18dd887dca 100644 --- a/programs/system/skincfg/trunk/idata.inc +++ b/programs/system/skincfg/trunk/idata.inc @@ -1,75 +1,75 @@ ;----------------------------------------------------------------------------- text: if lang eq ru - db ' UNUSED1 ' - db ' UNUSED2 ' - db ' 3D ’…Œ€Ÿ ‘’ŽŽ€ ' - db ' 3D ‘‚…’‹€Ÿ ‘’ŽŽ€ ' - db ' ‡€ƒŽ‹Ž‚ŽŠ ŽŠ€ ' - db ' €Ž—€Ÿ Ž‹€‘’œ ' - db ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ ' - db ' ’…Š‘’ € ŠŽŠ… ' - db ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ ' - db ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ ' + 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,'‡€ƒ“‡ˆ’œ ‘Ž•€ˆ’œ ˆŒ…ˆ’œ' + sz t1,'‡€ƒ“‡ˆ’œ ‘Ž•€ˆ’œ ˆŒ…ˆ’œ' 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,'‡€ƒ“‡ˆ’œ 3D ‹Ž‘Šˆ… ˆŒ…ˆ’œ' + sz t2,'‡€ƒ“‡ˆ’œ 3D ‹Ž‘Šˆ… ˆŒ…ˆ’œ' 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 ' ‚›Ž –‚…’Ž‚ŽƒŽ Ž”ŽŒ‹…ˆŸ: ',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 ' ‚›Ž ˜Š“Šˆ: ',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 ;--------------------------------------------------------------------- diff --git a/programs/system/skincfg/trunk/skincfg.asm b/programs/system/skincfg/trunk/skincfg.asm index 257640b29f..e49006510d 100644 --- a/programs/system/skincfg/trunk/skincfg.asm +++ b/programs/system/skincfg/trunk/skincfg.asm @@ -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,,,0xffffff - mcall 13,,,0xffffff + mcall 13,,,0xffffff + mcall 13,,,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,,,12,[w_work_button] + mcall 8,,,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,,[w_work_button_text],t1,t1.size + mcall 4,,[w_work_button_text],t1,t1.size ;----------------------------------- ; select skin frame ; LOAD SKIN BUTTON ; button 17 - mcall 8,,,17,[w_work_button] + mcall 8,,,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,,[w_work_button_text],t2,t2.size + mcall 4,,[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