mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-09-12 20:41:34 +00:00
157 lines
8.5 KiB
C
157 lines
8.5 KiB
C
|
/* -*- 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 */
|
||
|
|
||
|
|