Beispiel #1
0
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);
}
Beispiel #2
0
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]);
}
Beispiel #3
0
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]);
}
Beispiel #4
0
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]);
}