6 #include "debugging/debugging.h"
10 // stuff from interface.cpp
16 void OnDestroy(ui::Widget w, gpointer data)
21 void OnExportClicked(ui::Button button, gpointer user_data)
23 auto window = ui::Window::from(lookup_widget(button, "w_plugplug2"));
25 const char *cpath = GlobalRadiant().m_pfnFileDialog(window, false, "Save as Obj", 0, 0, false, false, true);
30 std::string path(cpath);
32 // get ignore list from ui
33 std::set<std::string> ignore;
35 auto view = ui::TreeView::from(lookup_widget(button, "t_materialist"));
36 ui::ListStore list = ui::ListStore::from(gtk_tree_view_get_model(view));
39 gboolean valid = gtk_tree_model_get_iter_first(list, &iter);
42 gtk_tree_model_get(list, &iter, 0, &data, -1);
43 globalOutputStream() << data << "\n";
44 ignore.insert(std::string(data));
46 valid = gtk_tree_model_iter_next(list, &iter);
49 for (std::set<std::string>::iterator it(ignore.begin()); it != ignore.end(); ++it) {
50 globalOutputStream() << it->c_str() << "\n";
54 collapsemode mode = COLLAPSE_NONE;
56 auto radio = lookup_widget(button, "r_collapse");
59 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio))) {
62 radio = lookup_widget(button, "r_collapsebymaterial");
64 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio))) {
65 mode = COLLAPSE_BY_MATERIAL;
67 radio = lookup_widget(button, "r_nocollapse");
69 ASSERT_TRUE(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)));
75 auto toggle = lookup_widget(button, "t_exportmaterials");
78 bool exportmat = FALSE;
80 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle))) {
84 // limit material names?
85 toggle = lookup_widget(button, "t_limitmatnames");
88 bool limitMatNames = FALSE;
90 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)) && exportmat) {
94 // create objects instead of groups?
95 toggle = lookup_widget(button, "t_objects");
100 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)) && exportmat) {
105 ExportSelection(ignore, mode, exportmat, path, limitMatNames, objects);
108 void OnAddMaterial(ui::Button button, gpointer user_data)
110 auto edit = ui::Entry::from(lookup_widget(button, "ed_materialname"));
113 const gchar *name = gtk_entry_get_text(edit);
114 if (g_utf8_strlen(name, -1) > 0) {
115 ui::ListStore list = ui::ListStore::from(
116 gtk_tree_view_get_model(ui::TreeView::from(lookup_widget(button, "t_materialist"))));
117 list.append(0, name);
118 gtk_entry_set_text(edit, "");
122 void OnRemoveMaterial(ui::Button button, gpointer user_data)
124 ui::TreeView view = ui::TreeView::from(lookup_widget(button, "t_materialist"));
125 ui::ListStore list = ui::ListStore::from(gtk_tree_view_get_model(view));
126 auto sel = ui::TreeSelection::from(gtk_tree_view_get_selection(view));
129 if (gtk_tree_selection_get_selected(sel, 0, &iter)) {
130 gtk_list_store_remove(list, &iter);
134 void OnExportMatClicked(ui::Button button, gpointer user_data)
136 ui::Widget toggleLimit = lookup_widget(button, "t_limitmatnames");
137 ui::Widget toggleObject = lookup_widget(button, "t_objects");
139 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) {
140 gtk_widget_set_sensitive(toggleLimit, TRUE);
141 gtk_widget_set_sensitive(toggleObject, TRUE);
143 gtk_widget_set_sensitive(toggleLimit, FALSE);
144 gtk_widget_set_sensitive(toggleObject, FALSE);