void tool_presets_actions_update (GimpActionGroup *group, gpointer user_data) { GimpContext *context = action_data_get_context (user_data); GimpToolPreset *tool_preset = NULL; GimpData *data = NULL; GFile *file = NULL; if (context) { tool_preset = gimp_context_get_tool_preset (context); if (tool_preset) { data = GIMP_DATA (tool_preset); file = gimp_data_get_file (data); } } #define SET_SENSITIVE(action,condition) \ gimp_action_group_set_action_sensitive (group, action, (condition) != 0) SET_SENSITIVE ("tool-presets-edit", tool_preset); SET_SENSITIVE ("tool-presets-duplicate", tool_preset && GIMP_DATA_GET_CLASS (data)->duplicate); SET_SENSITIVE ("tool-presets-copy-location", file); SET_SENSITIVE ("tool-presets-show-in-file-manager", file); SET_SENSITIVE ("tool-presets-restore", tool_preset); SET_SENSITIVE ("tool-presets-delete", tool_preset && gimp_data_is_deletable (data)); #undef SET_SENSITIVE }
void brushes_actions_update (GimpActionGroup *group, gpointer user_data) { GimpContext *context = action_data_get_context (user_data); GimpBrush *brush = NULL; GimpData *data = NULL; GFile *file = NULL; if (context) { brush = gimp_context_get_brush (context); if (action_data_sel_count (user_data) > 1) { brush = NULL; } if (brush) { data = GIMP_DATA (brush); file = gimp_data_get_file (data); } } #define SET_SENSITIVE(action,condition) \ gimp_action_group_set_action_sensitive (group, action, (condition) != 0) SET_SENSITIVE ("brushes-edit", brush); SET_SENSITIVE ("brushes-open-as-image", file && ! GIMP_IS_BRUSH_GENERATED (brush)); SET_SENSITIVE ("brushes-duplicate", brush && GIMP_DATA_GET_CLASS (data)->duplicate); SET_SENSITIVE ("brushes-copy-location", file); SET_SENSITIVE ("brushes-show-in-file-manager", file); SET_SENSITIVE ("brushes-delete", brush && gimp_data_is_deletable (data)); #undef SET_SENSITIVE }
void palettes_actions_update (GimpActionGroup *group, gpointer user_data) { GimpContext *context = action_data_get_context (user_data); GimpPalette *palette = NULL; GimpData *data = NULL; GFile *file = NULL; if (context) { palette = gimp_context_get_palette (context); if (action_data_sel_count (user_data) > 1) { palette = NULL; } if (palette) { data = GIMP_DATA (palette); file = gimp_data_get_file (data); } } #define SET_SENSITIVE(action,condition) \ gimp_action_group_set_action_sensitive (group, action, (condition) != 0) SET_SENSITIVE ("palettes-edit", palette); SET_SENSITIVE ("palettes-duplicate", palette && GIMP_DATA_GET_CLASS (data)->duplicate); SET_SENSITIVE ("palettes-merge", FALSE); /* FIXME palette && GIMP_IS_CONTAINER_LIST_VIEW (editor->view)); */ SET_SENSITIVE ("palettes-copy-location", file); SET_SENSITIVE ("palettes-show-in-file-manager", file); SET_SENSITIVE ("palettes-delete", palette && gimp_data_is_deletable (data)); #undef SET_SENSITIVE }