mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-21 03:52:33 +00:00
made non-abstract.
2006-11-03 Sven Neumann <sven@gimp.org> * app/widgets/gimpimageparasiteview.[ch]: made non-abstract. * app/dialogs/image-properties-dialog.c: show a "Comment" tab if the image contains a "gimp-comment" parasite.
This commit is contained in:
parent
4f4dea5645
commit
568bbb9558
|
@ -1,3 +1,10 @@
|
|||
2006-11-03 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimpimageparasiteview.[ch]: made non-abstract.
|
||||
|
||||
* app/dialogs/image-properties-dialog.c: show a "Comment" tab if
|
||||
the image contains a "gimp-comment" parasite.
|
||||
|
||||
2006-11-03 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/Makefile.am
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
#include "libgimpwidgets/gimpwidgets.h"
|
||||
|
||||
#include "dialogs-types.h"
|
||||
|
@ -40,6 +41,10 @@
|
|||
#include "gimp-intl.h"
|
||||
|
||||
|
||||
static void image_comment_update (GtkWidget *page,
|
||||
GtkWidget *label);
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
GtkWidget *
|
||||
|
@ -50,6 +55,7 @@ image_properties_dialog_new (GimpImage *image,
|
|||
GtkWidget *dialog;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *view;
|
||||
GtkWidget *label;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
|
||||
|
@ -91,5 +97,60 @@ image_properties_dialog_new (GimpImage *image,
|
|||
view, gtk_label_new (_("Color Profile")));
|
||||
gtk_widget_show (view);
|
||||
|
||||
view = gimp_image_parasite_view_new (image, "gimp-comment");
|
||||
gtk_container_set_border_width (GTK_CONTAINER (view), 12);
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
|
||||
view, gtk_label_new (_("Comment")));
|
||||
|
||||
label = g_object_new (GTK_TYPE_LABEL,
|
||||
"wrap", TRUE,
|
||||
"justify", GTK_JUSTIFY_LEFT,
|
||||
"xalign", 0.0,
|
||||
"yalign", 0.0,
|
||||
"selectable", TRUE,
|
||||
NULL);
|
||||
gtk_container_add (GTK_CONTAINER (view), label);
|
||||
gtk_widget_show (label);
|
||||
|
||||
g_signal_connect (view, "update",
|
||||
G_CALLBACK (image_comment_update),
|
||||
label);
|
||||
|
||||
image_comment_update (view, label);
|
||||
|
||||
return dialog;
|
||||
}
|
||||
|
||||
static void
|
||||
image_comment_update (GtkWidget *page,
|
||||
GtkWidget *label)
|
||||
{
|
||||
GimpImageParasiteView *view = GIMP_IMAGE_PARASITE_VIEW (page);
|
||||
const GimpParasite *parasite;
|
||||
|
||||
parasite = gimp_image_parasite_view_get_parasite (view);
|
||||
|
||||
if (parasite)
|
||||
{
|
||||
gchar *text = g_strndup (gimp_parasite_data (parasite),
|
||||
gimp_parasite_data_size (parasite));
|
||||
|
||||
if (g_utf8_validate (text, -1, NULL))
|
||||
{
|
||||
gtk_label_set_text (GTK_LABEL (label), text);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_label_set_text (GTK_LABEL (label), _("(invalid UTF-8 string)"));
|
||||
}
|
||||
|
||||
g_free (text);
|
||||
|
||||
gtk_widget_show (page);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_hide (page);
|
||||
gtk_label_set_text (GTK_LABEL (label), NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_PARASITE,
|
||||
PROP_IMAGE
|
||||
PROP_IMAGE,
|
||||
PROP_PARASITE
|
||||
};
|
||||
|
||||
enum
|
||||
|
@ -97,16 +97,16 @@ gimp_image_parasite_view_class_init (GimpImageParasiteViewClass *klass)
|
|||
|
||||
klass->update = NULL;
|
||||
|
||||
g_object_class_install_property (object_class, PROP_PARASITE,
|
||||
g_param_spec_string ("parasite", NULL, NULL,
|
||||
NULL,
|
||||
GIMP_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
g_object_class_install_property (object_class, PROP_IMAGE,
|
||||
g_param_spec_object ("image", NULL, NULL,
|
||||
GIMP_TYPE_IMAGE,
|
||||
GIMP_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
g_object_class_install_property (object_class, PROP_PARASITE,
|
||||
g_param_spec_string ("parasite", NULL, NULL,
|
||||
NULL,
|
||||
GIMP_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -125,12 +125,12 @@ gimp_image_parasite_view_set_property (GObject *object,
|
|||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_PARASITE:
|
||||
view->parasite = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_IMAGE:
|
||||
view->image = GIMP_IMAGE (g_value_get_object (value));
|
||||
break;
|
||||
case PROP_PARASITE:
|
||||
view->parasite = g_value_dup_string (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -147,12 +147,12 @@ gimp_image_parasite_view_get_property (GObject *object,
|
|||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_PARASITE:
|
||||
g_value_set_string (value, view->parasite);
|
||||
break;
|
||||
case PROP_IMAGE:
|
||||
g_value_set_object (value, view->image);
|
||||
break;
|
||||
case PROP_PARASITE:
|
||||
g_value_set_string (value, view->parasite);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -203,6 +203,20 @@ gimp_image_parasite_view_finalize (GObject *object)
|
|||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
gimp_image_parasite_view_new (GimpImage *image,
|
||||
const gchar *parasite)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
g_return_val_if_fail (parasite != NULL, NULL);
|
||||
|
||||
return g_object_new (GIMP_TYPE_IMAGE_PARASITE_VIEW,
|
||||
"image", image,
|
||||
"parasite", parasite,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
GimpImage *
|
||||
gimp_image_parasite_view_get_image (GimpImageParasiteView *view)
|
||||
{
|
||||
|
@ -211,6 +225,14 @@ gimp_image_parasite_view_get_image (GimpImageParasiteView *view)
|
|||
return view->image;
|
||||
}
|
||||
|
||||
const GimpParasite *
|
||||
gimp_image_parasite_view_get_parasite (GimpImageParasiteView *view)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE_PARASITE_VIEW (view), NULL);
|
||||
|
||||
return gimp_image_parasite_find (view->image, view->parasite);
|
||||
}
|
||||
|
||||
|
||||
/* private functions */
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@ struct _GimpImageParasiteView
|
|||
{
|
||||
GtkVBox parent_instance;
|
||||
|
||||
gchar *parasite;
|
||||
GimpImage *image;
|
||||
gchar *parasite;
|
||||
};
|
||||
|
||||
struct _GimpImageParasiteViewClass
|
||||
|
@ -53,9 +53,12 @@ struct _GimpImageParasiteViewClass
|
|||
};
|
||||
|
||||
|
||||
GType gimp_image_parasite_view_get_type (void) G_GNUC_CONST;
|
||||
GType gimp_image_parasite_view_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GimpImage * gimp_image_parasite_view_get_image (GimpImageParasiteView *view);
|
||||
GtkWidget * gimp_image_parasite_view_new (GimpImage *image,
|
||||
const gchar *parasite);
|
||||
GimpImage * gimp_image_parasite_view_get_image (GimpImageParasiteView *view);
|
||||
const GimpParasite * gimp_image_parasite_view_get_parasite (GimpImageParasiteView *view);
|
||||
|
||||
|
||||
#endif /* __GIMP_IMAGE_PARASITE_VIEW_H__ */
|
||||
|
|
|
@ -120,8 +120,8 @@ gimp_image_profile_view_new (GimpImage *image)
|
|||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
return g_object_new (GIMP_TYPE_IMAGE_PROFILE_VIEW,
|
||||
"parasite", "icc-profile",
|
||||
"image", image,
|
||||
"parasite", "icc-profile",
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue