libgimpwidgets: merge some GimpColorButton API from gtk3-port

This commit is contained in:
Michael Natterer
2016-09-07 02:22:57 +02:00
parent 308efbb514
commit f91a19b1ef
4 changed files with 118 additions and 25 deletions

View File

@ -27,6 +27,7 @@
#include <gtk/gtk.h>
#include "libgimpcolor/gimpcolor.h"
#include "libgimpconfig/gimpconfig.h"
#include "gimpwidgetstypes.h"
@ -228,7 +229,7 @@ gimp_color_button_class_init (GimpColorButtonClass *klass)
g_param_spec_string ("title", NULL, NULL,
NULL,
GIMP_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
G_PARAM_CONSTRUCT));
/**
* GimpColorButton:color:
*
@ -449,8 +450,7 @@ gimp_color_button_set_property (GObject *object,
switch (property_id)
{
case PROP_TITLE:
g_free (button->title);
button->title = g_value_dup_string (value);
gimp_color_button_set_title (button, g_value_get_string (value));
break;
case PROP_COLOR:
@ -640,6 +640,47 @@ gimp_color_button_new (const gchar *title,
NULL);
}
/**
* gimp_color_button_set_title:
* @button: a #GimpColorButton.
* @color: the new title.
*
* Sets the @button dialog's title.
*
* Since: GIMP 2.10
**/
void
gimp_color_button_set_title (GimpColorButton *button,
const gchar *title)
{
g_return_if_fail (GIMP_IS_COLOR_BUTTON (button));
g_return_if_fail (title != NULL);
g_free (button->title);
button->title = g_strdup (title);
if (button->dialog)
gtk_window_set_title (GTK_WINDOW (button->dialog), title);
g_object_notify (G_OBJECT (button), "title");
}
/**
* gimp_color_button_get_title:
* @button: a #GimpColorButton.
*
* Returns: The @button dialog's title.
*
* Since: GIMP 2.10
**/
const gchar *
gimp_color_button_get_title (GimpColorButton *button)
{
g_return_val_if_fail (GIMP_IS_COLOR_BUTTON (button), NULL);
return button->title;
}
/**
* gimp_color_button_set_color:
* @button: Pointer to a #GimpColorButton.
@ -770,6 +811,43 @@ gimp_color_button_set_update (GimpColorButton *button,
}
}
/**
* gimp_color_button_set_color_config:
* @button: a #GimpColorButton widget.
* @config: a #GimpColorConfig object.
*
* Sets the color management configuration to use with this color button's
* #GimpColorArea.
*
* Since: 2.10
*/
void
gimp_color_button_set_color_config (GimpColorButton *button,
GimpColorConfig *config)
{
g_return_if_fail (GIMP_IS_COLOR_BUTTON (button));
g_return_if_fail (config == NULL || GIMP_IS_COLOR_CONFIG (config));
gimp_color_area_set_color_config (GIMP_COLOR_AREA (button->color_area),
config);
}
/**
* gimp_color_button_get_ui_manager:
* @button: a #GimpColorButton.
*
* Returns: The @button's #GtkUIManager.
*
* Since: GIMP 2.10
**/
GtkUIManager *
gimp_color_button_get_ui_manager (GimpColorButton *button)
{
g_return_val_if_fail (GIMP_IS_COLOR_BUTTON (button), NULL);
return button->popup_menu;
}
/* private functions */

View File

@ -78,26 +78,35 @@ struct _GimpColorButtonClass
};
GType gimp_color_button_get_type (void) G_GNUC_CONST;
GType gimp_color_button_get_type (void) G_GNUC_CONST;
GtkWidget * gimp_color_button_new (const gchar *title,
gint width,
gint height,
const GimpRGB *color,
GimpColorAreaType type);
GtkWidget * gimp_color_button_new (const gchar *title,
gint width,
gint height,
const GimpRGB *color,
GimpColorAreaType type);
void gimp_color_button_set_color (GimpColorButton *button,
const GimpRGB *color);
void gimp_color_button_get_color (GimpColorButton *button,
GimpRGB *color);
void gimp_color_button_set_title (GimpColorButton *button,
const gchar *title);
const gchar * gimp_color_button_get_title (GimpColorButton *button);
gboolean gimp_color_button_has_alpha (GimpColorButton *button);
void gimp_color_button_set_type (GimpColorButton *button,
GimpColorAreaType type);
void gimp_color_button_set_color (GimpColorButton *button,
const GimpRGB *color);
void gimp_color_button_get_color (GimpColorButton *button,
GimpRGB *color);
gboolean gimp_color_button_get_update (GimpColorButton *button);
void gimp_color_button_set_update (GimpColorButton *button,
gboolean continuous);
gboolean gimp_color_button_has_alpha (GimpColorButton *button);
void gimp_color_button_set_type (GimpColorButton *button,
GimpColorAreaType type);
gboolean gimp_color_button_get_update (GimpColorButton *button);
void gimp_color_button_set_update (GimpColorButton *button,
gboolean continuous);
void gimp_color_button_set_color_config (GimpColorButton *button,
GimpColorConfig *config);
GtkUIManager * gimp_color_button_get_ui_manager (GimpColorButton *button);
G_END_DECLS

View File

@ -34,11 +34,15 @@ EXPORTS
gimp_color_area_set_type
gimp_color_area_type_get_type
gimp_color_button_get_color
gimp_color_button_get_title
gimp_color_button_get_type
gimp_color_button_get_ui_manager
gimp_color_button_get_update
gimp_color_button_has_alpha
gimp_color_button_new
gimp_color_button_set_color
gimp_color_button_set_color_config
gimp_color_button_set_title
gimp_color_button_set_type
gimp_color_button_set_update
gimp_color_display_changed