diff options
Diffstat (limited to 'eel/eel-labeled-image.h')
-rw-r--r-- | eel/eel-labeled-image.h | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/eel/eel-labeled-image.h b/eel/eel-labeled-image.h new file mode 100644 index 000000000..61dbd043d --- /dev/null +++ b/eel/eel-labeled-image.h @@ -0,0 +1,156 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ + +/* eel-labeled-image.h - A labeled image. + + Copyright (C) 2000 Eazel, Inc. + + The Gnome Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The Gnome Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the Gnome Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + Authors: Ramiro Estrugo <ramiro@eazel.com> +*/ + +/* EelLabeledImage is a container widget. It can only contain internal + * widgets. These internal widgets are can be a EelLabel and/or a + * EelImage. These internal widgets are created as needed. That means + * that EelLabeledImage can always be used for "free" instead of a + * EelLabel or EelImage. The only overhead is that of the GtkObject + * machinery. + * + * The position of the label with respect to the image is controlled by the + * 'label_positon' attribute. + * + * By default the internal image and label widgets are sized to their natural + * preferred geometry. You can use the 'fill' attribute of LabeledImage + * to have the internal widgets fill as much of the LabeledImage allocation + * as is available. + * + * LabeledImage also has x_padding/y_padding and x_alignment/y_alignment + * attributes that behave exaclty as those in the GtkMisc class. + * + * Note that the alignments are ignored if the fill attribute is TRUE. + */ + +#ifndef EEL_LABELED_IMAGE_H +#define EEL_LABELED_IMAGE_H + +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gtk/gtk.h> +#include <eel/eel-art-extensions.h> + +G_BEGIN_DECLS + +#define EEL_TYPE_LABELED_IMAGE (eel_labeled_image_get_type ()) +#define EEL_LABELED_IMAGE(obj) (GTK_CHECK_CAST ((obj), EEL_TYPE_LABELED_IMAGE, EelLabeledImage)) +#define EEL_LABELED_IMAGE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EEL_TYPE_LABELED_IMAGE, EelLabeledImageClass)) +#define EEL_IS_LABELED_IMAGE(obj) (GTK_CHECK_TYPE ((obj), EEL_TYPE_LABELED_IMAGE)) +#define EEL_IS_LABELED_IMAGE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), EEL_TYPE_LABELED_IMAGE)) + +typedef struct EelLabeledImage EelLabeledImage; +typedef struct EelLabeledImageClass EelLabeledImageClass; +typedef struct EelLabeledImageDetails EelLabeledImageDetails; + +struct EelLabeledImage +{ + /* Superclass */ + GtkContainer container; + + /* Private things */ + EelLabeledImageDetails *details; +}; + +struct EelLabeledImageClass +{ + GtkContainerClass parent_class; + + void (*activate) (EelLabeledImage *image); +}; + +/* Public GtkLabeledImage methods */ +GtkType eel_labeled_image_get_type (void); +GtkWidget * eel_labeled_image_new (const char *text, + GdkPixbuf *pixbuf); +GtkWidget * eel_labeled_image_new_from_file_name (const char *text, + const char *pixbuf_file_name); +void eel_labeled_image_set_label_position (EelLabeledImage *labeled_image, + GtkPositionType label_position); +GtkPositionType eel_labeled_image_get_label_position (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_show_label (EelLabeledImage *labeled_image, + gboolean show_label); +gboolean eel_labeled_image_get_show_label (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_show_image (EelLabeledImage *labeled_image, + gboolean show_image); +gboolean eel_labeled_image_get_show_image (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_can_focus (EelLabeledImage *labeled_image, + gboolean can_focus); +void eel_labeled_image_set_spacing (EelLabeledImage *labeled_image, + guint spacing); +guint eel_labeled_image_get_spacing (const EelLabeledImage *labeled_image); +int eel_labeled_image_get_x_padding (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_x_padding (EelLabeledImage *labeled_image, + int x_padding); +int eel_labeled_image_get_y_padding (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_y_padding (EelLabeledImage *labeled_image, + int y_padding); +float eel_labeled_image_get_x_alignment (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_x_alignment (EelLabeledImage *labeled_image, + float x_alignment); +float eel_labeled_image_get_y_alignment (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_y_alignment (EelLabeledImage *labeled_image, + float y_alignment); +void eel_labeled_image_set_fill (EelLabeledImage *labeled_image, + gboolean fill); +gboolean eel_labeled_image_get_fill (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_fixed_image_height (EelLabeledImage *labeled_image, + int fixed_image_height); +void eel_labeled_image_set_selected (EelLabeledImage *labeled_image, + gboolean selected); +gboolean eel_labeled_image_get_selected (EelLabeledImage *labeled_image); + +/* Functions for creating stock GtkButtons with a labeled image child */ +GtkWidget * eel_labeled_image_button_new (const char *text, + GdkPixbuf *pixbuf); +GtkWidget * eel_labeled_image_button_new_from_file_name (const char *text, + const char *pixbuf_file_name); +GtkWidget * eel_labeled_image_toggle_button_new (const char *text, + GdkPixbuf *pixbuf); +GtkWidget * eel_labeled_image_toggle_button_new_from_file_name (const char *text, + const char *pixbuf_file_name); +GtkWidget * eel_labeled_image_check_button_new (const char *text, + GdkPixbuf *pixbuf); +GtkWidget * eel_labeled_image_check_button_new_from_file_name (const char *text, + const char *pixbuf_file_name); +GtkWidget * eel_labeled_image_radio_button_new (const char *text, + GdkPixbuf *pixbuf); +GtkWidget * eel_labeled_image_radio_button_new_from_file_name (const char *text, + const char *pixbuf_file_name); + +/* These are proxies for methods in EelImage and EelLabel */ +void eel_labeled_image_set_pixbuf (EelLabeledImage *labeled_image, + GdkPixbuf *pixbuf); +void eel_labeled_image_set_pixbuf_from_file_name (EelLabeledImage *labeled_image, + const char *pixbuf_file_name); +GdkPixbuf* eel_labeled_image_get_pixbuf (const EelLabeledImage *labeled_image); +void eel_labeled_image_set_text (EelLabeledImage *labeled_image, + const char *text); +char* eel_labeled_image_get_text (const EelLabeledImage *labeled_image); +EelIRect eel_labeled_image_get_image_bounds (const EelLabeledImage *labeled_image); +EelIRect eel_labeled_image_get_label_bounds (const EelLabeledImage *labeled_image); + +G_END_DECLS + +#endif /* EEL_LABELED_IMAGE_H */ + + |