[gimp] app: remove gimp_paint_mode_menu_new() and use GimpLayerModeBox



commit c58d471af70a70da5a73ba4aa69d3470843723a6
Author: Michael Natterer <mitch gimp org>
Date:   Mon Jan 30 13:24:35 2017 +0100

    app: remove gimp_paint_mode_menu_new() and use GimpLayerModeBox
    
    I know this looks absolutely horrible, please spare me comments about
    that. This commit has the purpose to let everybody experiment with the
    new modes, and suggest improvements of the GimpLayerModeBox widget; we
    need *some* way of controlling the new layer mode madness.

 app/dialogs/fade-dialog.c              |    4 +-
 app/dialogs/layer-options-dialog.c     |   16 ++-
 app/tools/gimppaintoptions-gui.c       |    8 +-
 app/widgets/gimpbrushselect.c          |   43 ++------
 app/widgets/gimpbrushselect.h          |    2 +-
 app/widgets/gimplayertreeview.c        |   50 ++++----
 app/widgets/gimppropwidgets.c          |   97 +++-------------
 app/widgets/gimppropwidgets.h          |    2 +-
 app/widgets/gimpwidgets-constructors.c |  195 --------------------------------
 app/widgets/gimpwidgets-constructors.h |    3 -
 10 files changed, 70 insertions(+), 350 deletions(-)
---
diff --git a/app/dialogs/fade-dialog.c b/app/dialogs/fade-dialog.c
index c75820d..2adb8af 100644
--- a/app/dialogs/fade-dialog.c
+++ b/app/dialogs/fade-dialog.c
@@ -151,8 +151,8 @@ fade_dialog_new (GimpImage *image,
   gtk_widget_show (table);
 
   /*  the paint mode menu  */
-  menu = gimp_prop_paint_mode_menu_new (G_OBJECT (private->context),
-                                        "paint-mode", TRUE, TRUE);
+  menu = gimp_prop_layer_mode_box_new (G_OBJECT (private->context),
+                                       "paint-mode", TRUE, TRUE);
   gimp_table_attach_aligned (GTK_TABLE (table), 0, table_row++,
                              _("_Mode:"), 0.0, 0.5,
                              menu, 2, FALSE);
diff --git a/app/dialogs/layer-options-dialog.c b/app/dialogs/layer-options-dialog.c
index 8629466..424c2cd 100644
--- a/app/dialogs/layer-options-dialog.c
+++ b/app/dialogs/layer-options-dialog.c
@@ -35,9 +35,9 @@
 #include "text/gimptextlayer.h"
 
 #include "widgets/gimpcontainertreeview.h"
+#include "widgets/gimplayermodebox.h"
 #include "widgets/gimpspinscale.h"
 #include "widgets/gimpviewabledialog.h"
-#include "widgets/gimpwidgets-constructors.h"
 
 #include "item-options-dialog.h"
 #include "layer-options-dialog.h"
@@ -58,6 +58,7 @@ struct _LayerOptionsDialog
   GimpLayerOptionsCallback  callback;
   gpointer                  user_data;
 
+  GtkWidget                *mode_box;
   GtkWidget                *size_se;
   GtkWidget                *offset_se;
 };
@@ -157,12 +158,10 @@ layer_options_dialog_new (GimpImage                *image,
   g_object_weak_ref (G_OBJECT (dialog),
                      (GWeakNotify) layer_options_dialog_free, private);
 
-  combo = gimp_paint_mode_menu_new (FALSE, FALSE);
-  item_options_dialog_add_widget (dialog, _("_Mode:"), combo);
-  gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (combo),
-                              private->mode,
-                              G_CALLBACK (gimp_int_combo_box_get_active),
-                              &private->mode);
+  private->mode_box = gimp_layer_mode_box_new (FALSE, FALSE);
+  item_options_dialog_add_widget (dialog, _("_Mode:"), private->mode_box);
+  gimp_layer_mode_box_set_mode (GIMP_LAYER_MODE_BOX (private->mode_box),
+                                private->mode);
 
   adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (private->opacity, 0.0, 100.0,
                                                    1.0, 10.0, 0.0));
