blob: b4555f3c1533831270bfd83113972a5d55e92a68 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#include "debugdraw.hpp"
#include "editor.hpp"
#include "model.hpp"
#include "ui.hpp"
static struct {
UI* ui;
UI::Toolbar* toolbar;
UI::Button* mat_btn;
UI::Modal* mat_win;
Model_Instance* selected_inst;
int selected_mesh;
} editor;
static int mat_win_handler(UI::Element* e, const UI::Message& m) {
(void)e;
if (m.type == UI::Message::Type::destroy)
editor.mat_btn->enable();
return 0;
}
static int mat_btn_handler(UI::Element* e, const UI::Message& m) {
(void)e;
if (m.type == UI::Message::Type::click) {
editor.mat_win = editor.ui->create_element<UI::Modal>(
editor.ui->root,
"Material Editor"
);
editor.mat_win->handler = mat_win_handler;
editor.mat_btn->disable();
}
return 0;
}
void init_editor(UI* ui) {
editor.ui = ui;
editor.toolbar = ui->create_element<UI::Toolbar>(ui->root);
editor.mat_btn = ui->create_element<UI::Button>(
editor.toolbar,
"Edit Material"
);
editor.mat_win = 0;
editor.mat_btn->handler = mat_btn_handler;
}
void deinit_editor() {
}
void editor_on_select(Model_Instance* instance, int mesh) {
editor.selected_inst = instance;
editor.selected_mesh = mesh;
}
void editor_draw(Line_Renderer& lr) {
if (editor.selected_inst) {
lr.add_box(
editor.selected_inst->bounds[editor.selected_mesh]
);
}
}
|