+++ /dev/null
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <set>
-
-#include "qerplugin.h"
-#include "debugging/debugging.h"
-#include "support.h"
-#include "export.h"
-
-// stuff from interface.cpp
-void DestroyWindow();
-
-
-namespace callbacks {
-
-void OnDestroy(GtkWidget* w, gpointer data)
-{
- DestroyWindow();
-}
-
-void OnExportClicked(GtkButton* button, gpointer user_data)
-{
- GtkWidget* window = lookup_widget(GTK_WIDGET(button), "w_plugplug2");
- ASSERT_NOTNULL(window);
- const char* cpath = GlobalRadiant().m_pfnFileDialog(window, false, "Save as Obj", 0, 0, false, false, true);
- if(!cpath)
- return;
-
- std::string path(cpath);
-
- // get ignore list from ui
- std::set<std::string> ignore;
-
- GtkTreeView* view = GTK_TREE_VIEW(lookup_widget(GTK_WIDGET(button), "t_materialist"));
- GtkListStore* list = GTK_LIST_STORE(gtk_tree_view_get_model(view));
-
- GtkTreeIter iter;
- gboolean valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(list), &iter);
- while(valid)
- {
- gchar* data;
- gtk_tree_model_get(GTK_TREE_MODEL(list), &iter, 0, &data, -1);
- globalOutputStream() << data << "\n";
- ignore.insert(std::string(data));
- g_free(data);
- valid = gtk_tree_model_iter_next (GTK_TREE_MODEL(list), &iter);
- }
-
- for(std::set<std::string>::iterator it(ignore.begin()); it != ignore.end(); ++it)
- globalOutputStream() << it->c_str() << "\n";
-
- // collapse mode
- collapsemode mode = COLLAPSE_NONE;
-
- GtkWidget* radio = lookup_widget(GTK_WIDGET(button), "r_collapse");
- ASSERT_NOTNULL(radio);
-
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
- mode = COLLAPSE_ALL;
- else
- {
- radio = lookup_widget(GTK_WIDGET(button), "r_collapsebymaterial");
- ASSERT_NOTNULL(radio);
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
- mode = COLLAPSE_BY_MATERIAL;
- else
- {
- radio = lookup_widget(GTK_WIDGET(button), "r_nocollapse");
- ASSERT_NOTNULL(radio);
- ASSERT_NOTNULL(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)));
- mode = COLLAPSE_NONE;
- }
- }
-
- // export materials?
- GtkWidget* toggle = lookup_widget(GTK_WIDGET(button), "t_exportmaterials");
- ASSERT_NOTNULL(toggle);
-
- bool exportmat = FALSE;
-
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)))
- exportmat = TRUE;
-
- // limit material names?
- toggle = lookup_widget(GTK_WIDGET(button), "t_limitmatnames");
- ASSERT_NOTNULL(toggle);
-
- bool limitMatNames = FALSE;
-
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)) && exportmat)
- limitMatNames = TRUE;
-
- // create objects instead of groups?
- toggle = lookup_widget(GTK_WIDGET(button), "t_objects");
- ASSERT_NOTNULL(toggle);
-
- bool objects = FALSE;
-
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)) && exportmat)
- objects = TRUE;
-
- // export
- ExportSelection(ignore, mode, exportmat, path, limitMatNames, objects);
-}
-
-void OnAddMaterial(GtkButton* button, gpointer user_data)
-{
- GtkEntry* edit = GTK_ENTRY(lookup_widget(GTK_WIDGET(button), "ed_materialname"));
- ASSERT_NOTNULL(edit);
-
- const gchar* name = gtk_entry_get_text(edit);
- if(g_utf8_strlen(name, -1) > 0)
- {
- GtkListStore* list = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(lookup_widget(GTK_WIDGET(button), "t_materialist"))));
- GtkTreeIter iter;
- gtk_list_store_append(list, &iter);
- gtk_list_store_set(list, &iter, 0, name, -1);
- gtk_entry_set_text(edit, "");
- }
-}
-
-void OnRemoveMaterial(GtkButton* button, gpointer user_data)
-{
- GtkTreeView* view = GTK_TREE_VIEW(lookup_widget(GTK_WIDGET(button), "t_materialist"));
- GtkListStore* list = GTK_LIST_STORE(gtk_tree_view_get_model(view));
- GtkTreeSelection* sel = gtk_tree_view_get_selection(view);
-
- GtkTreeIter iter;
- if(gtk_tree_selection_get_selected(sel, 0, &iter))
- gtk_list_store_remove(list, &iter);
-}
-
-void OnExportMatClicked(GtkButton* button, gpointer user_data)
-{
- GtkWidget* toggleLimit = lookup_widget(GTK_WIDGET(button), "t_limitmatnames");
- GtkWidget* toggleObject = lookup_widget(GTK_WIDGET(button), "t_objects");
-
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
- {
- gtk_widget_set_sensitive(GTK_WIDGET(toggleLimit), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(toggleObject), TRUE);
- } else {
- gtk_widget_set_sensitive(GTK_WIDGET(toggleLimit), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(toggleObject), FALSE);
- }
-}
-
-}// callbacks