@@ -421,6 +420,9 @@ layer_options_dialog_callback (GtkWidget    *dialog,
   gint                offset_x;
   gint                offset_y;
 
+  private->mode =
+    gimp_layer_mode_box_get_mode (GIMP_LAYER_MODE_BOX (private->mode_box));
+
   if (private->size_se)
     {
       width =
diff --git a/app/tools/gimppaintoptions-gui.c b/app/tools/gimppaintoptions-gui.c
index 4716002..6971cfa 100644
--- a/app/tools/gimppaintoptions-gui.c
+++ b/app/tools/gimppaintoptions-gui.c
@@ -28,6 +28,7 @@
 
 #include "paint/gimppaintoptions.h"
 
+#include "widgets/gimplayermodebox.h"
 #include "widgets/gimppropwidgets.h"
 #include "widgets/gimpspinscale.h"
 #include "widgets/gimpviewablebox.h"
@@ -113,9 +114,10 @@ gimp_paint_options_gui (GimpToolOptions *tool_options)
   tool_type = tool_options->tool_info->tool_type;
 
   /*  the paint mode menu  */
-  menu = gimp_prop_paint_mode_menu_new (config, "paint-mode", TRUE, FALSE);
-  gimp_int_combo_box_set_label (GIMP_INT_COMBO_BOX (menu), _("Mode"));
-  g_object_set (menu, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+  menu = gimp_prop_layer_mode_box_new (config, "paint-mode", TRUE, FALSE);
+  gimp_layer_mode_box_set_label (GIMP_LAYER_MODE_BOX (menu), _("Mode"));
+  gimp_layer_mode_box_set_ellipsize (GIMP_LAYER_MODE_BOX (menu),
+                                     PANGO_ELLIPSIZE_END);
   gtk_box_pack_start (GTK_BOX (vbox), menu, FALSE, FALSE, 0);
   gtk_widget_show (menu);
 
diff --git a/app/widgets/gimpbrushselect.c b/app/widgets/gimpbrushselect.c
index d5ae867..6f1f733 100644
--- a/app/widgets/gimpbrushselect.c
+++ b/app/widgets/gimpbrushselect.c
@@ -39,8 +39,8 @@
 #include "gimpbrushfactoryview.h"
 #include "gimpbrushselect.h"
 #include "gimpcontainerbox.h"
+#include "gimplayermodebox.h"
 #include "gimpspinscale.h"
-#include "gimpwidgets-constructors.h"
 
 #include "gimp-intl.h"
 
@@ -74,8 +74,6 @@ static void          gimp_brush_select_mode_changed    (GimpContext     *context
 
 static void          gimp_brush_select_opacity_update  (GtkAdjustment   *adj,
                                                         GimpBrushSelect *select);
-static void          gimp_brush_select_mode_update     (GtkWidget       *widget,
-                                                        GimpBrushSelect *select);
 static void          gimp_brush_select_spacing_update  (GtkAdjustment   *adj,
                                                         GimpBrushSelect *select);
 
@@ -191,14 +189,14 @@ gimp_brush_select_constructed (GObject *object)
   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
   gtk_widget_show (label);
 
-  select->paint_mode_menu = gimp_paint_mode_menu_new (TRUE, FALSE);
-  gtk_box_pack_start (GTK_BOX (hbox), select->paint_mode_menu, TRUE, TRUE, 0);
-  gtk_widget_show (select->paint_mode_menu);
+  select->layer_mode_box = gimp_layer_mode_box_new (TRUE, FALSE);
+  gtk_box_pack_start (GTK_BOX (hbox), select->layer_mode_box, TRUE, TRUE, 0);
+  gtk_widget_show (select->layer_mode_box);
 
-  gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (select->paint_mode_menu),
-                              gimp_context_get_paint_mode (dialog->context),
-                              G_CALLBACK (gimp_brush_select_mode_update),
-                              select);
+  g_object_bind_property (G_OBJECT (dialog->context),        "paint-mode",
+                          G_OBJECT (select->layer_mode_box), "layer-mode",
+                          G_BINDING_BIDIRECTIONAL |
+                          G_BINDING_SYNC_CREATE);
 
   spacing_adj = GIMP_BRUSH_FACTORY_VIEW (dialog->view)->spacing_adjustment;
 
@@ -311,17 +309,6 @@ gimp_brush_select_mode_changed (GimpContext     *context,
                                 GimpLayerMode    paint_mode,
                                 GimpBrushSelect *select)
 {
-  g_signal_handlers_block_by_func (select->paint_mode_menu,
-                                   gimp_brush_select_mode_update,
-                                   select);
-
-  gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (select->paint_mode_menu),
-                                 paint_mode);
-
-  g_signal_handlers_unblock_by_func (select->paint_mode_menu,
-                                     gimp_brush_select_mode_update,
-                                     select);
-
   gimp_pdb_dialog_run_callback (GIMP_PDB_DIALOG (select), FALSE);
 }
 
@@ -334,20 +321,6 @@ gimp_brush_select_opacity_update (GtkAdjustment   *adjustment,
 }
 
 static void
-gimp_brush_select_mode_update (GtkWidget       *widget,
-                               GimpBrushSelect *select)
-{
-  gint paint_mode;
-
-  if (gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget),
-                                     &paint_mode))
-    {
-      gimp_context_set_paint_mode (GIMP_PDB_DIALOG (select)->context,
-                                   (GimpLayerMode) paint_mode);
-    }
-}
-
-static void
 gimp_brush_select_spacing_update (GtkAdjustment   *adjustment,
                                   GimpBrushSelect *select)
 {
diff --git a/app/widgets/gimpbrushselect.h b/app/widgets/gimpbrushselect.h
index 237c8be..983f72d 100644
--- a/app/widgets/gimpbrushselect.h
+++ b/app/widgets/gimpbrushselect.h
@@ -45,7 +45,7 @@ struct _GimpBrushSelect
 
   gint           spacing;
   GtkAdjustment *opacity_data;
-  GtkWidget     *paint_mode_menu;
+  GtkWidget     *layer_mode_box;
 };
 
 struct _GimpBrushSelectClass
