void dt_accel_connect_view(dt_view_t *self, const gchar *path, GClosure *closure) { gchar accel_path[256]; dt_accel_path_view(accel_path, 256, self->module_name, path); gtk_accel_group_connect_by_path(darktable.control->accelerators, accel_path, closure); dt_accel_t *laccel = _lookup_accel(accel_path); laccel->closure = closure; self->accel_closures = g_slist_prepend(self->accel_closures, laccel); }
static void key_accel_changed(GtkAccelMap *object, gchar *accel_path, guint accel_key, GdkModifierType accel_mods, gpointer user_data) { char path[256]; // Updating all the stored accelerator keys/mods for key_pressed shortcuts dt_accel_path_view(path, 256, "filmstrip", "scroll forward"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.filmstrip_forward); dt_accel_path_view(path, 256, "filmstrip", "scroll back"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.filmstrip_back); // Lighttable dt_accel_path_view(path, 256, "lighttable", "scroll up"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.lighttable_up); dt_accel_path_view(path, 256, "lighttable", "scroll down"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.lighttable_down); dt_accel_path_view(path, 256, "lighttable", "scroll left"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.lighttable_left); dt_accel_path_view(path, 256, "lighttable", "scroll right"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.lighttable_right); dt_accel_path_view(path, 256, "lighttable", "scroll center"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.lighttable_center); dt_accel_path_view(path, 256, "lighttable", "preview"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.lighttable_preview); // Global dt_accel_path_global(path, 256, "toggle side borders"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.global_sideborders); dt_accel_path_global(path, 256, "toggle header"); gtk_accel_map_lookup_entry(path, &darktable.control->accels.global_header); }
void dt_accel_register_view(dt_view_t *self, const gchar *path, guint accel_key, GdkModifierType mods) { gchar accel_path[256]; dt_accel_t *accel = (dt_accel_t*)malloc(sizeof(dt_accel_t)); dt_accel_path_view(accel_path, 256, self->module_name, path); gtk_accel_map_add_entry(accel_path, accel_key, mods); strcpy(accel->path, accel_path); dt_accel_path_view_translated(accel_path, 256, self, path); strcpy(accel->translated_path, accel_path); strcpy(accel->module, self->module_name); accel->views = self->view(self); accel->local = FALSE; darktable.control->accelerator_list = g_slist_prepend(darktable.control->accelerator_list, accel); }