diff --git a/desktop/styles.header b/desktop/styles.header index 076edfc..0622847 100644 --- a/desktop/styles.header +++ b/desktop/styles.header @@ -13,7 +13,7 @@ private define ES_STYLE_CHECKBOX_RADIOBOX (ES_STYLE_CAST(1567)) define ES_STYLE_CLEAR_BACKGROUND (ES_STYLE_CAST(1597)) private define ES_STYLE_COLOR_CHOSEN_POINT (ES_STYLE_CAST(1241)) private define ES_STYLE_COLOR_CIRCLE (ES_STYLE_CAST(1243)) -private define ES_STYLE_COLOR_HEX_TEXTBOX (ES_STYLE_CAST(1245)) +private define ES_STYLE_TASK_BAR_BUTTON (ES_STYLE_CAST(1381)) private define ES_STYLE_COLOR_PICKER_MAIN_PANEL (ES_STYLE_CAST(1247)) private define ES_STYLE_COLOR_SLIDER (ES_STYLE_CAST(1249)) private define ES_STYLE_CONTAINER_WINDOW (ES_STYLE_CAST(1251)) @@ -35,8 +35,21 @@ private define ES_STYLE_LIST_COLUMN_HEADER_ITEM_HAS_MENU (ES_STYLE_CAST(1273)) private define ES_STYLE_LIST_COLUMN_HEADER_SPLITTER (ES_STYLE_CAST(1275)) private define ES_STYLE_LIST_GROUP_HEADER_CELL (ES_STYLE_CAST(1277)) define ES_STYLE_LIST_ITEM (ES_STYLE_CAST(1279)) +define ES_STYLE_TEXT_RADIO_GROUP_LABEL (ES_STYLE_CAST(1651)) +define ES_STYLE_TEXT_PARAGRAPH_SECONDARY (ES_STYLE_CAST(1635)) +define ES_STYLE_TEXT_PARAGRAPH (ES_STYLE_CAST(1397)) +define ES_STYLE_TEXT_LABEL_SECONDARY (ES_STYLE_CAST(1395)) +define ES_STYLE_TEXT_LABEL_INVERTED (ES_STYLE_CAST(1393)) define ES_STYLE_LIST_ITEM_GROUP_FOOTER (ES_STYLE_CAST(1281)) +define ES_STYLE_TEXT_LABEL (ES_STYLE_CAST(1391)) +private define ES_STYLE_TEXT_HEADING3 (ES_STYLE_CAST(1423)) +define ES_STYLE_TEXT_HEADING2 (ES_STYLE_CAST(1389)) +define ES_STYLE_TEXT_HEADING1 (ES_STYLE_CAST(1581)) +define ES_STYLE_TEXT_HEADING0 (ES_STYLE_CAST(1387)) define ES_STYLE_LIST_ITEM_GROUP_HEADER (ES_STYLE_CAST(1283)) +private define ES_STYLE_TASK_BAR_NEW_WINDOW (ES_STYLE_CAST(1383)) +define ES_STYLE_TEXT_TOOLBAR (ES_STYLE_CAST(1553)) +private define ES_STYLE_TASK_BAR_EXTRA (ES_STYLE_CAST(1507)) define ES_STYLE_LIST_ITEM_TILE (ES_STYLE_CAST(1285)) private define ES_STYLE_LIST_PRIMARY_CELL (ES_STYLE_CAST(1287)) private define ES_STYLE_LIST_SECONDARY_CELL (ES_STYLE_CAST(1289)) @@ -70,20 +83,31 @@ define ES_STYLE_PANEL_STATUS_BAR (ES_STYLE_CAST(1489)) define ES_STYLE_PANEL_TOOLBAR (ES_STYLE_CAST(1337)) define ES_STYLE_PANEL_TOOLBAR_ROOT (ES_STYLE_CAST(1339)) define ES_STYLE_PANEL_WINDOW_BACKGROUND (ES_STYLE_CAST(1341)) +define ES_STYLE_TEXTBOX_BORDERED_MULTILINE (ES_STYLE_CAST(1399)) define ES_STYLE_PANEL_WINDOW_DIVIDER (ES_STYLE_CAST(1343)) define ES_STYLE_PANEL_WINDOW_WITH_STATUS_BAR_CONTENT (ES_STYLE_CAST(1483)) define ES_STYLE_PUSH_BUTTON_DANGEROUS (ES_STYLE_CAST(1345)) +private define ES_STYLE_TEXTBOX_INLINE (ES_STYLE_CAST(1477)) private define ES_STYLE_PUSH_BUTTON_NORMAL (ES_STYLE_CAST(1347)) +define ES_STYLE_TEXTBOX_BORDERED_SINGLE_COMPACT (ES_STYLE_CAST(1403)) +define ES_STYLE_TEXTBOX_NO_BORDER (ES_STYLE_CAST(1405)) +define ES_STYLE_TEXTBOX_BORDERED_SINGLE (ES_STYLE_CAST(1401)) +define ES_STYLE_TEXTBOX_TRANSPARENT (ES_STYLE_CAST(1445)) private define ES_STYLE_PUSH_BUTTON_NORMAL_COLOR_WELL (ES_STYLE_CAST(1349)) private define ES_STYLE_PUSH_BUTTON_SCROLLBAR_DOWN (ES_STYLE_CAST(1351)) +private define ES_STYLE_WINDOW_TAB_BAND_NEW (ES_STYLE_CAST(1361)) private define ES_STYLE_PUSH_BUTTON_SCROLLBAR_LEFT (ES_STYLE_CAST(1353)) private define ES_STYLE_PUSH_BUTTON_SCROLLBAR_RIGHT (ES_STYLE_CAST(1355)) +private define ES_STYLE_WINDOW_TAB_BAND (ES_STYLE_CAST(1411)) private define ES_STYLE_PUSH_BUTTON_SCROLLBAR_UP (ES_STYLE_CAST(1357)) +private define ES_STYLE_TEXTBOX_MARGIN (ES_STYLE_CAST(1415)) define ES_STYLE_PUSH_BUTTON_STATUS_BAR (ES_STYLE_CAST(1495)) define ES_STYLE_PUSH_BUTTON_TOOLBAR (ES_STYLE_CAST(1359)) +private define ES_STYLE_WINDOW_TAB_ACTIVE (ES_STYLE_CAST(1407)) define ES_STYLE_PUSH_BUTTON_TOOLBAR_BIG (ES_STYLE_CAST(1457)) define ES_STYLE_PUSH_BUTTON_TOOLBAR_MEDIUM (ES_STYLE_CAST(1461)) private define ES_STYLE_SCROLLBAR_BAR_HORIZONTAL (ES_STYLE_CAST(1363)) +private define ES_STYLE_WINDOW_TAB_INACTIVE (ES_STYLE_CAST(1409)) private define ES_STYLE_SCROLLBAR_BAR_VERTICAL (ES_STYLE_CAST(1365)) private define ES_STYLE_SCROLLBAR_THUMB_HORIZONTAL (ES_STYLE_CAST(1367)) private define ES_STYLE_SCROLLBAR_THUMB_VERTICAL (ES_STYLE_CAST(1369)) @@ -92,31 +116,7 @@ define ES_STYLE_SEPARATOR_HORIZONTAL (ES_STYLE_CAST(1373)) private define ES_STYLE_SLIDER_POINT (ES_STYLE_CAST(1607)) private define ES_STYLE_SLIDER_TRACK (ES_STYLE_CAST(1601)) private define ES_STYLE_SPLIT_BAR_HORIZONTAL (ES_STYLE_CAST(1375)) +private define ES_STYLE_WINDOW_TAB_CLOSE_BUTTON (ES_STYLE_CAST(1469)) private define ES_STYLE_SPLIT_BAR_VERTICAL (ES_STYLE_CAST(1377)) private define ES_STYLE_TASK_BAR_BAR (ES_STYLE_CAST(1379)) -private define ES_STYLE_TASK_BAR_BUTTON (ES_STYLE_CAST(1381)) -private define ES_STYLE_TASK_BAR_EXTRA (ES_STYLE_CAST(1507)) -private define ES_STYLE_TASK_BAR_NEW_WINDOW (ES_STYLE_CAST(1383)) -define ES_STYLE_TEXT_HEADING0 (ES_STYLE_CAST(1387)) -define ES_STYLE_TEXT_HEADING1 (ES_STYLE_CAST(1581)) -define ES_STYLE_TEXT_HEADING2 (ES_STYLE_CAST(1389)) -private define ES_STYLE_TEXT_HEADING3 (ES_STYLE_CAST(1423)) -define ES_STYLE_TEXT_LABEL (ES_STYLE_CAST(1391)) -define ES_STYLE_TEXT_LABEL_INVERTED (ES_STYLE_CAST(1393)) -define ES_STYLE_TEXT_LABEL_SECONDARY (ES_STYLE_CAST(1395)) -define ES_STYLE_TEXT_PARAGRAPH (ES_STYLE_CAST(1397)) -define ES_STYLE_TEXT_PARAGRAPH_SECONDARY (ES_STYLE_CAST(1635)) -define ES_STYLE_TEXT_RADIO_GROUP_LABEL (ES_STYLE_CAST(1651)) -define ES_STYLE_TEXT_TOOLBAR (ES_STYLE_CAST(1553)) -define ES_STYLE_TEXTBOX_BORDERED_MULTILINE (ES_STYLE_CAST(1399)) -define ES_STYLE_TEXTBOX_BORDERED_SINGLE (ES_STYLE_CAST(1401)) -define ES_STYLE_TEXTBOX_BORDERED_SINGLE_COMPACT (ES_STYLE_CAST(1403)) -private define ES_STYLE_TEXTBOX_INLINE (ES_STYLE_CAST(1477)) -private define ES_STYLE_TEXTBOX_MARGIN (ES_STYLE_CAST(1415)) -define ES_STYLE_TEXTBOX_NO_BORDER (ES_STYLE_CAST(1405)) -define ES_STYLE_TEXTBOX_TRANSPARENT (ES_STYLE_CAST(1445)) -private define ES_STYLE_WINDOW_TAB_ACTIVE (ES_STYLE_CAST(1407)) -private define ES_STYLE_WINDOW_TAB_CLOSE_BUTTON (ES_STYLE_CAST(1469)) -private define ES_STYLE_WINDOW_TAB_INACTIVE (ES_STYLE_CAST(1409)) -private define ES_STYLE_WINDOW_TAB_BAND (ES_STYLE_CAST(1411)) -private define ES_STYLE_WINDOW_TAB_BAND_NEW (ES_STYLE_CAST(1361)) +private define ES_STYLE_COLOR_HEX_TEXTBOX (ES_STYLE_CAST(1245)) diff --git a/res/Theme Source.dat b/res/Theme Source.dat index 5bc06f8..3f5cbb2 100644 Binary files a/res/Theme Source.dat and b/res/Theme Source.dat differ diff --git a/res/Theme.dat b/res/Theme.dat index 7415d53..3b54d05 100644 Binary files a/res/Theme.dat and b/res/Theme.dat differ diff --git a/util/build.c b/util/build.c index 4d3cef7..4a382e3 100644 --- a/util/build.c +++ b/util/build.c @@ -337,7 +337,7 @@ void BuildUtilities() { BUILD_UTILITY("config_editor", "-lX11 -Wno-unused-parameter", ""); if (CheckDependencies("Utilities.Designer")) { - if (!CallSystem("g++ -MMD -D UI_LINUX util/designer2.cpp -o bin/designer2 -g -lX11 -Wno-unused-parameter " WARNING_FLAGS)) { + if (!CallSystem("g++ -MMD -D UI_LINUX -O3 util/designer2.cpp -o bin/designer2 -g -lX11 -Wno-unused-parameter " WARNING_FLAGS)) { ParseDependencies("bin/designer2.d", "Utilities.Designer", false); } } diff --git a/util/designer2.cpp b/util/designer2.cpp index 8c1dc04..eb5b068 100644 --- a/util/designer2.cpp +++ b/util/designer2.cpp @@ -20,6 +20,8 @@ // Prototyping display: previewing state transitions. // TODO Additional features: +// Cleaning up unused objects. +// Show error if property linked to object of incorrect type. // In a conditional layer, properties from conditional linked objects (such as a gradient paint) should show if their conditions match. // Scrollbars on the canvas? // Icons for different object types (especially color overwrite objects). @@ -518,7 +520,7 @@ void DocumentSave(void *) { EsBuffer buffer = { .canGrow = 1 }; #define fwrite(a, b, c, d) EsBufferWrite(&buffer, (a), (b) * (c)) #else - FILE *f = fopen("bin/designer2.dat", "wb"); + FILE *f = fopen("res/Theme Source.dat", "wb"); #endif uint32_t version = 1; @@ -551,7 +553,7 @@ void DocumentLoad() { buffer.out = (uint8_t *) EsFileStoreReadAll(fileStore, &buffer.bytes); #define fread(a, b, c, d) EsBufferReadInto(&buffer, (a), (b) * (c)) #else - FILE *f = fopen("bin/designer2.dat", "rb"); + FILE *f = fopen("res/Theme Source.dat", "rb"); if (!f) return; #endif @@ -3101,6 +3103,8 @@ void Export() { // Write out all layers. + Array styleMetricsOffsets = {}; + for (uintptr_t i = 0; i < objects.Length(); i++) { Object *object = &objects[i]; @@ -3113,10 +3117,7 @@ void Export() { Object *appearance = PropertyFindOrInheritReadObject(object, "appearance"); if (metrics && textStyle) { - ExportOffset exportOffset = {}; - exportOffset.objectID = textStyle->id; - exportOffset.offset = ftell(output); - exportOffsets.Add(exportOffset); + styleMetricsOffsets.Add(ftell(output)); uint8_t overrideDataBuffer[4096]; EsBuffer overrideData = { .out = overrideDataBuffer, .bytes = sizeof(overrideDataBuffer) }; @@ -3250,6 +3251,8 @@ void Export() { } // Write out layer lists for styles. + + uintptr_t styleIndex = 0; for (uintptr_t i = 0; i < objects.Length(); i++) { Object *object = &objects[i]; @@ -3258,18 +3261,13 @@ void Export() { continue; } - { - ExportOffset exportOffset = {}; - exportOffset.objectID = object->id; - exportOffset.offset = ftell(output); - exportOffsets.Add(exportOffset); - } - - { - Object *textStyle = PropertyFindOrInheritReadObject(object, "textStyle"); - uint32_t exportOffset = ExportOffsetFindObject(textStyle->id)->offset; - fwrite(&exportOffset, 1, sizeof(exportOffset), output); - } + ExportOffset exportOffset = {}; + exportOffset.objectID = object->id; + exportOffset.offset = ftell(output); + exportOffsets.Add(exportOffset); + + uint32_t metricsExportOffset = styleMetricsOffsets[styleIndex++]; + fwrite(&metricsExportOffset, 1, sizeof(metricsExportOffset), output); Object *appearance = PropertyFindOrInheritReadObject(object, "appearance"); @@ -3306,6 +3304,7 @@ void Export() { DocumentFree(); fclose(output); exportOffsets.Free(); + styleMetricsOffsets.Free(); } void ExportJSON() {