/* LIBGIMP - The GIMP Library * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball * * gimpwidgets.h * Copyright (C) 2000 Michael Natterer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __GIMP_WIDGETS_H__ #define __GIMP_WIDGETS_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* For information look into the C source or the html documentation */ /* * Widget Constructors */ GtkWidget * gimp_option_menu_new (gboolean menu_only, /* specify menu items as va_list: * gchar *label, * GCallback callback, * gpointer data, * gpointer user_data, * GtkWidget **widget_ptr, * gboolean active */ ...); GtkWidget * gimp_option_menu_new2 (gboolean menu_only, GCallback menu_item_callback, gpointer data, gpointer initial, /* user_data */ /* specify menu items as va_list: * gchar *label, * gpointer user_data, * GtkWidget **widget_ptr, */ ...); void gimp_option_menu_set_history (GtkOptionMenu *option_menu, gpointer user_data); GtkWidget * gimp_radio_group_new (gboolean in_frame, const gchar *frame_title, /* specify radio buttons as va_list: * const gchar *label, * GCallback callback, * gpointer data, * gpointer user_data, * GtkWidget **widget_ptr, * gboolean active, */ ...); GtkWidget * gimp_radio_group_new2 (gboolean in_frame, const gchar *frame_title, GCallback radio_button_callback, gpointer data, gpointer initial, /* user_data */ /* specify radio buttons as va_list: * const gchar *label, * gpointer user_data, * GtkWidget **widget_ptr, */ ...); GtkWidget * gimp_spin_button_new (/* return value: */ GtkObject **adjustment, gfloat value, gfloat lower, gfloat upper, gfloat step_increment, gfloat page_increment, gfloat page_size, gfloat climb_rate, guint digits); #define GIMP_SCALE_ENTRY_LABEL(adj) \ GTK_LABEL (gtk_object_get_data (GTK_OBJECT(adj), "label")) #define GIMP_SCALE_ENTRY_SCALE(adj) \ GTK_HSCALE (gtk_object_get_data (GTK_OBJECT(adj), "scale")) #define GIMP_SCALE_ENTRY_SCALE_ADJ(adj) \ gtk_range_get_adjustment \ (GTK_RANGE (gtk_object_get_data (GTK_OBJECT (adj), "scale"))) #define GIMP_SCALE_ENTRY_SPINBUTTON(adj) \ GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (adj), "spinbutton")) #define GIMP_SCALE_ENTRY_SPINBUTTON_ADJ(adj) \ gtk_spin_button_get_adjustment \ (GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (adj), "spinbutton"))) GtkObject * gimp_scale_entry_new (GtkTable *table, gint column, gint row, const gchar *text, gint scale_usize, gint spinbutton_usize, gfloat value, gfloat lower, gfloat upper, gfloat step_increment, gfloat page_increment, guint digits, gboolean constrain, gfloat unconstrained_lower, gfloat unconstrained_upper, const gchar *tooltip, const gchar *help_data); #define GIMP_RANDOM_SEED_SPINBUTTON(hbox) \ GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT( hbox), "spinbutton")) #define GIMP_RANDOM_SEED_SPINBUTTON_ADJ(hbox) \ gtk_spin_button_get_adjustment \ (GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (hbox), "spinbutton"))) #define GIMP_RANDOM_SEED_TOGGLEBUTTON(hbox) \ GTK_TOGGLE_BUTTON (gtk_object_get_data (GTK_OBJECT (hbox), \ "togglebutton")) GtkWidget * gimp_random_seed_new (gint *seed, gint *use_time, gint time_true, gint time_false); #define GIMP_COORDINATES_CHAINBUTTON(sizeentry) \ GIMP_CHAIN_BUTTON (gtk_object_get_data (GTK_OBJECT (sizeentry), \ "chainbutton")) GtkWidget * gimp_coordinates_new (GimpUnit unit, const gchar *unit_format, gboolean menu_show_pixels, gboolean menu_show_percent, gint spinbutton_usize, GimpSizeEntryUpdatePolicy update_policy, gboolean chainbutton_active, gboolean chain_constrains_ratio, const gchar *xlabel, gdouble x, gdouble xres, gdouble lower_boundary_x, gdouble upper_boundary_x, gdouble xsize_0, /* % */ gdouble xsize_100, /* % */ const gchar *ylabel, gdouble y, gdouble yres, gdouble lower_boundary_y, gdouble upper_boundary_y, gdouble ysize_0, /* % */ gdouble ysize_100 /* % */); #define GIMP_MEM_SIZE_ENTRY_SPINBUTTON(memsize) \ GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (memsize), \ "spinbutton")) #define GIMP_MEM_SIZE_ENTRY_SPINBUTTON_ADJ(memsize) \ gtk_spin_button_get_adjustment \ (GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (memsize), \ "spinbutton"))) #define GIMP_MEM_SIZE_ENTRY_OPTIONMENU(memsize) \ GTK_OPTION_MENU (gtk_object_get_data (GTK_OBJECT (memsize), \ "optionmenu")) GtkWidget * gimp_mem_size_entry_new (GtkAdjustment *adjustment); GtkWidget * gimp_pixmap_button_new (gchar **xpm_data, const gchar *text); /* * Standard Callbacks */ void gimp_toggle_button_sensitive_update (GtkToggleButton *toggle_button); void gimp_toggle_button_update (GtkWidget *widget, gpointer data); void gimp_radio_button_update (GtkWidget *widget, gpointer data); void gimp_menu_item_update (GtkWidget *widget, gpointer data); void gimp_int_adjustment_update (GtkAdjustment *adjustment, gpointer data); void gimp_uint_adjustment_update (GtkAdjustment *adjustment, gpointer data); void gimp_float_adjustment_update (GtkAdjustment *adjustment, gpointer data); void gimp_double_adjustment_update (GtkAdjustment *adjustment, gpointer data); void gimp_unit_menu_update (GtkWidget *widget, gpointer data); /* * Helper Functions */ void gimp_table_attach_aligned (GtkTable *table, gint column, gint row, const gchar *label_text, gfloat xalign, gfloat yalign, GtkWidget *widget, gint colspan, gboolean left_align); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __GIMP_WIDGETS_H__ */