From 2325fc5d35aab043c8feb2a386ff7761dad8ff45 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sat, 1 Jan 2022 14:48:03 +0000 Subject: [PATCH] new palitra: update UI git-svn-id: svn://kolibrios.org@9542 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../media/palitra/branch/draw_sliders.inc | 46 ++++++++------- programs/media/palitra/branch/draw_utils.inc | 29 ---------- programs/media/palitra/branch/palitra.asm | 58 ++++++++++--------- 3 files changed, 55 insertions(+), 78 deletions(-) diff --git a/programs/media/palitra/branch/draw_sliders.inc b/programs/media/palitra/branch/draw_sliders.inc index 58fed1133e..e74c22b7e0 100644 --- a/programs/media/palitra/branch/draw_sliders.inc +++ b/programs/media/palitra/branch/draw_sliders.inc @@ -2,33 +2,35 @@ draw_result: ;................................................................................................. ; Большая рамка вывода результата ;................................................................................................. - mcall SF_DRAW_RECT, <4,110>, <9,219-18>, [sc.work_graph] - mcall , <5,110-2>, <10,219-20>, [sc.work_light] + mcall SF_DRAW_RECT, <4,110>, <9, 197>, [sc.work_graph] + mcall , <5,110-2>, <10,195>, [sc.work_light] ;................................................................................................. ; Отрисовка результата цвета в hex color2 ;................................................................................................. - mcall , (16+2) shl 16+15, (16+8) shl 16+15, 0x222222 + CURCOLX = 11 + CURCOLY = 17 + mcall , , , 0x222222 ; color 2 - draw color - mcall , (17+2) shl 16+13, (17+8) shl 16+13, [color2] + mcall , , , [color2] ; color 1 - draw fringle - mcall , (11+2) shl 16+15, (12+8) shl 16+15, 0x222222 + mcall , , , 0x222222 ; color 2 - draw color - mcall , (12+2) shl 16+13, (13+8) shl 16+13, [color] + mcall , , , [color] ; value - draw fringle - mcall , (34+2) shl 16+72, (16+4) shl 16+15+4, 0x222222 + mcall , , , 0x222222 ; value - draw background - mcall , (35+2) shl 16+70, (17+4) shl 16+13+4, 0xFFFFFF + mcall , , , 0xFFFFFF ; Функция 47 - вывод числа в окно - ;ebx - параметры преобразования числа в текст (HEX) - mcall SF_DRAW_NUMBER, 256+8 shl 16, [color], <40,22>, 0x10000000, 0 + ; ebx - параметры преобразования числа в текст (HEX) + mcall SF_DRAW_NUMBER, 256+8 shl 16, [color], , 0x10000000, 0 ; функция 4: написать текст в окне ; edx - рисуем '#' ; esi - длина текста в байтах - ;mcall SF_DRAW_TEXT,38*65536+20,0,hex,1 + ; mcall SF_DRAW_TEXT, <38,20>, 0, hex, 1 ;................................................................................................. ; Отрисовка r g b значений @@ -36,27 +38,27 @@ draw_result: call get_spectr movzx eax,[cred] ; красный - mov ebx,12*65536+196 ; [x начальный] *65536 + [y начальный] + mov ebx,12*65536+190 ; [x начальный] *65536 + [y начальный] call draw_value ; выводим результат movzx eax,[cgreen] ; зеленый - mov ebx,37*65536+196 ; [x начальный] *65536 + [y начальный] + mov ebx,37*65536+190 ; [x начальный] *65536 + [y начальный] call draw_value ; выводим результат movzx eax,[cblue] ; синий - mov ebx,62*65536+196 ; [x начальный] *65536 + [y начальный] + mov ebx,62*65536+190 ; [x начальный] *65536 + [y начальный] call draw_value ; выводим результат movzx eax,[calpha] ; альфа - mov ebx,87*65536+196 ; [x начальный] *65536 + [y начальный] + mov ebx,87*65536+190 ; [x начальный] *65536 + [y начальный] call draw_value ; выводим результат ;................................................................................................. ; Выводим буквы r g b a ;................................................................................................. mov eax,SF_DRAW_TEXT ; 4 - вывести строку текста в окно - mov ebx,17 shl 16+DRAWY+37 ; [координата по оси x]*65536 + [координата по оси y] - mov ecx, 0x10000000 ; 0xX0RRGGBB (RR, GG, BB задают цвет текста) + mov ebx,18 shl 16+DRAWY+32 ; [координата по оси x]*65536 + [координата по оси y] + mov ecx, 0x00000000 ; 0xX0RRGGBB (RR, GG, BB задают цвет текста) add ecx, [sc.work_text] mov edx,cname ; указатель на начало строки mov esi,1 ; выводить esi символов @@ -73,7 +75,7 @@ draw_result: ; Функция 13 - нарисовать прямоугольник mov ebx, 18*65536+18 - mov ecx, 61*65536+61 + mov ecx, 55*65536+55 push dword 0xFC5663 push dword 0xFA0919 @@ -113,22 +115,22 @@ draw_result: ; Отрисовка ползунков ;................................................................................................. mov ebx, 13*65536+13 - mov ecx, (61-3)*65536+(61-3) + mov ecx, (55-3)*65536+(55-3) movzx eax,[cred] call draw_slider mov ebx, (13+25*1)*65536+(13+25*1) - mov ecx, (61-3)*65536+(61-3) + mov ecx, (55-3)*65536+(55-3) movzx eax,[cgreen] call draw_slider mov ebx, (13+25*2)*65536+(13+25*2) - mov ecx, (61-3)*65536+(61-3) + mov ecx, (55-3)*65536+(55-3) movzx eax,[cblue] call draw_slider mov ebx, (13+25*3)*65536+(13+25*3) - mov ecx, (61-3)*65536+(61-3) + mov ecx, (55-3)*65536+(55-3) movzx eax,[calpha] call draw_slider diff --git a/programs/media/palitra/branch/draw_utils.inc b/programs/media/palitra/branch/draw_utils.inc index c1dc4c0405..ecacfb3922 100644 --- a/programs/media/palitra/branch/draw_utils.inc +++ b/programs/media/palitra/branch/draw_utils.inc @@ -1,32 +1,3 @@ -; DrawRectangle3D not work -proc DrawRectangle3D, _x:word, _y:word, _w:word, _h:word, _color1:dword, _color2:dword - mov ebx,dword[_w] - add ebx,dword[_x] ;тут точно какая-то дичь... нужно переписать :) - shl ebx,16 - mov bx,1 - mov ecx,dword[_h] - inc cx - mov edx,[_color2] - mcall SF_DRAW_RECT ; x+w,y,1,h+1,color2 - rol ebx,16 - sub bx,[_w] - ror ebx,16 - dec cx - mov edx,[_color1] - mcall ;SF_DRAW_RECT x,y,1,h,color1 - mov bx,[_h] - xchg bx,cx - mcall ;SF_DRAW_RECT x,y,w,1,color1 - rol ecx,16 - add cx,[_h] - ror ecx,16 - mov edx,[_color2] - mcall ;SF_DRAW_RECT x,y+h,w,1,color2 - ret -endp - - - proc DrawDeepRectangle, _x:word, _y:word, _w:word, _h:word, color1:dword, color2:dword pusha diff --git a/programs/media/palitra/branch/palitra.asm b/programs/media/palitra/branch/palitra.asm index 7239e07703..f9f8e8b5ba 100644 --- a/programs/media/palitra/branch/palitra.asm +++ b/programs/media/palitra/branch/palitra.asm @@ -80,7 +80,7 @@ - WIN_W = 394 ; ширина окна + WIN_W = 374 ; ширина окна WIN_H = 251 ; высота окна WIN_X = 250 ; координата х окна WIN_Y = 190 ; координата у окна @@ -91,7 +91,8 @@ CELLW = 11; 11 ; not used yet, but has to be :) - ICONX = WIN_W - 35 + ICONX = WIN_W - 39 + ICONS = 18 ; icon size SLIDEW = 25 palitra_x = Left_Border+SliderPanel_W+12 @@ -287,10 +288,10 @@ draw_main: call draw_palitra ; РИСУЕМ ПАЛИТРУ call draw_result ; РИСУЕМ РЕЗУЛЬТАТ - mcall SF_DEFINE_BUTTON, , , 0x07+BT_HIDE ; palitra + mcall SF_DEFINE_BUTTON, , , 7+BT_HIDE ; palitra - add edx,1++BT_NOFRAME - mcall , <10,22>, <62,128> ; Рисуем невидимую кнопку под слайдером red + inc edx + mcall , <10,22>, <56,128> ; Рисуем невидимую кнопку под слайдером red add ebx,25*65536 ; Добавляем inc edx ; ID = 9 int 0x40 ; Рисуем невидимую кнопку под слайдером green @@ -323,32 +324,36 @@ draw_main: draw_left_panel: ; Отрисовка боковой панели SL97: На самом деле правой. ;................................................................................................. ; button_next_colorsheme - mcall SF_DEFINE_BUTTON, , , 12+BT_HIDE + mcall SF_DEFINE_BUTTON, , , 12+BT_HIDE ; palitra button ; ID = 14 - mcall , ,(DRAWY+150) shl 16 + 21, 14+BT_HIDE + mcall , ,(DRAWY+150) shl 16 + ICONS+3, 14+BT_HIDE ; pipet button ; ID = 15 - mcall , , (DRAWY+150) shl 16 + 21, 15+BT_HIDE + mcall , , (DRAWY+150) shl 16 + ICONS+3, 15+BT_HIDE mov ebx,[icons18bg] - add ebx,18*18*4*53 - mcall SF_PUT_IMAGE_EXT, ebx, <18,18>, , 32, 0, 0 + add ebx,ICONS*ICONS*4*53 + mcall SF_PUT_IMAGE_EXT, ebx, , , 32, 0, 0 - add ebx,18*18*4*(39-53) + add ebx,ICONS*ICONS*4*(39-53) mov edx,(ICONX+2)*65536+WIN_H-90 mcall mov ebx,[icons18] - add ebx,18*18*4*(53-1) + add ebx,ICONS*ICONS*4*(53-1) sub edx,40 mcall - stdcall DrawDeepRectangle, ICONX, DRAWY, 22, 22, [sc.work_light], [sc.work_dark] + stdcall DrawDeepRectangle, ICONX-1, DRAWY-1, ICONS+5, ICONS+5, [sc.work_graph], [sc.work_graph] + stdcall DrawDeepRectangle, ICONX, DRAWY, ICONS+3, ICONS+3, [sc.work_light], [sc.work_dark] - stdcall DrawDeepRectangle, ICONX, DRAWY+110, 22, 22, [sc.work_light], [sc.work_dark] + stdcall DrawDeepRectangle, ICONX-1, DRAWY+109, ICONS+5, ICONS+5, [sc.work_graph], [sc.work_graph] + stdcall DrawDeepRectangle, ICONX, DRAWY+110, ICONS+3, ICONS+3, [sc.work_dark], [sc.work_light] + stdcall DrawDeepRectangle, ICONX+1, DRAWY+111, ICONS+1, ICONS+1, 0xFFFfff, 0xFFFfff - stdcall DrawDeepRectangle, ICONX, DRAWY+150, 22, 22, [sc.work_light], [sc.work_dark] + stdcall DrawDeepRectangle, ICONX-1, DRAWY+149, ICONS+5, ICONS+5, [sc.work_graph], [sc.work_graph] + stdcall DrawDeepRectangle, ICONX, DRAWY+150, ICONS+3, ICONS+3, [sc.work_light], [sc.work_dark] ;stdcall DrawRectangle3D, ICONX, DRAWY, 22, 22, [sc.work_light], [sc.work_dark] ;Leency: draw rectangle around the button, buggy now @@ -394,7 +399,7 @@ draw_main: ;------------------------------------------------------------------------------------------------+ draw_bottom_panel: ; Отрисовка нижней панели ;................................................................................................. - mcall SF_DEFINE_BUTTON, ((60+70) shl 16)+90, ((WIN_H-26) shl 16)+16, 14, [sc.work_button] + mcall SF_DEFINE_BUTTON, <129,90>, , 16, [sc.work_button] add ebx, 100 shl 16 add edx, 2 @@ -402,22 +407,21 @@ draw_main: ; Write string mov ecx,[sc.work_text] ; RGB - or ecx, 1 shl 31 - mcall SF_DRAW_TEXT, (60) shl 16+(WIN_H-21), ,bground + add ecx, 0x90000000 + mcall SF_DRAW_TEXT, <35, WIN_H-26>, ,bground mov ecx, [sc.work_button_text] - or ecx, 1 shl 31 - - add ebx, 90 shl 16 + add ecx, 0x90000000 + add ebx, 107 shl 16 mov edx, bground1 - int 0x40 + mcall - add ebx, 108 shl 16 + add ebx, 113 shl 16 mov edx, bground2 - int 0x40 + mcall - mcall SF_DRAW_LINE, 4 shl 16+(WIN_W-14), (WIN_H-32) shl 16+(WIN_H-32), 0x00666666 - ret ; return + mcall SF_DRAW_LINE, <4, WIN_W-14>, , [sc.work_graph] + ret ;................................................................................................. mouse_global: @@ -895,7 +899,7 @@ circle: cname db 'RGBAx' ; хранит разряды цветов (red,green,blue) x-метка конца larrow db 0x1A,0 buff db '000',0 - bground db 'BACKGROUND',0 ; имя кнопки - 14 + bground db 'Background',0 ; имя кнопки - 14 bground1 db 'Gradient',0 ; имя кнопки - 15 bground2 db 'Noisy',0 ; имя кнопки - 16 runmode dd 1 ; режим запуска (1-normal, 2-hidden, 3-colordialog)