mirror of https://gitlab.com/nakst/essence
bugfixes; cleanup theme
This commit is contained in:
parent
b6bc221af2
commit
4ad2395977
|
@ -1,3 +1,4 @@
|
||||||
|
define ES_STYLE_SEPARATOR_HORIZONTAL (ES_STYLE_CAST(1373))
|
||||||
private define ES_STYLE__TEST_STYLE (ES_STYLE_CAST(1385))
|
private define ES_STYLE__TEST_STYLE (ES_STYLE_CAST(1385))
|
||||||
private define ES_STYLE_ACCESS_KEY_HINT (ES_STYLE_CAST(1221))
|
private define ES_STYLE_ACCESS_KEY_HINT (ES_STYLE_CAST(1221))
|
||||||
private define ES_STYLE_ANNOUNCEMENT (ES_STYLE_CAST(1511))
|
private define ES_STYLE_ANNOUNCEMENT (ES_STYLE_CAST(1511))
|
||||||
|
@ -8,7 +9,13 @@ define ES_STYLE_BUTTON_GROUP_CONTAINER (ES_STYLE_CAST(1229))
|
||||||
define ES_STYLE_BUTTON_GROUP_ITEM (ES_STYLE_CAST(1231))
|
define ES_STYLE_BUTTON_GROUP_ITEM (ES_STYLE_CAST(1231))
|
||||||
define ES_STYLE_BUTTON_GROUP_SEPARATOR (ES_STYLE_CAST(1233))
|
define ES_STYLE_BUTTON_GROUP_SEPARATOR (ES_STYLE_CAST(1233))
|
||||||
private define ES_STYLE_CANVAS_SHADOW (ES_STYLE_CAST(1451))
|
private define ES_STYLE_CANVAS_SHADOW (ES_STYLE_CAST(1451))
|
||||||
|
private define ES_STYLE_COLOR_HEX_TEXTBOX (ES_STYLE_CAST(1245))
|
||||||
|
private define ES_STYLE_TASK_BAR_BAR (ES_STYLE_CAST(1379))
|
||||||
|
private define ES_STYLE_SLIDER_TRACK (ES_STYLE_CAST(1601))
|
||||||
private define ES_STYLE_CHECKBOX_NORMAL (ES_STYLE_CAST(1559))
|
private define ES_STYLE_CHECKBOX_NORMAL (ES_STYLE_CAST(1559))
|
||||||
|
private define ES_STYLE_SPLIT_BAR_VERTICAL (ES_STYLE_CAST(1377))
|
||||||
|
private define ES_STYLE_WINDOW_TAB_CLOSE_BUTTON (ES_STYLE_CAST(1469))
|
||||||
|
private define ES_STYLE_SPLIT_BAR_HORIZONTAL (ES_STYLE_CAST(1375))
|
||||||
private define ES_STYLE_CHECKBOX_RADIOBOX (ES_STYLE_CAST(1567))
|
private define ES_STYLE_CHECKBOX_RADIOBOX (ES_STYLE_CAST(1567))
|
||||||
define ES_STYLE_CLEAR_BACKGROUND (ES_STYLE_CAST(1597))
|
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_CHOSEN_POINT (ES_STYLE_CAST(1241))
|
||||||
|
@ -86,6 +93,7 @@ define ES_STYLE_PANEL_WINDOW_BACKGROUND (ES_STYLE_CAST(1341))
|
||||||
define ES_STYLE_TEXTBOX_BORDERED_MULTILINE (ES_STYLE_CAST(1399))
|
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_DIVIDER (ES_STYLE_CAST(1343))
|
||||||
define ES_STYLE_PANEL_WINDOW_WITH_STATUS_BAR_CONTENT (ES_STYLE_CAST(1483))
|
define ES_STYLE_PANEL_WINDOW_WITH_STATUS_BAR_CONTENT (ES_STYLE_CAST(1483))
|
||||||
|
private define ES_STYLE_SLIDER_POINT (ES_STYLE_CAST(1607))
|
||||||
define ES_STYLE_PUSH_BUTTON_DANGEROUS (ES_STYLE_CAST(1345))
|
define ES_STYLE_PUSH_BUTTON_DANGEROUS (ES_STYLE_CAST(1345))
|
||||||
private define ES_STYLE_TEXTBOX_INLINE (ES_STYLE_CAST(1477))
|
private define ES_STYLE_TEXTBOX_INLINE (ES_STYLE_CAST(1477))
|
||||||
private define ES_STYLE_PUSH_BUTTON_NORMAL (ES_STYLE_CAST(1347))
|
private define ES_STYLE_PUSH_BUTTON_NORMAL (ES_STYLE_CAST(1347))
|
||||||
|
@ -112,11 +120,3 @@ 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_HORIZONTAL (ES_STYLE_CAST(1367))
|
||||||
private define ES_STYLE_SCROLLBAR_THUMB_VERTICAL (ES_STYLE_CAST(1369))
|
private define ES_STYLE_SCROLLBAR_THUMB_VERTICAL (ES_STYLE_CAST(1369))
|
||||||
private define ES_STYLE_SCROLLBAR_PAD (ES_STYLE_CAST(1371))
|
private define ES_STYLE_SCROLLBAR_PAD (ES_STYLE_CAST(1371))
|
||||||
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_COLOR_HEX_TEXTBOX (ES_STYLE_CAST(1245))
|
|
||||||
|
|
|
@ -196,10 +196,13 @@ int CanvasCallback(EsElement *element, EsMessage *message) {
|
||||||
// TODO Is it safe to pass input to Bochs on this thread?
|
// TODO Is it safe to pass input to Bochs on this thread?
|
||||||
|
|
||||||
if (message->type == ES_MSG_PAINT) {
|
if (message->type == ES_MSG_PAINT) {
|
||||||
int ox = message->painter->width / 2 - instance->vmemWidth / 2;
|
EsRectangle bounds = EsPainterBoundsInset(message->painter);
|
||||||
int oy = message->painter->height / 2 - instance->vmemHeight / 2;
|
EsRectangle imageBounds = EsRectangleCenter(bounds, ES_RECT_2S(instance->vmemWidth, instance->vmemHeight));
|
||||||
EsRectangle bounds = { ox, ox + instance->vmemWidth, oy, oy + instance->vmemHeight };
|
EsDrawBitmap(message->painter, imageBounds, instance->vmem, instance->vmemWidth * 4, ES_DRAW_BITMAP_OPAQUE);
|
||||||
EsDrawBitmap(message->painter, bounds, instance->vmem, instance->vmemWidth * 4, 0xFFFF);
|
EsDrawBlock(message->painter, ES_RECT_4(bounds.l, imageBounds.l, bounds.t, bounds.b), 0xFF000000);
|
||||||
|
EsDrawBlock(message->painter, ES_RECT_4(imageBounds.r, bounds.r, bounds.t, bounds.b), 0xFF000000);
|
||||||
|
EsDrawBlock(message->painter, ES_RECT_4(imageBounds.l, imageBounds.r, bounds.t, imageBounds.t), 0xFF000000);
|
||||||
|
EsDrawBlock(message->painter, ES_RECT_4(imageBounds.l, imageBounds.r, imageBounds.b, bounds.b), 0xFF000000);
|
||||||
repaintQueued = false;
|
repaintQueued = false;
|
||||||
} else if (message->type == ES_MSG_KEY_DOWN) {
|
} else if (message->type == ES_MSG_KEY_DOWN) {
|
||||||
if (message->keyboard.scancode == ES_SCANCODE_RIGHT_CTRL) {
|
if (message->keyboard.scancode == ES_SCANCODE_RIGHT_CTRL) {
|
||||||
|
|
Binary file not shown.
BIN
res/Theme.dat
BIN
res/Theme.dat
Binary file not shown.
|
@ -365,15 +365,17 @@ void EsDrawBitmap(EsPainter *painter, EsRectangle region, uint32_t *sourceBits,
|
||||||
j--;
|
j--;
|
||||||
}
|
}
|
||||||
} else if (mode == ES_DRAW_BITMAP_OPAQUE) {
|
} else if (mode == ES_DRAW_BITMAP_OPAQUE) {
|
||||||
|
__m128i fillAlpha = _mm_set1_epi32(0xFF000000);
|
||||||
|
|
||||||
while (j >= 4) {
|
while (j >= 4) {
|
||||||
_mm_storeu_si128((__m128i *) destination, _mm_loadu_si128((__m128i *) source));
|
_mm_storeu_si128((__m128i *) destination, _mm_or_si128(fillAlpha, _mm_loadu_si128((__m128i *) source)));
|
||||||
destination += 4;
|
destination += 4;
|
||||||
source += 4;
|
source += 4;
|
||||||
j -= 4;
|
j -= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (j > 0) {
|
while (j > 0) {
|
||||||
*destination = *source;
|
*destination = 0xFF000000 | *source;
|
||||||
destination++;
|
destination++;
|
||||||
source++;
|
source++;
|
||||||
j--;
|
j--;
|
||||||
|
|
|
@ -20,6 +20,9 @@
|
||||||
// Prototyping display: previewing state transitions.
|
// Prototyping display: previewing state transitions.
|
||||||
|
|
||||||
// TODO Additional features:
|
// TODO Additional features:
|
||||||
|
// Method to iterate through all the objects that link to selected object.
|
||||||
|
// Sorted list in ObjectAddInstanceCommand.
|
||||||
|
// Hide arrows to colors.
|
||||||
// Having to link to the end of a conditional object chain is a bit strange.
|
// Having to link to the end of a conditional object chain is a bit strange.
|
||||||
// Output styles.header in order of header ID.
|
// Output styles.header in order of header ID.
|
||||||
// Cleaning up unused objects.
|
// Cleaning up unused objects.
|
||||||
|
@ -342,6 +345,7 @@ struct Step {
|
||||||
|
|
||||||
struct ExportOffset {
|
struct ExportOffset {
|
||||||
uint64_t objectID;
|
uint64_t objectID;
|
||||||
|
uint64_t styleObjectID;
|
||||||
uintptr_t offset;
|
uintptr_t offset;
|
||||||
char cPropertyName[PROPERTY_NAME_SIZE];
|
char cPropertyName[PROPERTY_NAME_SIZE];
|
||||||
uint8_t overrideType;
|
uint8_t overrideType;
|
||||||
|
@ -414,6 +418,16 @@ ExportOffset *ExportOffsetFindObject(uint64_t id) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ExportOffset *ExportOffsetFindObjectForStyle(uint64_t id, uint64_t style) {
|
||||||
|
for (uintptr_t i = 0; i < exportOffsets.Length(); i++) {
|
||||||
|
if (exportOffsets[i].objectID == id && exportOffsets[i].styleObjectID == style) {
|
||||||
|
return &exportOffsets[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
ExportOffset *ExportOffsetFindProperty(uint64_t objectID, const char *cPropertyName) {
|
ExportOffset *ExportOffsetFindProperty(uint64_t objectID, const char *cPropertyName) {
|
||||||
for (uintptr_t i = 0; i < exportOffsets.Length(); i++) {
|
for (uintptr_t i = 0; i < exportOffsets.Length(); i++) {
|
||||||
if (exportOffsets[i].objectID == objectID
|
if (exportOffsets[i].objectID == objectID
|
||||||
|
@ -1433,6 +1447,18 @@ void InspectorPopulate() {
|
||||||
UIParentPush(inspector);
|
UIParentPush(inspector);
|
||||||
|
|
||||||
Object *object = ObjectFind(selectedObjectID);
|
Object *object = ObjectFind(selectedObjectID);
|
||||||
|
size_t referenceCount = 0;
|
||||||
|
|
||||||
|
if (object) {
|
||||||
|
for (uintptr_t i = 0; i < objects.Length(); i++) {
|
||||||
|
for (uintptr_t j = 0; j < objects[i].properties.Length(); j++) {
|
||||||
|
if (objects[i].properties[j].type == PROP_OBJECT
|
||||||
|
&& objects[i].properties[j].object == object->id) {
|
||||||
|
referenceCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (object && object->type != OBJ_INSTANCE) {
|
if (object && object->type != OBJ_INSTANCE) {
|
||||||
UIPanelCreate(0, UI_ELEMENT_PARENT_PUSH | UI_PANEL_BORDER | UI_PANEL_MEDIUM_SPACING | UI_PANEL_EXPAND);
|
UIPanelCreate(0, UI_ELEMENT_PARENT_PUSH | UI_PANEL_BORDER | UI_PANEL_MEDIUM_SPACING | UI_PANEL_EXPAND);
|
||||||
|
@ -1444,6 +1470,8 @@ void InspectorPopulate() {
|
||||||
UIButtonCreate(0, UI_BUTTON_SMALL, "Auto", -1)->invoke = InspectorAutoNameObject;
|
UIButtonCreate(0, UI_BUTTON_SMALL, "Auto", -1)->invoke = InspectorAutoNameObject;
|
||||||
UIButtonCreate(0, UI_BUTTON_SMALL, "Rename", -1)->invoke = InspectorRenameObject;
|
UIButtonCreate(0, UI_BUTTON_SMALL, "Rename", -1)->invoke = InspectorRenameObject;
|
||||||
UIParentPop();
|
UIParentPop();
|
||||||
|
snprintf(buffer, sizeof(buffer), "%ld references", referenceCount);
|
||||||
|
UILabelCreate(0, 0, buffer, -1);
|
||||||
|
|
||||||
bool inheritWithAnimation = object->type == OBJ_VAR_TEXT_STYLE
|
bool inheritWithAnimation = object->type == OBJ_VAR_TEXT_STYLE
|
||||||
|| object->type == OBJ_LAYER_BOX || object->type == OBJ_LAYER_TEXT || object->type == OBJ_LAYER_PATH
|
|| object->type == OBJ_LAYER_BOX || object->type == OBJ_LAYER_TEXT || object->type == OBJ_LAYER_PATH
|
||||||
|
@ -3122,6 +3150,8 @@ void Export() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t styleObjectID = object->id;
|
||||||
|
|
||||||
Object *metrics = PropertyFindOrInheritReadObject(object, "metrics");
|
Object *metrics = PropertyFindOrInheritReadObject(object, "metrics");
|
||||||
Object *textStyle = PropertyFindOrInheritReadObject(object, "textStyle");
|
Object *textStyle = PropertyFindOrInheritReadObject(object, "textStyle");
|
||||||
Object *appearance = PropertyFindOrInheritReadObject(object, "appearance");
|
Object *appearance = PropertyFindOrInheritReadObject(object, "appearance");
|
||||||
|
@ -3208,6 +3238,7 @@ void Export() {
|
||||||
if (!layerObject) continue;
|
if (!layerObject) continue;
|
||||||
|
|
||||||
ExportOffset exportOffset = {};
|
ExportOffset exportOffset = {};
|
||||||
|
exportOffset.styleObjectID = styleObjectID;
|
||||||
exportOffset.objectID = layerObject->id;
|
exportOffset.objectID = layerObject->id;
|
||||||
exportOffset.offset = ftell(output);
|
exportOffset.offset = ftell(output);
|
||||||
exportOffsets.Add(exportOffset);
|
exportOffsets.Add(exportOffset);
|
||||||
|
@ -3271,6 +3302,8 @@ void Export() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t styleObjectID = object->id;
|
||||||
|
|
||||||
ExportOffset exportOffset = {};
|
ExportOffset exportOffset = {};
|
||||||
exportOffset.objectID = object->id;
|
exportOffset.objectID = object->id;
|
||||||
exportOffset.offset = ftell(output);
|
exportOffset.offset = ftell(output);
|
||||||
|
@ -3292,7 +3325,7 @@ void Export() {
|
||||||
Property *layerProperty = PropertyFind(appearance, cPropertyName, PROP_OBJECT);
|
Property *layerProperty = PropertyFind(appearance, cPropertyName, PROP_OBJECT);
|
||||||
Object *layerObject = ObjectFind(layerProperty ? layerProperty->object : 0);
|
Object *layerObject = ObjectFind(layerProperty ? layerProperty->object : 0);
|
||||||
if (!layerObject) continue;
|
if (!layerObject) continue;
|
||||||
uint32_t exportOffset = ExportOffsetFindObject(layerObject->id)->offset;
|
uint32_t exportOffset = ExportOffsetFindObjectForStyle(layerObject->id, styleObjectID)->offset;
|
||||||
fwrite(&exportOffset, 1, sizeof(exportOffset), output);
|
fwrite(&exportOffset, 1, sizeof(exportOffset), output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue