From 3ce62566b94c5e9bec2e60609be84c3c0b4840ef Mon Sep 17 00:00:00 2001 From: nakst <> Date: Sun, 28 Nov 2021 20:51:23 +0000 Subject: [PATCH] bugfixes; introduce TEXTBOX_BORDERED_SINGLE_MEDIUM --- apps/image_editor.cpp | 4 ++-- apps/installer.cpp | 11 +---------- desktop/api.cpp | 3 +-- desktop/gui.cpp | 10 +++++----- desktop/list_view.cpp | 2 +- desktop/settings.cpp | 17 ++++------------- desktop/styles.header | 1 + res/Theme Source.dat | Bin 529648 -> 530464 bytes res/Theme.dat | Bin 30756 -> 31160 bytes 9 files changed, 15 insertions(+), 33 deletions(-) diff --git a/apps/image_editor.cpp b/apps/image_editor.cpp index ac7c4f4..4dbc6a0 100644 --- a/apps/image_editor.cpp +++ b/apps/image_editor.cpp @@ -83,7 +83,7 @@ const EsStyle styleBitmapSizeTextbox = { .metrics = { .mask = ES_THEME_METRICS_PREFERRED_WIDTH, - .preferredWidth = 70, + .preferredWidth = 80, }, }; @@ -677,7 +677,7 @@ void MenuImage(Instance *instance, EsElement *element, EsCommand *) { bytes = EsStringFormat(buffer, sizeof(buffer), "%d", instance->bitmapWidth); EsTextDisplayCreate(table, ES_CELL_H_RIGHT, ES_STYLE_TEXT_LABEL, INTERFACE_STRING(ImageEditorPropertyWidth)); - textbox = EsTextboxCreate(table, ES_TEXTBOX_EDIT_BASED, &styleBitmapSizeTextbox); + textbox = EsTextboxCreate(table, ES_TEXTBOX_EDIT_BASED, ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM); EsTextboxInsert(textbox, buffer, bytes, false); textbox->userData.i = 0; textbox->messageUser = BitmapSizeTextboxMessage; diff --git a/apps/installer.cpp b/apps/installer.cpp index 17c0e84..abdbee4 100644 --- a/apps/installer.cpp +++ b/apps/installer.cpp @@ -53,15 +53,6 @@ const EsStyle styleButtonsRow = { }, }; -const EsStyle styleTextboxMedium = { - .inherit = ES_STYLE_TEXTBOX_BORDERED_SINGLE, - - .metrics = { - .mask = ES_THEME_METRICS_PREFERRED_WIDTH, - .preferredWidth = 80, - }, -}; - InstallerMetadata *metadata; Array connectedDrives; EsListView *drivesList; @@ -1139,7 +1130,7 @@ void _start() { // TODO Make a date/time entry element or textbox overlay. EsTextDisplayCreate(table, ES_CELL_H_RIGHT, ES_STYLE_TEXT_LABEL, INTERFACE_STRING(InstallerTime)); - timeTextbox = EsTextboxCreate(table, ES_CELL_H_LEFT, &styleTextboxMedium); + timeTextbox = EsTextboxCreate(table, ES_CELL_H_LEFT, ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM); EsTextboxInsert(timeTextbox, timeBuffer, timeBytes); // TODO A date field. diff --git a/desktop/api.cpp b/desktop/api.cpp index ac476c2..b2cbed4 100644 --- a/desktop/api.cpp +++ b/desktop/api.cpp @@ -1257,8 +1257,7 @@ EsMessage *EsMessageReceive() { for (uintptr_t i = 0; i < gui.allWindows.Length(); i++) { UIScaleChanged(gui.allWindows[i], &message.message); - gui.allWindows[i]->state |= UI_STATE_RELAYOUT; - UIWindowNeedsUpdate(gui.allWindows[i]); + EsElementRelayout(gui.allWindows[i]); } return &message.message; diff --git a/desktop/gui.cpp b/desktop/gui.cpp index e42b257..fb13a0c 100644 --- a/desktop/gui.cpp +++ b/desktop/gui.cpp @@ -6523,7 +6523,7 @@ void UIScaleChanged(EsElement *element, EsMessage *message) { EsMessageMutexCheck(); element->RefreshStyle(nullptr, false, true); - element->state |= UI_STATE_RELAYOUT | UI_STATE_RELAYOUT_CHILD; + element->offsetX = element->offsetY = element->width = element->height = 0; EsMessageSend(element, message); for (uintptr_t i = 0; i < element->children.Length(); i++) { @@ -6537,7 +6537,7 @@ void _EsUISetFont(EsFontFamily id) { for (uintptr_t i = 0; i < gui.allWindows.Length(); i++) { UIScaleChanged(gui.allWindows[i], &m); - UIWindowNeedsUpdate(gui.allWindows[i]); + EsElementRelayout(gui.allWindows[i]); } } @@ -7213,7 +7213,7 @@ void UIWindowPaintNow(EsWindow *window, ProcessMessageTiming *timing, bool after void UIWindowLayoutNow(EsWindow *window, ProcessMessageTiming *timing) { if (timing) timing->startLayout = EsTimeStampMs(); - window->InternalMove(window->width, window->height, 0, 0); + window->InternalMove(window->windowWidth, window->windowHeight, 0, 0); while (window->updateActions.Length()) { // TODO Preventing/detecting infinite cycles? @@ -7466,8 +7466,8 @@ void UIProcessWindowManagerMessage(EsWindow *window, EsMessage *message, Process UIRefreshPrimaryClipboard(window); // Embedded window activated. } - window->width = window->windowWidth = message->windowResized.content.r; - window->height = window->windowHeight = message->windowResized.content.b; + window->windowWidth = message->windowResized.content.r; + window->windowHeight = message->windowResized.content.b; if (window->windowStyle == ES_WINDOW_CONTAINER) { EsRectangle opaqueBounds = ES_RECT_4(CONTAINER_OPAQUE_C, window->windowWidth - CONTAINER_OPAQUE_C, diff --git a/desktop/list_view.cpp b/desktop/list_view.cpp index d23cad4..41b0cbf 100644 --- a/desktop/list_view.cpp +++ b/desktop/list_view.cpp @@ -1949,7 +1949,7 @@ struct EsListView : EsElement { selectedCellStyle = GetStyle(MakeStyleKey(ES_STYLE_LIST_SELECTED_CHOICE_CELL, 0), false); EsListViewChangeStyles(this, nullptr, nullptr, nullptr, nullptr, ES_FLAGS_DEFAULT, ES_FLAGS_DEFAULT); - } else if (message->type == ES_MSG_LIST_VIEW_GET_CONTENT) { + } else if (message->type == ES_MSG_LIST_VIEW_GET_CONTENT && activeColumns.Length()) { uintptr_t index = message->getContent.index; ListViewFixedItemData data = {}; diff --git a/desktop/settings.cpp b/desktop/settings.cpp index 7a036ce..6b257d8 100644 --- a/desktop/settings.cpp +++ b/desktop/settings.cpp @@ -91,15 +91,6 @@ const EsStyle styleSettingsGroupContainer3 = { }, }; -const EsStyle styleSettingsNumberTextbox = { - .inherit = ES_STYLE_TEXTBOX_BORDERED_SINGLE, - - .metrics = { - .mask = ES_THEME_METRICS_PREFERRED_WIDTH, - .preferredWidth = 80, - }, -}; - const EsStyle styleSettingsCheckboxGroup = { .metrics = { .mask = ES_THEME_METRICS_GAP_MAJOR | ES_THEME_METRICS_GAP_MINOR, @@ -435,7 +426,7 @@ void SettingsAddNumberBox(EsElement *table, const char *string, ptrdiff_t string control->discreteStep = discreteStep; EsTextDisplayCreate(table, ES_CELL_H_RIGHT | ES_CELL_H_PUSH, 0, string, stringBytes); - EsTextbox *textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED | ES_ELEMENT_FREE_USER_DATA, &styleSettingsNumberTextbox); + EsTextbox *textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED | ES_ELEMENT_FREE_USER_DATA, ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM); EsTextboxUseNumberOverlay(textbox, false); textbox->userData = control; textbox->accessKey = accessKey; @@ -674,19 +665,19 @@ void SettingsPageKeyboard(EsElement *element, SettingsPage *page) { EsPanelSetBands(table, 2); EsTextDisplayCreate(table, ES_CELL_H_RIGHT | ES_CELL_H_PUSH, 0, INTERFACE_STRING(DesktopSettingsKeyboardKeyRepeatDelay)); // TODO. - textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED, &styleSettingsNumberTextbox); + textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED, ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM); textbox->accessKey = 'D'; EsTextboxUseNumberOverlay(textbox, false); EsTextboxInsert(textbox, "400 ms"); EsTextDisplayCreate(table, ES_CELL_H_RIGHT | ES_CELL_H_PUSH, 0, INTERFACE_STRING(DesktopSettingsKeyboardKeyRepeatRate)); // TODO. - textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED, &styleSettingsNumberTextbox); + textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED, ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM); textbox->accessKey = 'R'; EsTextboxUseNumberOverlay(textbox, false); EsTextboxInsert(textbox, "40 ms"); EsTextDisplayCreate(table, ES_CELL_H_RIGHT | ES_CELL_H_PUSH, 0, INTERFACE_STRING(DesktopSettingsKeyboardCaretBlinkRate)); // TODO. - textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED, &styleSettingsNumberTextbox); + textbox = EsTextboxCreate(table, ES_CELL_H_LEFT | ES_CELL_H_PUSH | ES_TEXTBOX_EDIT_BASED, ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM); textbox->accessKey = 'B'; EsTextboxUseNumberOverlay(textbox, false); EsTextboxInsert(textbox, "500 ms"); diff --git a/desktop/styles.header b/desktop/styles.header index 615a2f7..3b026f2 100644 --- a/desktop/styles.header +++ b/desktop/styles.header @@ -120,3 +120,4 @@ define ES_STYLE_TOOLBAR_SPACER (ES_STYLE_CAST(5)) define ES_STYLE_TOOLBAR_BUTTON_GROUP_SEPARATOR (ES_STYLE_CAST(7)) define ES_STYLE_TOOLBAR_SPACER_SMALL (ES_STYLE_CAST(3)) define ES_STYLE_LIST_CHOICE_ITEM_2X (ES_STYLE_CAST(9)) +define ES_STYLE_TEXTBOX_BORDERED_SINGLE_MEDIUM (ES_STYLE_CAST(11)) diff --git a/res/Theme Source.dat b/res/Theme Source.dat index 6651c749bc7e69c05f65bab393d9fa6b952aad79..830855e407d0069bf74e01bd1d3b8d2919eb8366 100644 GIT binary patch delta 221 zcmeycQenXc1ujMg28JAF28LwT$#NQIjSgEK7*$f3p6E}ud#<*yor84t6TPddZd{x^*gh?#(x8Hibcm=%cGw*O6IcUsNJu-!q3V*}IV4r_fT z#-!VOEamE-!(SHUb<997(JY%>WxfM#BIA delta 105 zcmZ3mLE*zn1ujMg28JwV28IOI$#NQIjSgEK7*$fHpAqHYnC$XgVS7&sBM&2p8!`Pu xDq{~=V!DAiN8n^xC--)lbVeX%0%B$$W&vVWAZFVxlg_TZnvrq4gAm6CCIF6`9^L=| diff --git a/res/Theme.dat b/res/Theme.dat index 6301413aea5979aebdbcb6a44ce85b824428787c..b8d4b2f46a7a30487b59a643bcfa7cc2b01b4565 100644 GIT binary patch delta 5906 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 delta 5712 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 M3g&>f3ju-u1F1g{tN;K2