diff --git a/app/widgets/gimplayertreeview.c b/app/widgets/gimplayertreeview.c
index d189329..1cc2c3e 100644
--- a/app/widgets/gimplayertreeview.c
+++ b/app/widgets/gimplayertreeview.c
@@ -51,11 +51,11 @@
 #include "gimpcontainerview.h"
 #include "gimpdnd.h"
 #include "gimphelp-ids.h"
+#include "gimplayermodebox.h"
 #include "gimplayertreeview.h"
 #include "gimpspinscale.h"
 #include "gimpuimanager.h"
 #include "gimpviewrenderer.h"
-#include "gimpwidgets-constructors.h"
 #include "gimpwidgets-utils.h"
 
 #include "gimp-intl.h"
@@ -63,7 +63,7 @@
 
 struct _GimpLayerTreeViewPriv
 {
-  GtkWidget       *paint_mode_menu;
+  GtkWidget       *layer_mode_box;
   GtkAdjustment   *opacity_adjustment;
   GtkWidget       *lock_alpha_toggle;
 
@@ -130,7 +130,8 @@ static void       gimp_layer_tree_view_set_image                  (GimpItemTreeV
 static GimpItem * gimp_layer_tree_view_item_new                   (GimpImage                  *image);
 static void       gimp_layer_tree_view_floating_selection_changed (GimpImage                  *image,
                                                                    GimpLayerTreeView          *view);
-static void       gimp_layer_tree_view_paint_mode_menu_callback   (GtkWidget                  *widget,
+static void       gimp_layer_tree_view_layer_mode_box_callback    (GtkWidget                  *widget,
+                                                                   const GParamSpec           *pspec,
                                                                    GimpLayerTreeView          *view);
 static void       gimp_layer_tree_view_opacity_scale_changed      (GtkAdjustment              *adj,
                                                                    GimpLayerTreeView          *view);
@@ -264,18 +265,17 @@ gimp_layer_tree_view_init (GimpLayerTreeView *view)
 
   /*  Paint mode menu  */
 
-  view->priv->paint_mode_menu = gimp_paint_mode_menu_new (FALSE, FALSE);
-  gimp_int_combo_box_set_label (GIMP_INT_COMBO_BOX (view->priv->paint_mode_menu),
-                                _("Mode"));
-  gimp_item_tree_view_add_options (GIMP_ITEM_TREE_VIEW (view),
-                                   NULL, view->priv->paint_mode_menu);
+  view->priv->layer_mode_box = gimp_layer_mode_box_new (FALSE, FALSE);
+  gimp_layer_mode_box_set_label (GIMP_LAYER_MODE_BOX (view->priv->layer_mode_box),
+                                 _("Mode"));
+  gimp_item_tree_view_add_options (GIMP_ITEM_TREE_VIEW (view), NULL,
+                                   view->priv->layer_mode_box);
 
-  gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (view->priv->paint_mode_menu),
-                              GIMP_LAYER_MODE_NORMAL,
-                              G_CALLBACK (gimp_layer_tree_view_paint_mode_menu_callback),
-                              view);
+  g_signal_connect (view->priv->layer_mode_box, "notify::layer-mode",
+                    G_CALLBACK (gimp_layer_tree_view_layer_mode_box_callback),
+                    view);
 
-  gimp_help_set_help_data (view->priv->paint_mode_menu, NULL,
+  gimp_help_set_help_data (view->priv->layer_mode_box, NULL,
                            GIMP_HELP_LAYER_DIALOG_PAINT_MODE_MENU);
 
   /*  Opacity scale  */
@@ -923,8 +923,9 @@ gimp_layer_tree_view_floating_selection_changed (GimpImage         *image,
 
 
 static void
-gimp_layer_tree_view_paint_mode_menu_callback (GtkWidget         *widget,
-                                               GimpLayerTreeView *view)
+gimp_layer_tree_view_layer_mode_box_callback (GtkWidget         *widget,
+                                              const GParamSpec  *pspec,
+                                              GimpLayerTreeView *view)
 {
   GimpImage *image;
   GimpLayer *layer = NULL;
@@ -937,11 +938,10 @@ gimp_layer_tree_view_paint_mode_menu_callback (GtkWidget         *widget,
 
   if (layer)
     {
-      gint mode;
+      GimpLayerMode mode =
+        gimp_layer_mode_box_get_mode (GIMP_LAYER_MODE_BOX (widget));
 
-      if (gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget),
-                                         &mode) &&
-          gimp_layer_get_mode (layer) != (GimpLayerMode) mode)
+      if (gimp_layer_get_mode (layer) != mode)
         {
           GimpUndo *undo;
           gboolean  push_undo = TRUE;
@@ -1073,14 +1073,14 @@ static void
 gimp_layer_tree_view_update_options (GimpLayerTreeView *view,
                                      GimpLayer         *layer)
 {
-  BLOCK (view->priv->paint_mode_menu,
-         gimp_layer_tree_view_paint_mode_menu_callback);
+  BLOCK (view->priv->layer_mode_box,
+         gimp_layer_tree_view_layer_mode_box_callback);
 
-  gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (view->priv->paint_mode_menu),
-                                 gimp_layer_get_mode (layer));
+  gimp_layer_mode_box_set_mode (GIMP_LAYER_MODE_BOX (view->priv->layer_mode_box),
+                                gimp_layer_get_mode (layer));
 
-  UNBLOCK (view->priv->paint_mode_menu,
-           gimp_layer_tree_view_paint_mode_menu_callback);
+  UNBLOCK (view->priv->layer_mode_box,
+           gimp_layer_tree_view_layer_mode_box_callback);
 
   if (gimp_layer_get_lock_alpha (layer) !=
       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view->priv->lock_alpha_toggle)))
diff --git a/app/widgets/gimppropwidgets.c b/app/widgets/gimppropwidgets.c
index 3023ac0..1a90c55 100644
--- a/app/widgets/gimppropwidgets.c
+++ b/app/widgets/gimppropwidgets.c
@@ -45,12 +45,12 @@
 #include "gimpiconpicker.h"
 #include "gimplanguagecombobox.h"
 #include "gimplanguageentry.h"
+#include "gimplayermodebox.h"
 #include "gimpscalebutton.h"
 #include "gimpspinscale.h"
 #include "gimpview.h"
 #include "gimppolar.h"
 #include "gimppropwidgets.h"
-#include "gimpwidgets-constructors.h"
 #include "gimpwidgets-utils.h"
 
 #include "gimp-intl.h"
@@ -142,106 +142,47 @@ gimp_prop_expanding_frame_new (GObject      *config,
 }
 
 
-/*********************/
-/*  paint mode menu  */
-/*********************/
-
-static void   gimp_prop_paint_menu_callback (GtkWidget   *widget,
-                                             GObject     *config);
-static void   gimp_prop_paint_menu_notify   (GObject     *config,
-                                             GParamSpec  *param_spec,
-                                             GtkWidget   *menu);
+/********************/
+/*  layer mode box  */
+/********************/
 
 /**
- * gimp_prop_paint_mode_menu_new:
+ * gimp_prop_layer_mode_box_new:
  * @config:             #GimpConfig object to which property is attached.
  * @property_name:      Name of Enum property.
  * @with_behind_mode:   Whether to include "Behind" mode in the menu.
  * @with_replace_modes: Whether to include the "Replace", "Erase" and
  *                      "Anti Erase" modes in the menu.
  *
- * Creates a #GimpPaintModeMenu widget to display and set the specified
- * Enum property, for which the enum must be #GimpLayerModeEffects.
+ * Creates a #GimpLayerModeBox widget to display and set the specified
+ * Enum property, for which the enum must be #GimpLayerMode.
  *
- * Return value: The newly created #GimpPaintModeMenu widget.
+ * Return value: The newly created #GimpLayerModeBox widget.
  *
  * Since GIMP 2.4
  */
 GtkWidget *
-gimp_prop_paint_mode_menu_new (GObject     *config,
-                               const gchar *property_name,
-                               gboolean     with_behind_mode,
-                               gboolean     with_replace_modes)
+gimp_prop_layer_mode_box_new (GObject     *config,
+                              const gchar *property_name,
+                              gboolean     with_behind_mode,
+                              gboolean     with_replace_modes)
 {
   GParamSpec *param_spec;
-  GtkWidget  *menu;
-  gint        value;
+  GtkWidget  *box;
 
   param_spec = check_param_spec_w (config, property_name,
                                    G_TYPE_PARAM_ENUM, G_STRFUNC);
   if (! param_spec)
     return NULL;
 
-  g_object_get (config,
-                property_name, &value,
-                NULL);
-
-  menu = gimp_paint_mode_menu_new (with_behind_mode, with_replace_modes);
-
-  gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (menu),
-                              value,
-                              G_CALLBACK (gimp_prop_paint_menu_callback),
-                              config);
-
-  set_param_spec (G_OBJECT (menu), menu, param_spec);
-
-  connect_notify (config, property_name,
-                  G_CALLBACK (gimp_prop_paint_menu_notify),
-                  menu);
-
-  return menu;
-}
-
-static void
-gimp_prop_paint_menu_callback (GtkWidget *widget,
-                               GObject   *config)
-{
-  GParamSpec *param_spec;
-  gint        value;
-
-  param_spec = get_param_spec (G_OBJECT (widget));
-  if (! param_spec)
-    return;
-
-  if (gimp_int_combo_box_get_active (GIMP_INT_COMBO_BOX (widget), &value))
-    {
-      g_object_set (config,
-                    param_spec->name, value,
-                    NULL);
-    }
-}
-
-static void
-gimp_prop_paint_menu_notify (GObject    *config,
-                             GParamSpec *param_spec,
-                             GtkWidget  *menu)
-{
-  gint value;
+  box = gimp_layer_mode_box_new (with_behind_mode, with_replace_modes);
 
-  g_object_get (config,
-                param_spec->name, &value,
-                NULL);
-
-  g_signal_handlers_block_by_func (menu,
-                                   gimp_prop_paint_menu_callback,
-                                   config);
-
-  gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (menu), value);
-
-  g_signal_handlers_unblock_by_func (menu,
-                                     gimp_prop_paint_menu_callback,
-                                     config);
+  g_object_bind_property (config,          property_name,
+                          G_OBJECT (box), "layer-mode",
+                          G_BINDING_BIDIRECTIONAL |
+                          G_BINDING_SYNC_CREATE);
 
+  return box;
 }
 
 
diff --git a/app/widgets/gimppropwidgets.h b/app/widgets/gimppropwidgets.h
index 8592ffa..f29e572 100644
--- a/app/widgets/gimppropwidgets.h
+++ b/app/widgets/gimppropwidgets.h
@@ -33,7 +33,7 @@ GtkWidget * gimp_prop_expanding_frame_new   (GObject       *config,
 
 /*  GParamEnum  */
 
-GtkWidget * gimp_prop_paint_mode_menu_new   (GObject       *config,
+GtkWidget * gimp_prop_layer_mode_box_new    (GObject       *config,
                                              const gchar   *property_name,
                                              gboolean       with_behind_mode,
                                              gboolean       with_replace_modes);
diff --git a/app/widgets/gimpwidgets-constructors.c b/app/widgets/gimpwidgets-constructors.c
index 019605e..7dd6ea7 100644
--- a/app/widgets/gimpwidgets-constructors.c
+++ b/app/widgets/gimpwidgets-constructors.c
@@ -31,188 +31,8 @@
 #include "gimp-intl.h"
 
 
-/*  local function prototypes  */
-
-static gboolean   gimp_paint_mode_menu_separator_func (GtkTreeModel *model,
-                                                       GtkTreeIter  *iter,
-                                                       gpointer      data);
-
-
 /*  public functions  */
 
-static void
-gimp_enum_store_insert_value_after (GimpEnumStore *store,
-                                    gint           after,
-                                    gint           insert_value)
-{
-  GtkTreeIter iter;
-
-  g_return_if_fail (GIMP_IS_ENUM_STORE (store));
-
-  if (gimp_int_store_lookup_by_value (GTK_TREE_MODEL (store),
-                                      after, &iter))
-    {
-      GEnumValue *enum_value;
-
-      enum_value = g_enum_get_value (store->enum_class, insert_value);
-
-      if (enum_value)
-        {
-          GtkTreeIter  value_iter;
-          const gchar *desc;
-
-          gtk_list_store_insert_after (GTK_LIST_STORE (store),
-                                       &value_iter, &iter);
-
-          desc = gimp_enum_value_get_desc (store->enum_class, enum_value);
-
-          gtk_list_store_set (GTK_LIST_STORE (store), &value_iter,
-                              GIMP_INT_STORE_VALUE, enum_value->value,
-                              GIMP_INT_STORE_LABEL, desc,
-                              -1);
-        }
-    }
-}
-
-static void
-gimp_int_store_insert_separator_after (GimpIntStore *store,
-                                       gint          after,
-                                       gint          separator_value)
-{
-  GtkTreeIter iter;
-
-  g_return_if_fail (GIMP_IS_INT_STORE (store));
-
-  if (gimp_int_store_lookup_by_value (GTK_TREE_MODEL (store),
-                                      after, &iter))
-    {
-      GtkTreeIter sep_iter;
-
-      gtk_list_store_insert_after (GTK_LIST_STORE (store),
-                                   &sep_iter, &iter);
-      gtk_list_store_set (GTK_LIST_STORE (store), &sep_iter,
-                          GIMP_INT_STORE_VALUE, separator_value,
-                          -1);
-    }
-}
-
-GtkWidget *
-gimp_paint_mode_menu_new (gboolean with_behind_mode,
-                          gboolean with_replace_modes)
-{
-  GtkListStore *store;
-  GtkWidget    *combo;
-
-  store = gimp_enum_store_new_with_values (GIMP_TYPE_LAYER_MODE,
-                                           47,
-                                           GIMP_LAYER_MODE_NORMAL,
-                                           GIMP_LAYER_MODE_NORMAL_LINEAR,
-                                           GIMP_LAYER_MODE_DISSOLVE,
-                                           GIMP_LAYER_MODE_LIGHTEN_ONLY,
-                                           GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY,
-                                           GIMP_LAYER_MODE_LUMINANCE_LIGHTEN_ONLY,
-                                           GIMP_LAYER_MODE_SCREEN,
-                                           GIMP_LAYER_MODE_SCREEN_LEGACY,
-                                           GIMP_LAYER_MODE_DODGE,
-                                           GIMP_LAYER_MODE_DODGE_LEGACY,
-                                           GIMP_LAYER_MODE_ADDITION,
-                                           GIMP_LAYER_MODE_ADDITION_LEGACY,
-                                           GIMP_LAYER_MODE_DARKEN_ONLY,
-                                           GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY,
-                                           GIMP_LAYER_MODE_LUMINANCE_DARKEN_ONLY,
-                                           GIMP_LAYER_MODE_MULTIPLY,
-                                           GIMP_LAYER_MODE_MULTIPLY_LINEAR,
-                                           GIMP_LAYER_MODE_MULTIPLY_LEGACY,
-                                           GIMP_LAYER_MODE_BURN,
-                                           GIMP_LAYER_MODE_BURN_LEGACY,
-                                           GIMP_LAYER_MODE_LINEAR_BURN,
-                                           GIMP_LAYER_MODE_OVERLAY,
-                                           GIMP_LAYER_MODE_SOFTLIGHT,
-                                           GIMP_LAYER_MODE_SOFTLIGHT_LEGACY,
-                                           GIMP_LAYER_MODE_HARDLIGHT,
-                                           GIMP_LAYER_MODE_HARDLIGHT_LEGACY,
-                                           GIMP_LAYER_MODE_VIVID_LIGHT,
-                                           GIMP_LAYER_MODE_PIN_LIGHT,
-                                           GIMP_LAYER_MODE_LINEAR_LIGHT,
-                                           GIMP_LAYER_MODE_DIFFERENCE,
-                                           GIMP_LAYER_MODE_DIFFERENCE_LEGACY,
-                                           GIMP_LAYER_MODE_SUBTRACT,
-                                           GIMP_LAYER_MODE_SUBTRACT_LEGACY,
-                                           GIMP_LAYER_MODE_EXCLUSION,
-                                           GIMP_LAYER_MODE_GRAIN_EXTRACT,
-                                           GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY,
-                                           GIMP_LAYER_MODE_GRAIN_MERGE,
-                                           GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY,
-                                           GIMP_LAYER_MODE_DIVIDE,
-                                           GIMP_LAYER_MODE_DIVIDE_LEGACY,
-                                           GIMP_LAYER_MODE_HSV_HUE,
-                                           GIMP_LAYER_MODE_HSV_SATURATION,
-                                           GIMP_LAYER_MODE_HSV_COLOR,
-                                           GIMP_LAYER_MODE_HSV_VALUE,
-                                           GIMP_LAYER_MODE_HSV_HUE_LEGACY,
-                                           GIMP_LAYER_MODE_HSV_SATURATION_LEGACY,
-                                           GIMP_LAYER_MODE_HSV_COLOR_LEGACY,
-                                           GIMP_LAYER_MODE_HSV_VALUE_LEGACY,
-                                           GIMP_LAYER_MODE_LCH_HUE,
-                                           GIMP_LAYER_MODE_LCH_CHROMA,
-                                           GIMP_LAYER_MODE_LCH_COLOR,
-                                           GIMP_LAYER_MODE_LCH_LIGHTNESS);
-
-  gimp_int_store_insert_separator_after (GIMP_INT_STORE (store),
-                                         GIMP_LAYER_MODE_DISSOLVE, -1);
-
-  gimp_int_store_insert_separator_after (GIMP_INT_STORE (store),
-                                         GIMP_LAYER_MODE_ADDITION_LEGACY, -1);
-
-  gimp_int_store_insert_separator_after (GIMP_INT_STORE (store),
-                                         GIMP_LAYER_MODE_LINEAR_BURN, -1);
-
-  gimp_int_store_insert_separator_after (GIMP_INT_STORE (store),
-                                         GIMP_LAYER_MODE_LINEAR_LIGHT, -1);
-
-  gimp_int_store_insert_separator_after (GIMP_INT_STORE (store),
-                                         GIMP_LAYER_MODE_DIVIDE_LEGACY, -1);
-
-  gimp_int_store_insert_separator_after (GIMP_INT_STORE (store),
-                                         GIMP_LAYER_MODE_HSV_VALUE_LEGACY, -1);
-
-  if (with_behind_mode)
-    {
-      gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store),
-                                          GIMP_LAYER_MODE_DISSOLVE,
-                                          GIMP_LAYER_MODE_BEHIND);
-      gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store),
-                                          GIMP_LAYER_MODE_BEHIND,
-                                          GIMP_LAYER_MODE_BEHIND_LINEAR);
-      gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store),
-                                          GIMP_LAYER_MODE_BEHIND_LINEAR,
-                                          GIMP_LAYER_MODE_COLOR_ERASE);
-    }
-
-  if (with_replace_modes)
-    {
-      gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store),
-                                          GIMP_LAYER_MODE_NORMAL_LINEAR,
-                                          GIMP_LAYER_MODE_REPLACE);
-      gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store),
-                                          GIMP_LAYER_MODE_COLOR_ERASE,
-                                          GIMP_LAYER_MODE_ERASE);
-      gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store),
-                                          GIMP_LAYER_MODE_ERASE,
-                                          GIMP_LAYER_MODE_ANTI_ERASE);
-    }
-
-  combo = gimp_enum_combo_box_new_with_model (GIMP_ENUM_STORE (store));
-  g_object_unref (store);
-
-  gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo),
-                                        gimp_paint_mode_menu_separator_func,
-                                        GINT_TO_POINTER (-1),
-                                        NULL);
-
-  return combo;
-}
-
 GtkWidget *
 gimp_icon_button_new (const gchar *icon_name,
                       const gchar *label)
@@ -281,18 +101,3 @@ gimp_color_profile_label_new (GimpColorProfile *profile)
 
   return expander;
 }
-
-
-/*  private functions  */
-
-static gboolean
-gimp_paint_mode_menu_separator_func (GtkTreeModel *model,
-                                     GtkTreeIter  *iter,
-                                     gpointer      data)
-{
-  gint value;
-
-  gtk_tree_model_get (model, iter, GIMP_INT_STORE_VALUE, &value, -1);
-
-  return value == GPOINTER_TO_INT (data);
-}
diff --git a/app/widgets/gimpwidgets-constructors.h b/app/widgets/gimpwidgets-constructors.h
index 1ff3db6..e2a3b79 100644
--- a/app/widgets/gimpwidgets-constructors.h
+++ b/app/widgets/gimpwidgets-constructors.h
@@ -19,9 +19,6 @@
 #define __GIMP_WIDGETS_CONSTRUCTORS_H__
 
 
-GtkWidget * gimp_paint_mode_menu_new     (gboolean          with_behind_mode,
-                                          gboolean          with_replace_modes);
-
 GtkWidget * gimp_icon_button_new         (const gchar      *icon_name,
                                           const gchar      *label);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]