paint: stage fixes
This commit is contained in:
@@ -409,6 +409,8 @@ char *strings_graphics_api();
|
||||
stage_t *tab_stages_create_stage(char *name);
|
||||
stage_t *tab_stages_get_stage();
|
||||
void tab_stages_apply(stage_t *stage);
|
||||
void tab_stages_rename_object(char *old_name, char *new_name);
|
||||
void tab_stages_rename_layer(char *old_name, char *new_name);
|
||||
void tab_stages_prune();
|
||||
void project_open();
|
||||
void project_save(bool save_and_quit);
|
||||
|
||||
@@ -403,7 +403,9 @@ void tab_layers_draw_layer_slot_full(slot_layer_t *l, i32 i) {
|
||||
g_ui->_w = name_right - name_x;
|
||||
if (tab_layers_layer_name_edit == l->id) {
|
||||
tab_layers_layer_name_handle->text = string_copy(l->name);
|
||||
l->name = string_copy(ui_text_input(tab_layers_layer_name_handle, "", UI_ALIGN_LEFT, true, false));
|
||||
char *new_name = string_copy(ui_text_input(tab_layers_layer_name_handle, "", UI_ALIGN_LEFT, true, false));
|
||||
tab_stages_rename_layer(l->name, new_name);
|
||||
l->name = new_name;
|
||||
if (g_ui->text_selected_handle != tab_layers_layer_name_handle) {
|
||||
tab_layers_layer_name_edit = -1;
|
||||
}
|
||||
|
||||
@@ -274,9 +274,11 @@ void tab_meshes_draw_context_menu() {
|
||||
2);
|
||||
ui_row(row);
|
||||
ui_text("Name", UI_ALIGN_LEFT, 0x00000000);
|
||||
h = ui_handle(__ID__);
|
||||
h->text = string_copy(o->base->name);
|
||||
o->base->name = string_copy(ui_text_input(h, "", UI_ALIGN_LEFT, true, false));
|
||||
h = ui_handle(__ID__);
|
||||
h->text = string_copy(o->base->name);
|
||||
char *new_name = string_copy(ui_text_input(h, "", UI_ALIGN_LEFT, true, false));
|
||||
tab_stages_rename_object(o->base->name, new_name);
|
||||
o->base->name = new_name;
|
||||
o->data->name = string_copy(o->base->name);
|
||||
|
||||
// Material override
|
||||
|
||||
@@ -512,8 +512,10 @@ void ui_view2d_update(void *_) {
|
||||
ui_text(g_context->node_preview_name, UI_ALIGN_LEFT, 0x00000000);
|
||||
}
|
||||
else if (ui_view2d_type == VIEW_2D_TYPE_LAYER) {
|
||||
h->text = string_copy(l->name);
|
||||
l->name = string_copy(ui_text_input(h, "", UI_ALIGN_LEFT, true, false));
|
||||
h->text = string_copy(l->name);
|
||||
char *new_name = string_copy(ui_text_input(h, "", UI_ALIGN_LEFT, true, false));
|
||||
tab_stages_rename_layer(l->name, new_name);
|
||||
l->name = new_name;
|
||||
ui_view2d_text_input_hover = g_ui->is_hovered;
|
||||
}
|
||||
else if (ui_view2d_type == VIEW_2D_TYPE_FONT) {
|
||||
|
||||
@@ -34,6 +34,34 @@ void tab_stages_apply(stage_t *stage) {
|
||||
g_context->ddirty = 2;
|
||||
}
|
||||
|
||||
void tab_stages_rename_object(char *old_name, char *new_name) {
|
||||
if (g_project->stages == NULL || string_equals(old_name, new_name)) {
|
||||
return;
|
||||
}
|
||||
for (i32 i = 0; i < g_project->stages->length; ++i) {
|
||||
stage_t *s = g_project->stages->buffer[i];
|
||||
for (i32 j = 0; j < s->objects->length; ++j) {
|
||||
if (string_equals(s->objects->buffer[j], old_name)) {
|
||||
s->objects->buffer[j] = string_copy(new_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tab_stages_rename_layer(char *old_name, char *new_name) {
|
||||
if (g_project->stages == NULL || string_equals(old_name, new_name)) {
|
||||
return;
|
||||
}
|
||||
for (i32 i = 0; i < g_project->stages->length; ++i) {
|
||||
stage_t *s = g_project->stages->buffer[i];
|
||||
for (i32 j = 0; j < s->layers->length; ++j) {
|
||||
if (string_equals(s->layers->buffer[j], old_name)) {
|
||||
s->layers->buffer[j] = string_copy(new_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tab_stages_prune() {
|
||||
if (g_project->stages == NULL) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user