From ba8c1152c1c685df9fb8c2b9f3f46e905dbed5cb Mon Sep 17 00:00:00 2001 From: nakst <> Date: Thu, 9 Sep 2021 20:10:31 +0100 Subject: [PATCH] better colors for inactivated windows --- apps/file_manager/ui.cpp | 1 + desktop/theme.cpp | 71 ++------------------------------------ res/Theme Source.dat | Bin 52779 -> 52202 bytes res/Themes/Theme.dat | Bin 54064 -> 53568 bytes util/designer/designer.c | 1 - util/designer/designer.rf | 2 +- 6 files changed, 5 insertions(+), 70 deletions(-) diff --git a/apps/file_manager/ui.cpp b/apps/file_manager/ui.cpp index 8447ee0..c506468 100644 --- a/apps/file_manager/ui.cpp +++ b/apps/file_manager/ui.cpp @@ -1043,6 +1043,7 @@ void InstanceCreateUI(Instance *instance) { EsSpacerCreate(toolbar, ES_FLAGS_DEFAULT); instance->breadcrumbBar = EsTextboxCreate(toolbar, ES_CELL_H_FILL | ES_TEXTBOX_EDIT_BASED | ES_TEXTBOX_REJECT_EDIT_IF_LOST_FOCUS, {}); instance->breadcrumbBar->messageUser = BreadcrumbBarMessage; + instance->breadcrumbBar->accessKey = 'A'; EsTextboxUseBreadcrumbOverlay(instance->breadcrumbBar); ADD_BUTTON_TO_TOOLBAR(commandNewFolder, interfaceString_FileManagerNewFolderToolbarItem, ES_ICON_FOLDER_NEW_SYMBOLIC, 'N', instance->newFolderButton); diff --git a/desktop/theme.cpp b/desktop/theme.cpp index 09908df..a69f5a3 100644 --- a/desktop/theme.cpp +++ b/desktop/theme.cpp @@ -50,7 +50,6 @@ #define THEME_LAYER_BOX_AUTO_CORNERS (1 << 1) #define THEME_LAYER_BOX_AUTO_BORDERS (1 << 2) #define THEME_LAYER_BOX_SHADOW_HIDING (1 << 3) -#define THEME_LAYER_BOX_SHADOW_CUT (1 << 4) #define THEME_LAYER_PATH_FILL_EVEN_ODD (1 << 0) #define THEME_LAYER_PATH_CLOSED (1 << 1) @@ -575,59 +574,6 @@ void ThemeFillCorner(EsPainter *painter, EsRectangle bounds, int cx, int cy, } } -ES_FUNCTION_OPTIMISE_O2 -void ThemeFillBlurCutCorner(EsPainter *painter, EsRectangle bounds, int cx, int cy, int border, int corner, GradientCache *gradient, ThemePaintData mainPaint) { - uint32_t *bits = (uint32_t *) painter->target->bits; - int width = painter->target->width; - cx += bounds.l, cy += bounds.t; - bounds = ThemeRectangleIntersection(bounds, painter->clip); - - if (!THEME_RECT_VALID(bounds)) { - return; - } - - int dp = (GRADIENT_CACHE_COUNT << GRADIENT_COORD_BASE) / border; - float mainRadius = corner > border ? corner - border : 0; - - for (int y = bounds.t; y < bounds.b; y++) { - int x = bounds.l; - uint32_t *b = bits + x + y * width; - - do { - int dx = x - cx, dy = y - cy; - float radius = EsCRTsqrtf(dx * dx + dy * dy) - mainRadius; - uint32_t color1 = 0, color2 = 0, color; - - if (radius < 1) { - if (mainPaint.type == THEME_PAINT_SOLID) { - color1 = mainPaint.solid->color; - } - } - - if (radius >= 0) { - color2 = gradient->colors[ClampInteger(0, GRADIENT_CACHE_COUNT - 1, - (int) (radius * dp) >> GRADIENT_COORD_BASE)]; - } - - if (radius < 0) { - color = color1; - } else if (radius < 1) { - int p = (uint32_t) (radius * 0x100); - int c10 = (color1 >> 24) & 0xFF, c11 = (color1 >> 16) & 0xFF, c12 = (color1 >> 8) & 0xFF, c13 = (color1 >> 0) & 0xFF; - int c20 = (color2 >> 24) & 0xFF, c21 = (color2 >> 16) & 0xFF, c22 = (color2 >> 8) & 0xFF, c23 = (color2 >> 0) & 0xFF; - int c30 = (c10 << 8) + p * (c20 - c10), c31 = (c11 << 8) + p * (c21 - c11), c32 = (c12 << 8) + p * (c22 - c12), c33 = (c13 << 8) + p * (c23 - c13); - color = ((c30 & 0xFF00) << 16) | ((c31 & 0xFF00) << 8) | ((c32 & 0xFF00) << 0) | ((c33 & 0xFF00) >> 8); - } else { - color = color2; - } - - BlendPixel(b, color, painter->target->fullAlpha); - - x++, b++; - } while (x < bounds.r); - } -} - ES_FUNCTION_OPTIMISE_O2 void ThemeFillBlurCorner(EsPainter *painter, EsRectangle bounds, int cx, int cy, int border, int corner, GradientCache *gradient) { uint32_t *bits = (uint32_t *) painter->target->bits; @@ -848,10 +794,8 @@ void ThemeDrawBox(EsPainter *painter, EsRectangle rect, EsBuffer *data, float sc borderGradient.colors[i] = color | (uint32_t) (alpha * gaussLookup[i]) << 24; } - if (~box->flags & THEME_LAYER_BOX_SHADOW_CUT) { - mainPaint.type = THEME_PAINT_SOLID; - mainPaint.solid = borderPaint.solid; - } + mainPaint.type = THEME_PAINT_SOLID; + mainPaint.solid = borderPaint.solid; borderPaint.type = THEME_PAINT_LINEAR_GRADIENT; borderPaint.linearGradient = NULL; @@ -992,16 +936,7 @@ void ThemeDrawBox(EsPainter *painter, EsRectangle rect, EsBuffer *data, float sc ThemeFillRectangle(painter, THEME_RECT_4(rect.r - corners.br, rect.r, rect.b - cornerBorders.br, rect.b - corners.br), borderPaint, &borderGradient); } - if (box->flags & THEME_LAYER_BOX_SHADOW_CUT) { - ThemeFillBlurCutCorner(painter, THEME_RECT_4(rect.l, rect.l + corners.tl, rect.t, rect.t + corners.tl), - corners.tl, corners.tl, borders.l, corners.tl, &borderGradient, mainPaint); - ThemeFillBlurCutCorner(painter, THEME_RECT_4(rect.r - corners.tr, rect.r, rect.t, rect.t + corners.tr), - -1, corners.tr, borders.l, corners.tr, &borderGradient, mainPaint); - ThemeFillBlurCutCorner(painter, THEME_RECT_4(rect.l, rect.l + corners.bl, rect.b - corners.bl, rect.b), - corners.bl, -1, borders.l, corners.bl, &borderGradient, mainPaint); - ThemeFillBlurCutCorner(painter, THEME_RECT_4(rect.r - corners.br, rect.r, rect.b - corners.br, rect.b), - -1, -1, borders.l, corners.br, &borderGradient, mainPaint); - } else if (isBlurred) { + if (isBlurred) { ThemeFillBlurCorner(painter, THEME_RECT_4(rect.l, rect.l + corners.tl, rect.t, rect.t + corners.tl), corners.tl, corners.tl, borders.l, corners.tl, &borderGradient); ThemeFillBlurCorner(painter, THEME_RECT_4(rect.r - corners.tr, rect.r, rect.t, rect.t + corners.tr), diff --git a/res/Theme Source.dat b/res/Theme Source.dat index b11971f7c04252c363b9169688a45b1bb4daaf75..012db0b33040e6d7c1e3f8ffcad9725c8159d979 100644 GIT binary patch delta 489 zcmZ2IhxyfXW>!%K1_tAetg9GVoSQ;gH*aDz<^r=Ozu=aK2yyYKGBOHoHsD>&$T)qn zp@-b$^L?zFfAIh07HVW{WK3yf`Pb1fwWSDX(5BYOd~NcZIb{0T7~3Y#P}(_px0&4J z1v)&F4=iDsT(2xSS#t$HNQ?=nGEqx(^AhD=M#k33AC}8b_E%js`KLcG8zaP=L@jMb z)y*<$A6OY%CiCjdhnm33)zsL~qKZ(%viZDD2Git;`ihf%^j#-EP-SHWsj!~>&PW^N zP)3{0FZH=uL?BLO13DEfjWED=vxLcV8^)%|2MXlDmYnP1hB{*NwSwDBjK-Tc70WVh zmMh!FIJv8G(&ny86~@U9)&83&)JO?1HcwvNV>|g&4?j%L{hp89n{#GdOWbBT$`$YApN z{o+8`cmmJk&WL5P3$J92t_Lw-QNqlYCU#>RB8I$XeiB9G@ h&c!$r#NzSIOfjmGH2-JZ#yE9y!*S8gI>-OB0RT}Jz03dr delta 791 zcmZuuZ%9*76o2Qvx96X2t|`tw&EMx# zsSLw7qpCUJCTe6tz?I0;U=ouwX^9mffZ%CaNoX}z;L>Ek7K;(<<`alV8v&TWVXYlM zG#YSy(GVwav5+YJ#Epd%+}G-XLw%ATCh=l&I#w0&_{q!@(Cw=6swIsSWZV@Xge#Vp z88#{*J{A#WS(e0pJ4FITK^hm}Mpg<|ShcvAt-Hf$$teYJAsyH_UFAr?4?R{|CBl^|sIgDSu6A9oV&gm_Ku> T;|Gqe=fF5tzDXrt*Y|~AgmD(P diff --git a/res/Themes/Theme.dat b/res/Themes/Theme.dat index 40d687dd22927f5d1cacf87b259c00a3cbf97b1b..bdd578a9030e1e63e78064d5f465200d7d56bb27 100644 GIT binary patch delta 4772 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 H?aKcH8Z-a6 delta 4948 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 I>Pqqd0o7PX!~g&Q diff --git a/util/designer/designer.c b/util/designer/designer.c index ac8b732..8c2d698 100644 --- a/util/designer/designer.c +++ b/util/designer/designer.c @@ -791,7 +791,6 @@ void LayerBoxOp(RfState *state, RfItem *item, void *pointer) { if (box->autoCorners) themeBox.flags |= THEME_LAYER_BOX_AUTO_CORNERS; if (box->autoBorders) themeBox.flags |= THEME_LAYER_BOX_AUTO_BORDERS; if (box->shadowHiding) themeBox.flags |= THEME_LAYER_BOX_SHADOW_HIDING; - if (box->shadowCut) themeBox.flags |= THEME_LAYER_BOX_SHADOW_CUT; themeBox.mainPaintType = box->mainPaint.tag == Paint_solid + 1 ? THEME_PAINT_SOLID : box->mainPaint.tag == Paint_linearGradient + 1 ? THEME_PAINT_LINEAR_GRADIENT : box->mainPaint.tag == Paint_overwrite + 1 ? THEME_PAINT_OVERWRITE : 0; diff --git a/util/designer/designer.rf b/util/designer/designer.rf index 70302fc..c517ca1 100644 --- a/util/designer/designer.rf +++ b/util/designer/designer.rf @@ -104,7 +104,7 @@ struct LayerBox LayerBox_Type LayerBoxOp { StyleBool_Type bool autoCorners #StringOption { "Auto corners" }; StyleBool_Type bool autoBorders #StringOption { "Auto borders" }; StyleBool_Type bool shadowHiding #StringOption { "Shadow hiding" }; - StyleBool_Type bool shadowCut #StringOption { "Shadow cut" } from 13; + StyleBool_Type bool shadowCut #StringOption { "Shadow cut (obsolete)" } from 13; }; enum ClipMode_Type StyleEnumOp {