void VRGuiNav_on_cbbinding_changed(GtkCellRendererCombo* crc, gchar *path_string, GtkTreeIter *new_iter, gpointer d) { Glib::RefPtr<Gtk::TreeView> tree_view = Glib::RefPtr<Gtk::TreeView>::cast_static(VRGuiBuilder()->get_object("treeview4")); Gtk::TreeModel::iterator iter = tree_view->get_selection()->get_selected(); if(!iter) return; // set the cell with new type Glib::RefPtr<Gtk::ListStore> combo_list = Glib::RefPtr<Gtk::ListStore>::cast_static(VRGuiBuilder()->get_object("binding_callbacks")); gchar *t; gtk_tree_model_get((GtkTreeModel*)combo_list->gobj(), new_iter, 0, &t, -1); string cb = string(t); Gtk::TreeModel::Row row = *iter; VRGuiNav_BindingColumns cols; row[cols.callback] = cb; // do something auto scene = VRSceneManager::getCurrent(); if (scene == 0) return; VRDeviceCb cback = scene->getNavigationCallbacks()[cb]; int i = toInt(path_string); VRNavPreset* preset = scene->getNavigation(getComboboxText("combobox5")); auto& b = preset->getBindings()[i]; b.clearSignal(); b.cb = cback; preset->updateBinding(b); }
void VRGuiNav_on_statebinding_edited(GtkCellRendererText *cell, gchar *path_string, gchar *new_text, gpointer d) { Glib::RefPtr<Gtk::TreeView> tree_view = Glib::RefPtr<Gtk::TreeView>::cast_static(VRGuiBuilder()->get_object("treeview4")); Gtk::TreeModel::iterator iter = tree_view->get_selection()->get_selected(); if(!iter) return; // set the cell with new state int state = toInt(new_text); VRGuiNav_BindingColumns cols; Gtk::TreeModel::Row row = *iter; row[cols.state] = state; // do something int i = toInt(path_string); VRNavPreset* preset = VRSceneManager::get()->getActiveScene()->getPreset(getComboboxText("combobox5")); preset->getBindings()[i].state = state; preset->updateBinding(preset->getBindings()[i]); }
void VRGuiNav_on_keybinding_edited(GtkCellRendererText *cell, gchar *path_string, gchar *new_text, gpointer d) { Glib::RefPtr<Gtk::TreeView> tree_view = Glib::RefPtr<Gtk::TreeView>::cast_static(VRGuiBuilder()->get_object("treeview4")); Gtk::TreeModel::iterator iter = tree_view->get_selection()->get_selected(); if(!iter) return; // set the cell with new key int key = toInt(new_text); VRGuiNav_BindingColumns cols; Gtk::TreeModel::Row row = *iter; row[cols.key] = key; // do something int i = toInt(path_string); auto scene = VRSceneManager::getCurrent(); if (scene == 0) return; VRNavPreset* preset = scene->getNavigation(getComboboxText("combobox5")); preset->getBindings()[i].key = key; preset->updateBinding(preset->getBindings()[i]); }
void VRGuiNav_on_typebinding_changed(GtkCellRendererCombo* crc, gchar *path_string, GtkTreeIter *new_iter, gpointer d) { Glib::RefPtr<Gtk::TreeView> tree_view = Glib::RefPtr<Gtk::TreeView>::cast_static(VRGuiBuilder()->get_object("treeview4")); Gtk::TreeModel::iterator iter = tree_view->get_selection()->get_selected(); if(!iter) return; // set the cell with new type Glib::RefPtr<Gtk::ListStore> combo_list = Glib::RefPtr<Gtk::ListStore>::cast_static(VRGuiBuilder()->get_object("binding_types")); gchar *t; gtk_tree_model_get((GtkTreeModel*)combo_list->gobj(), new_iter, 0, &t, -1); string type = string(t); Gtk::TreeModel::Row row = *iter; VRGuiNav_BindingColumns cols; row[cols.type] = type; // do something int i = toInt(path_string); VRNavPreset* preset = VRSceneManager::get()->getActiveScene()->getPreset(getComboboxText("combobox5")); if (type == "Event") preset->getBindings()[i].doRepeat = false; if (type == "State") preset->getBindings()[i].doRepeat = true; preset->updateBinding(preset->getBindings()[i]); }