From f9e2c34b31c28af06449f16fdf03aada4fc91356 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Thu, 18 Apr 2019 09:38:01 +0000 Subject: [PATCH] Eolite 4.21: change colors on fly Software widget: dark skins support git-svn-id: svn://kolibrios.org@7635 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/eolite/Eolite.c | 10 +-- programs/cmm/eolite/include/settings.h | 40 ++++++----- programs/cmm/eolite/include/translations.h | 4 +- .../cmm/software_widget/software_widget.c | 62 ++++++++++++++---- programs/media/kiv/trunk/kivicons.bmp | Bin 5078 -> 5078 bytes 5 files changed, 74 insertions(+), 42 deletions(-) diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index f0cacb4cf1..498699cecd 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -165,15 +165,6 @@ void main() LoadIniSettings(); SystemDiscs.Get(); - Libimg_LoadImage(#icons16_default, "/sys/icons16.png"); - Libimg_LoadImage(#icons16_selected, "/sys/icons16.png"); - Libimg_ReplaceColor(icons16_selected.image, icons16_selected.w, icons16_selected.h, 0xffFFFfff, col.selec); - Libimg_ReplaceColor(icons16_selected.image, icons16_selected.w, icons16_selected.h, 0xffCACBD6, MixColors(col.selec, 0, 200)); - if (col.list_bg!=0xFFFfff) { - Libimg_ReplaceColor(icons16_default.image, icons16_selected.w, icons16_selected.h, 0xffFFFfff, col.list_bg); - Libimg_ReplaceColor(icons16_default.image, icons16_selected.w, icons16_selected.h, 0xffCACBD6, MixColors(col.list_bg, 0, 200)); - } - //-p just show file/folder properties dialog if (param) && (param[0]=='-') && (param[1]=='p') { @@ -582,6 +573,7 @@ void draw_window() if (!two_panels.checked) && (Form.width < 480) { MoveSize(OLD,OLD,480,OLD); return; } if ( two_panels.checked) && (Form.width < 573) { MoveSize(OLD,OLD,573,OLD); return; } GetProcessInfo(#Form, SelfInfo); + SetAppColors(); ESDWORD[#toolbar_pal] = col.work; ESDWORD[#toolbar_pal+4] = MixColors(0, col.work, 35); PutPaletteImage(#toolbar, 246, 34, 0, 0, 8, #toolbar_pal); diff --git a/programs/cmm/eolite/include/settings.h b/programs/cmm/eolite/include/settings.h index 0b7e86578d..2afcdcb348 100644 --- a/programs/cmm/eolite/include/settings.h +++ b/programs/cmm/eolite/include/settings.h @@ -204,11 +204,31 @@ void Write_Error(int error_number) } +void LoadIcons() +{ + //ICONS16.PNG + Libimg_LoadImage(#icons16_default, "/sys/icons16.png"); + Libimg_LoadImage(#icons16_selected, "/sys/icons16.png"); + Libimg_ReplaceColor(icons16_selected.image, icons16_selected.w, icons16_selected.h, 0xffFFFfff, col.selec); + Libimg_ReplaceColor(icons16_selected.image, icons16_selected.w, icons16_selected.h, 0xffCACBD6, MixColors(col.selec, 0, 200)); + if (col.list_bg!=0xFFFfff) { + Libimg_ReplaceColor(icons16_default.image, icons16_selected.w, icons16_selected.h, 0xffFFFfff, col.list_bg); + Libimg_ReplaceColor(icons16_default.image, icons16_selected.w, icons16_selected.h, 0xffCACBD6, MixColors(col.list_bg, 0, 200)); + } + //ICONS32.PNG + Libimg_LoadImage(#icons32_default, "/sys/icons32.png"); + Libimg_LoadImage(#icons32_selected, "/sys/icons32.png"); + Libimg_ReplaceColor(icons32_default.image, icons32_selected.w, icons32_selected.h, 0x00000000, col.list_bg); + Libimg_ReplaceColor(icons32_selected.image, icons32_selected.w, icons32_selected.h, 0x00000000, col.selec); +} + void SetAppColors() { int i; - dword bg_col; + dword bg_col, old_list_bg_color; system.color.get(); + if (col.work == system.color.work) return; + old_list_bg_color = col.list_bg; bg_col = system.color.work; if (GrayScaleImage(#bg_col,1,1)>=65) { @@ -246,6 +266,7 @@ void SetAppColors() col.selec_inactive = MixColors(0xBBBbbb, col.list_bg, 65); col.slider_bg_left = MixColors(col.graph, col.slider_bg_big, 10); for (i=0; i<=20; i++) col.work_gradient[20-i] = MixColors(0, system.color.work, i); + if (old_list_bg_color!=col.list_bg) LoadIcons(); } @@ -262,22 +283,7 @@ void BigFontsChange() void BigIconsSwitch() { - if (big_icons.checked) - { - icon_size=32; - if (!icons32_default.image) - { - Libimg_LoadImage(#icons32_default, "/sys/icons32.png"); - Libimg_LoadImage(#icons32_selected, "/sys/icons32.png"); - Libimg_ReplaceColor(icons32_default.image, icons32_selected.w, - icons32_selected.h, 0x00000000, col.list_bg); - Libimg_ReplaceColor(icons32_selected.image, icons32_selected.w, - icons32_selected.h, 0x00000000, col.selec); - } - } - else { - icon_size=16; - } + if (big_icons.checked) icon_size=32; else icon_size=16; BigFontsChange(); } diff --git a/programs/cmm/eolite/include/translations.h b/programs/cmm/eolite/include/translations.h index eec51f5f8c..7002383342 100644 --- a/programs/cmm/eolite/include/translations.h +++ b/programs/cmm/eolite/include/translations.h @@ -1,5 +1,5 @@ -#define TITLE "Eolite File Manager 4.2" -#define ABOUT_TITLE "EOLITE 4.2" +#define TITLE "Eolite File Manager 4.21" +#define ABOUT_TITLE "EOLITE 4.21" #ifdef LANG_RUS ?define T_FILE "” ©«" diff --git a/programs/cmm/software_widget/software_widget.c b/programs/cmm/software_widget/software_widget.c index f9bcb351c7..aadf65455f 100644 --- a/programs/cmm/software_widget/software_widget.c +++ b/programs/cmm/software_widget/software_widget.c @@ -1,5 +1,5 @@ /* -SOFTWARE CENTER v2.85 +SOFTWARE CENTER v2.86 */ #define MEMSIZE 4096 * 15 @@ -33,7 +33,14 @@ char window_title[128], bool small_screen = false; -#define LIST_BACKGROUND_COLOR 0xF3F3F3 +struct SW_COLORS + { + dword list_bg; + dword text; + dword graph; + dword dark; + dword light; + } swc; block ipos[128]; @@ -59,8 +66,6 @@ void main() load_dll(libimg, #libimg_init,1); load_dll(libini, #lib_init,1); - Libimg_LoadImage(#skin, "/sys/icons32.png"); - Libimg_FillTransparent(skin.image, skin.w, skin.h, LIST_BACKGROUND_COLOR); kolibrios_mounted = dir_exists("/kolibrios"); if (param) @@ -103,7 +108,7 @@ void main() break; case evReDraw: - system.color.get(); + SetAppColors(); DefineAndDrawWindow(screen.width-window_width/2,screen.height-window_height/2,window_width,window_height,0x74,system.color.work,"",0); GetProcessInfo(#Form, SelfInfo); if (Form.status_window>2) { @@ -118,11 +123,40 @@ void main() draw_top_bar(); } DrawList(); - DrawBar(0, row +1 * list.item_h + list_pos, Form.cwidth, -row - 1 * list.item_h - list_pos + Form.cheight, LIST_BACKGROUND_COLOR); + DrawBar(0, row +1 * list.item_h + list_pos, Form.cwidth, -row - 1 * list.item_h - list_pos + Form.cheight, swc.list_bg); DrawSelection(); } } +void SetAppColors() +{ + dword bg_col, old_list_bg_color; + system.color.get(); + old_list_bg_color = swc.list_bg; + bg_col = system.color.work; + if (GrayScaleImage(#bg_col,1,1)>=65) + { + //light colors + swc.list_bg = 0xF3F3F3; + swc.text = 0x000000; + swc.dark = 0xDCDCDC; + swc.light = 0xFCFCFC; + } else { + //dark colors + swc.list_bg = system.color.work; + swc.text = system.color.work_text; + swc.dark = system.color.work_dark; + swc.light = system.color.work_light; + } + + if (swc.list_bg != old_list_bg_color) + { + Libimg_LoadImage(#skin, "/sys/icons32.png"); + Libimg_FillTransparent(skin.image, skin.w, skin.h, swc.list_bg); + } +} + + void DrawList() { list.count = 0; row = -1; @@ -149,7 +183,7 @@ byte draw_icons_from_section(dword key_value, key_name, sec_name, f_name) col=0; } - if (col==0) DrawBar(0, row * list.item_h + list_pos, Form.cwidth, list.item_h, LIST_BACKGROUND_COLOR); + if (col==0) DrawBar(0, row * list.item_h + list_pos, Form.cwidth, list.item_h, swc.list_bg); DefineButton(col*list.item_w+6, row*list.item_h + list_pos,list.item_w,list.item_h-5,list.count + 100 + BT_HIDE,0); tmp = list.item_w/2; @@ -158,8 +192,8 @@ byte draw_icons_from_section(dword key_value, key_name, sec_name, f_name) img_draw stdcall(skin.image, col*list.item_w+tmp-10, row*list.item_h+5 + list_pos, 32, 32, 0, icon_id*32); if (icon_char_pos) ESBYTE[icon_char_pos] = '\0'; //delete icon from string app_path_collection.add(key_value); - //kfont.WriteIntoWindowCenter(col*list.item_w+7,row*list.item_h+47 + list_pos, list.item_w,0, LIST_BACKGROUND_COLOR, 0xDCDCDC, 12, key_name); - text_w = kfont.WriteIntoWindowCenter(col*list.item_w+5,row*list.item_h+46 + list_pos, list.item_w,0, LIST_BACKGROUND_COLOR, 0x000000, 12, key_name); + //kfont.WriteIntoWindowCenter(col*list.item_w+7,row*list.item_h+47 + list_pos, list.item_w,0, swc.list_bg, swc.dark, 12, key_name); + text_w = kfont.WriteIntoWindowCenter(col*list.item_w+5,row*list.item_h+46 + list_pos, list.item_w,0, swc.list_bg, swc.text, 12, key_name); ipos[list.count].x = list.item_w-text_w/2+calc(col*list.item_w)+5; ipos[list.count].y = row*list.item_h+46 + list_pos + 16; ipos[list.count].w = text_w; @@ -187,10 +221,10 @@ byte process_sections(dword sec_name, f_name) old_row = row; if (!small_screen) { - DrawBar(0, row * list.item_h + list_pos, Form.cwidth , 29, LIST_BACKGROUND_COLOR); - text_len = kfont.WriteIntoWindow(10, row * list.item_h + 10 + list_pos, LIST_BACKGROUND_COLOR, 0, 15, sec_name); - DrawBar(text_len+20, row * list.item_h + list_pos + 20, Form.cwidth-text_len-20, 1, 0xDCDCDC); - DrawBar(text_len+20, row * list.item_h + list_pos + 21, Form.cwidth-text_len-20, 1, 0xFCFCFC); + DrawBar(0, row * list.item_h + list_pos, Form.cwidth , 29, swc.list_bg); + text_len = kfont.WriteIntoWindow(10, row * list.item_h + 10 + list_pos, swc.list_bg, swc.text, 15, sec_name); + DrawBar(text_len+20, row * list.item_h + list_pos + 20, Form.cwidth-text_len-20, 1, swc.dark); + DrawBar(text_len+20, row * list.item_h + list_pos + 21, Form.cwidth-text_len-20, 1, swc.light); list_pos += 29; } ini_enum_keys stdcall (f_name, sec_name, #draw_icons_from_section); @@ -246,7 +280,7 @@ void DrawSelection() int i; dword col; for (i=0; ir51t+=AqEMb)l^+mD<4eoOAE|Ws+URKJ>uM zz4zRE=A7@|bMMR?c;kKySY8PNA-FIx4XN1_UKuD{-wivz*$eyYBQR1Qg(HnJlp7WJ zsCgbTw^~rCFT(E8~DG!}0`v$g;Wtwoq!YC)}5 zgF0RHIy`*%5E_jJ+-=>5$lt z{!+O5*<)oBRw{UXaqFBIug$}~@Vp!e@cpm9)PB5^slJN(-?01^d({4UTu)rryP4`S zdn7;z>oX87MRBQTq`p^{6EF!kuRIohQRlAD;j>8+danyarU-$}00y%nVob;Jb&4m~}8hIA-1Xs_O`B6FSFWPcHLZ&l7tQ=J&DVY^t* zRM{7g61SzuJgmGw3depwM93x5KESc$X@(joXE8?VfBEDn$45Gvvypw}*H3>ic4Bg@ ze5N{Ho|ruS-sJI9XUeDEt&ANnpB$@}Kb)KzKS{N*cTSI=*>U331le9Y@d)o4?A)MH z6E6R-u>sXSN%hU#17J-u#j_W$dO(AjqlZGr3QwvuWJ(J?0Kn(cA{#&7&t zEpcB6%EcQ~$+ve*i!nH_GLJq*`z_~MQ)Ev5NBHPk!;?e?ythjDH`|N9`%Q8DY2;#2EPpFF*-&u#YUZGCRd4k7y;bkq1BXPVu{ zvOb+&wR^Qrx9KzcUG2fxXPTSWdt~$K9BEbU0OF2NIP`0>XzB!Gn(<(-OM-FoJM4%v zlxlfR8}@3rZ|Y zEQ5jrF$`l9i(%LSQZ&rL0P^OC^J{phV&qgc;pae%fWtu`j*wwEqQ_zzH+18O>3Sqg z=dQgTE)K#F*-SZ;aL!A`$AO;waDELAQw)`cy7MX!#H@-3g7Ki-ADB{NgY@K42qPQT zx200LjxdPhtOvJaNTF}jyK@v|GE+k53eU{Z5jTt3=;eq9n1T;3ab6*Z$f_P@pj+Mo z!H{(q2Q_s)l|l>zw%4PNHi?y2Sp`9I1r#cr&ETJU+C-Qva+WRU%#olzOCw7!N0Ii1 zJbncSLddM*cOqK}kS!!Bha)8v5<_y(9!HE9Yz_ihrz(oN&V_-Azm7w8?Q?Yqk5WoP zPsGfD9Yb!dM0VvBZg5O0A;iHiLP{t~Dg2a_uMh?aM}!D8+32@0h$F`bt~`3Ja~DB4 z2Gz3~g&gObD`<5)rJj$YAhft69FfRw4#WsZ5a!4-0e+vL)v(RMsTCfUd;)|U`G`m= zR3S&__h44!gf}xN-B4W7sfFz%hVzyoKWVAXxkhFsvWKJS$tw<#Zh-G=$b;3+;EIR? z*V2eGAHltm;W}}+KwRG?S@B)swPX-?a0(_Lrk@uBK}d^w*Vf8Pw)XeAJFhHfc}yyC zT1ibljAxQh@{x!&ia9!eC;H4tfgo;-j$^tg1+x5L>-e4M7|Q%|6l>L<^}AiB+gguZ qv%m9q`Xmp{``KQbAIQXd-uF>J5D0cbP#2cyNPEV9v=loKi?&Zdihk+(a}M>cI~2$;r&!7 z6sWj&FU^hg)5TGKOgeXbn)>JZ@tCyr(oWj(?GO!@M`)xxO8YAXDpZP8JGX^u-@ile zR?m}pwMNDAGF`ZEfo^yFt`>Rm?r-Bi+%!x3p#L4|chCmA7OkFi&go3@6q`oU8jr0Tx_5F_+msmQPGL# z%E!Zz4>Z@l4~HWm=$Px~I-8!ypT)y6i~hlDB`{+U2>1U8x>t*5PII0azD9Xl*(`}I zX{BCEYZmCiTcZ^GYmAY1v-TIXWlOVMfSiGkT>td3QSpy;JZB@%7M?$OeB#K|L}9u# zSvWOy^3AF76VrtgZxkoS3&$o(g}0|>CXaD$;`Ni0)7y`nIK_QmJ2Z}|jM9d0qFkgy z_wPTTgJPe4J%AMXZmA)X#YLX|8NyTcMd{wrG5_JM|CG4ND=|O(#(1G9od?V0ydsj z^&B+g?JvLo-jDb0j`=_Nd#}t<-t=7GJbYh|S@Yrhdd#Mqxa>91O5+_aoo>}u z^n-&dRGX!6OE#>`F=!Y~K%5>bgIe?8XxLgR znFn16M=cQMs8b+QUk@DxmR;%17^zev2z%J?g7azwBZWywBov6v(aW*m(;Pi*O+XkU z8V)HDylg}j!chwZ9Qp3GB7&3Gab-mT2ZJ!+#qMQNjUcQ|xj?)c(=<{U?g~lBF0nb< zeITiG^t3&>QAv-rBH3_fG#c$v64D%TRgA`>of2`1gQrBXXbxZ`Bnk}2><6HMGh87t zXRVR)unr821`Ri45Ec&yFna488+!nvWupR-)c}Y{m&K8cX-!pSv7avK|f& z#!%7BG1F(CmjMq4EP3I)8Z--}3~uU-E1X%r-d|akZxO`-2pv^& zCrU2`@&rrL=13}q#?TzR#|1<04+KFj<2M2U!|%XA;QPg8!`|mcKaNrkLYK$Ffr@^o zRwFy&3LD&74v8zd2sxlQr0^-JuMhzVMU*HsUFfth6bGNUjDo~EcL5?k7_QaGWhCAl zP8(Y|^gJ9nrNxf0MI$>ofZ=n*6@o}@3I-Ucb4X}~1~i`nkwP}2f(k0cRr7n$R59U> z3=TJl!#g9lg(YR*GHhp1t22(4rbc#g4g;F8w4>rerZl70nM;%|bVzu0(ez)szTW#1?>zjYKuiC9; iga7(}rlp~Vie`43{186Y|K($i*WfRT&3*BL