gimp r24887 - in trunk: . libgimpwidgets
- From: weskaggs svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r24887 - in trunk: . libgimpwidgets
- Date: Thu, 14 Feb 2008 17:02:48 +0000 (GMT)
Author: weskaggs
Date: Thu Feb 14 17:02:47 2008
New Revision: 24887
URL: http://svn.gnome.org/viewvc/gimp?rev=24887&view=rev
Log:
Bill Skaggs <weskaggs primate ucdavis edu>
Merged from weskaggs branch at Mitch's request. Will
need to update devel docs.
Place scale entry code into separate files, no
functional changes.
* libgimpwidgets/gimpscaleentry.c
* libgimpwidgets/gimpscaleentry.h: new files.
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgets.c
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/Makefile.am: changed accordingly.
Added:
trunk/libgimpwidgets/gimpscaleentry.c
- copied, changed from r24886, /branches/weskaggs/libgimpwidgets/gimpscaleentry.c
trunk/libgimpwidgets/gimpscaleentry.h
- copied unchanged from r24886, /branches/weskaggs/libgimpwidgets/gimpscaleentry.h
Modified:
trunk/ChangeLog
trunk/libgimpwidgets/Makefile.am
trunk/libgimpwidgets/gimpwidgets.c
trunk/libgimpwidgets/gimpwidgets.h
Modified: trunk/libgimpwidgets/Makefile.am
==============================================================================
--- trunk/libgimpwidgets/Makefile.am (original)
+++ trunk/libgimpwidgets/Makefile.am Thu Feb 14 17:02:47 2008
@@ -150,6 +150,8 @@
gimppropwidgets.h \
gimpquerybox.c \
gimpquerybox.h \
+ gimpscaleentry.h \
+ gimpscaleentry.c \
gimpscrolledpreview.c \
gimpscrolledpreview.h \
gimpsizeentry.c \
@@ -224,6 +226,7 @@
gimppreviewarea.h \
gimppropwidgets.h \
gimpquerybox.h \
+ gimpscaleentry.h \
gimpscrolledpreview.h \
gimpsizeentry.h \
gimpstock.h \
Copied: trunk/libgimpwidgets/gimpscaleentry.c (from r24886, /branches/weskaggs/libgimpwidgets/gimpscaleentry.c)
==============================================================================
--- /branches/weskaggs/libgimpwidgets/gimpscaleentry.c (original)
+++ trunk/libgimpwidgets/gimpscaleentry.c Thu Feb 14 17:02:47 2008
@@ -547,40 +547,3 @@
if (widget)
gtk_widget_set_sensitive (widget, sensitive);
}
-
-gdouble
-gimp_scale_entry_popup_new (GtkWindow *parent,
- const gchar *text,
- gint scale_width,
- gint spinbutton_width,
- gdouble value,
- gdouble lower,
- gdouble upper,
- gdouble step_increment,
- gdouble page_increment,
- guint digits,
- gboolean constrain,
- gdouble unconstrained_lower,
- gdouble unconstrained_upper,
- const gchar *tooltip,
- const gchar *help_id)
-{
- GtkWidget *window;
- GtkWidget *table = NULL;
- GtkObject *entry;
-
- window = gtk_window_new (GTK_WINDOW_POPUP);
- gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
- gtk_window_set_modal (GTK_WINDOW (window), TRUE);
-
- entry = gimp_scale_entry_new (GTK_TABLE (table), 0, 0, text,
- scale_width, spinbutton_width,
- value, lower, upper,
- step_increment, page_increment,
- digits, constrain,
- unconstrained_lower, unconstrained_upper,
- tooltip, help_id);
-
-
- return value;
-}
Modified: trunk/libgimpwidgets/gimpwidgets.c
==============================================================================
--- trunk/libgimpwidgets/gimpwidgets.c (original)
+++ trunk/libgimpwidgets/gimpwidgets.c Thu Feb 14 17:02:47 2008
@@ -451,500 +451,6 @@
}
static void
-gimp_scale_entry_unconstrained_adjustment_callback (GtkAdjustment *adjustment,
- GtkAdjustment *other_adj)
-{
- g_signal_handlers_block_by_func (other_adj,
- gimp_scale_entry_unconstrained_adjustment_callback,
- adjustment);
-
- gtk_adjustment_set_value (other_adj, adjustment->value);
-
- g_signal_handlers_unblock_by_func (other_adj,
- gimp_scale_entry_unconstrained_adjustment_callback,
- adjustment);
-}
-
-static void
-gimp_scale_entry_exp_adjustment_callback (GtkAdjustment *, GtkAdjustment *);
-
-static void
-gimp_scale_entry_log_adjustment_callback (GtkAdjustment *adjustment,
- GtkAdjustment *other_adj)
-{
- gdouble value;
-
- g_signal_handlers_block_by_func (other_adj,
- gimp_scale_entry_exp_adjustment_callback,
- adjustment);
- if (adjustment->lower <= 0.0)
- value = log (adjustment->value - adjustment->lower + 0.1);
- else
- value = log (adjustment->value);
-
- gtk_adjustment_set_value (other_adj, value);
-
- g_signal_handlers_unblock_by_func (other_adj,
- gimp_scale_entry_exp_adjustment_callback,
- adjustment);
-}
-
-static void
-gimp_scale_entry_exp_adjustment_callback (GtkAdjustment *adjustment,
- GtkAdjustment *other_adj)
-{
- gdouble value;
-
- g_signal_handlers_block_by_func (other_adj,
- gimp_scale_entry_log_adjustment_callback,
- adjustment);
-
- value = exp (adjustment->value);
- if (other_adj->lower <= 0.0)
- value += other_adj->lower - 0.1;
-
- gtk_adjustment_set_value (other_adj, value);
-
- g_signal_handlers_unblock_by_func (other_adj,
- gimp_scale_entry_log_adjustment_callback,
- adjustment);
-}
-
-static GtkObject *
-gimp_scale_entry_new_internal (gboolean color_scale,
- GtkTable *table,
- gint column,
- gint row,
- const gchar *text,
- gint scale_width,
- gint spinbutton_width,
- gdouble value,
- gdouble lower,
- gdouble upper,
- gdouble step_increment,
- gdouble page_increment,
- guint digits,
- gboolean constrain,
- gdouble unconstrained_lower,
- gdouble unconstrained_upper,
- const gchar *tooltip,
- const gchar *help_id)
-{
- GtkWidget *label;
- GtkWidget *ebox;
- GtkWidget *scale;
- GtkWidget *spinbutton;
- GtkObject *adjustment;
- GtkObject *return_adj;
-
- label = gtk_label_new_with_mnemonic (text);
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-
- if (tooltip)
- {
- ebox = g_object_new (GTK_TYPE_EVENT_BOX,
- "visible-window", FALSE,
- NULL);
- gtk_table_attach (GTK_TABLE (table), ebox,
- column, column + 1, row, row + 1,
- GTK_FILL, GTK_FILL, 0, 0);
- gtk_widget_show (ebox);
-
- gtk_container_add (GTK_CONTAINER (ebox), label);
- }
- else
- {
- ebox = NULL;
- gtk_table_attach (GTK_TABLE (table), label,
- column, column + 1, row, row + 1,
- GTK_FILL, GTK_FILL, 0, 0);
- }
-
- gtk_widget_show (label);
-
- if (! constrain &&
- unconstrained_lower <= lower &&
- unconstrained_upper >= upper)
- {
- GtkObject *constrained_adj;
-
- constrained_adj = gtk_adjustment_new (value, lower, upper,
- step_increment, page_increment,
- 0.0);
-
- spinbutton = gimp_spin_button_new (&adjustment, value,
- unconstrained_lower,
- unconstrained_upper,
- step_increment, page_increment, 0.0,
- 1.0, digits);
-
- g_signal_connect
- (G_OBJECT (constrained_adj), "value-changed",
- G_CALLBACK (gimp_scale_entry_unconstrained_adjustment_callback),
- adjustment);
-
- g_signal_connect
- (G_OBJECT (adjustment), "value-changed",
- G_CALLBACK (gimp_scale_entry_unconstrained_adjustment_callback),
- constrained_adj);
-
- return_adj = adjustment;
-
- adjustment = constrained_adj;
- }
- else
- {
- spinbutton = gimp_spin_button_new (&adjustment, value, lower, upper,
- step_increment, page_increment, 0.0,
- 1.0, digits);
-
- return_adj = adjustment;
- }
-
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), spinbutton);
-
- if (spinbutton_width > 0)
- {
- if (spinbutton_width < 17)
- gtk_entry_set_width_chars (GTK_ENTRY (spinbutton), spinbutton_width);
- else
- gtk_widget_set_size_request (spinbutton, spinbutton_width, -1);
- }
-
- if (color_scale)
- {
- scale = gimp_color_scale_new (GTK_ORIENTATION_HORIZONTAL,
- GIMP_COLOR_SELECTOR_VALUE);
-
- gtk_range_set_adjustment (GTK_RANGE (scale),
- GTK_ADJUSTMENT (adjustment));
- }
- else
- {
- scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
- }
-
- if (scale_width > 0)
- gtk_widget_set_size_request (scale, scale_width, -1);
- gtk_scale_set_digits (GTK_SCALE (scale), digits);
- gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
- gtk_table_attach (GTK_TABLE (table), scale,
- column + 1, column + 2, row, row + 1,
- GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
- gtk_widget_show (scale);
-
- gtk_table_attach (GTK_TABLE (table), spinbutton,
- column + 2, column + 3, row, row + 1,
- GTK_SHRINK, GTK_SHRINK, 0, 0);
- gtk_widget_show (spinbutton);
-
- if (tooltip || help_id)
- {
- if (ebox)
- gimp_help_set_help_data (ebox, tooltip, help_id);
-
- gimp_help_set_help_data (scale, tooltip, help_id);
- gimp_help_set_help_data (spinbutton, tooltip, help_id);
- }
-
- g_object_set_data (G_OBJECT (return_adj), "label", label);
- g_object_set_data (G_OBJECT (return_adj), "scale", scale);
- g_object_set_data (G_OBJECT (return_adj), "spinbutton", spinbutton);
-
-
-
- return return_adj;
-}
-
-/**
- * gimp_scale_entry_new:
- * @table: The #GtkTable the widgets will be attached to.
- * @column: The column to start with.
- * @row: The row to attach the widgets.
- * @text: The text for the #GtkLabel which will appear
- * left of the #GtkHScale.
- * @scale_width: The minimum horizontal size of the #GtkHScale.
- * @spinbutton_width: The minimum horizontal size of the #GtkSpinButton.
- * @value: The initial value.
- * @lower: The lower boundary.
- * @upper: The upper boundary.
- * @step_increment: The step increment.
- * @page_increment: The page increment.
- * @digits: The number of decimal digits.
- * @constrain: %TRUE if the range of possible values of the
- * #GtkSpinButton should be the same as of the #GtkHScale.
- * @unconstrained_lower: The spinbutton's lower boundary
- * if @constrain == %FALSE.
- * @unconstrained_upper: The spinbutton's upper boundary
- * if @constrain == %FALSE.
- * @tooltip: A tooltip message for the scale and the spinbutton.
- * @help_id: The widgets' help_id (see gimp_help_set_help_data()).
- *
- * This function creates a #GtkLabel, a #GtkHScale and a #GtkSpinButton and
- * attaches them to a 3-column #GtkTable.
- *
- * Returns: The #GtkSpinButton's #GtkAdjustment.
- **/
-GtkObject *
-gimp_scale_entry_new (GtkTable *table,
- gint column,
- gint row,
- const gchar *text,
- gint scale_width,
- gint spinbutton_width,
- gdouble value,
- gdouble lower,
- gdouble upper,
- gdouble step_increment,
- gdouble page_increment,
- guint digits,
- gboolean constrain,
- gdouble unconstrained_lower,
- gdouble unconstrained_upper,
- const gchar *tooltip,
- const gchar *help_id)
-{
- return gimp_scale_entry_new_internal (FALSE,
- table, column, row,
- text, scale_width, spinbutton_width,
- value, lower, upper,
- step_increment, page_increment,
- digits,
- constrain,
- unconstrained_lower,
- unconstrained_upper,
- tooltip, help_id);
-}
-
-/**
- * gimp_color_scale_entry_new:
- * @table: The #GtkTable the widgets will be attached to.
- * @column: The column to start with.
- * @row: The row to attach the widgets.
- * @text: The text for the #GtkLabel which will appear
- * left of the #GtkHScale.
- * @scale_width: The minimum horizontal size of the #GtkHScale.
- * @spinbutton_width: The minimum horizontal size of the #GtkSpinButton.
- * @value: The initial value.
- * @lower: The lower boundary.
- * @upper: The upper boundary.
- * @step_increment: The step increment.
- * @page_increment: The page increment.
- * @digits: The number of decimal digits.
- * @tooltip: A tooltip message for the scale and the spinbutton.
- * @help_id: The widgets' help_id (see gimp_help_set_help_data()).
- *
- * This function creates a #GtkLabel, a #GimpColorScale and a
- * #GtkSpinButton and attaches them to a 3-column #GtkTable.
- *
- * Returns: The #GtkSpinButton's #GtkAdjustment.
- **/
-GtkObject *
-gimp_color_scale_entry_new (GtkTable *table,
- gint column,
- gint row,
- const gchar *text,
- gint scale_width,
- gint spinbutton_width,
- gdouble value,
- gdouble lower,
- gdouble upper,
- gdouble step_increment,
- gdouble page_increment,
- guint digits,
- const gchar *tooltip,
- const gchar *help_id)
-{
- return gimp_scale_entry_new_internal (TRUE,
- table, column, row,
- text, scale_width, spinbutton_width,
- value, lower, upper,
- step_increment, page_increment,
- digits,
- TRUE, 0.0, 0.0,
- tooltip, help_id);
-}
-
-/**
- * gimp_scale_entry_set_logarithmic:
- * @adjustment: a #GtkAdjustment as returned by gimp_scale_entry_new()
- * @logarithmic: a boolean value to set or reset logarithmic behaviour
- * of the scale widget
- *
- * Sets whether the scale_entry's scale widget will behave in a linear
- * or logharithmic fashion. Useful when an entry has to attend large
- * ranges, but smaller selections on that range require a finer
- * adjustment.
- *
- * Since: GIMP 2.2
- **/
-void
-gimp_scale_entry_set_logarithmic (GtkObject *adjustment,
- gboolean logarithmic)
-{
- GtkAdjustment *adj;
- GtkAdjustment *scale_adj;
- gdouble correction;
- gdouble log_value, log_lower, log_upper;
- gdouble log_step_increment, log_page_increment;
-
- g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
-
- adj = GTK_ADJUSTMENT (adjustment);
- scale_adj = GIMP_SCALE_ENTRY_SCALE_ADJ (adjustment);
-
- if (logarithmic)
- {
- if (gimp_scale_entry_get_logarithmic (adjustment))
- return;
-
- correction = scale_adj->lower > 0 ? 0 : 0.1 + - scale_adj->lower;
-
- log_value = log (scale_adj->value + correction);
- log_lower = log (scale_adj->lower + correction);
- log_upper = log (scale_adj->upper + correction);
- log_step_increment = (log_upper - log_lower) / ((scale_adj->upper -
- scale_adj->lower) /
- scale_adj->step_increment);
- log_page_increment = (log_upper - log_lower) / ((scale_adj->upper -
- scale_adj->lower) /
- scale_adj->page_increment);
-
- if (scale_adj == adj)
- {
- GtkObject *new_adj;
- gdouble lower;
- gdouble upper;
-
- lower = scale_adj->lower;
- upper = scale_adj->upper;
- new_adj = gtk_adjustment_new (scale_adj->value,
- scale_adj->lower,
- scale_adj->upper,
- scale_adj->step_increment,
- scale_adj->page_increment,
- 0.0);
- gtk_range_set_adjustment (GTK_RANGE (GIMP_SCALE_ENTRY_SCALE (adj)),
- GTK_ADJUSTMENT (new_adj));
-
- scale_adj = (GtkAdjustment *) new_adj;
- }
- else
- {
- g_signal_handlers_disconnect_by_func (adj,
- G_CALLBACK (gimp_scale_entry_unconstrained_adjustment_callback),
- scale_adj);
- g_signal_handlers_disconnect_by_func (scale_adj,
- G_CALLBACK (gimp_scale_entry_unconstrained_adjustment_callback),
- adj);
- }
-
- scale_adj->value = log_value;
- scale_adj->lower = log_lower;
- scale_adj->upper = log_upper;
- scale_adj->step_increment = log_step_increment;
- scale_adj->page_increment = log_page_increment;
-
- g_signal_connect (scale_adj, "value-changed",
- G_CALLBACK (gimp_scale_entry_exp_adjustment_callback),
- adj);
-
- g_signal_connect (adj, "value-changed",
- G_CALLBACK (gimp_scale_entry_log_adjustment_callback),
- scale_adj);
-
- g_object_set_data (G_OBJECT (adjustment),
- "logarithmic", GINT_TO_POINTER (TRUE));
- }
- else
- {
- gdouble lower, upper;
-
- if (! gimp_scale_entry_get_logarithmic (adjustment))
- return;
-
- g_signal_handlers_disconnect_by_func (adj,
- G_CALLBACK (gimp_scale_entry_log_adjustment_callback),
- scale_adj);
- g_signal_handlers_disconnect_by_func (scale_adj,
- G_CALLBACK (gimp_scale_entry_exp_adjustment_callback),
- adj);
-
- lower = exp (scale_adj->lower);
- upper = exp (scale_adj->upper);
-
- if (adj->lower <= 0.0)
- {
- lower += - 0.1 + adj->lower;
- upper += - 0.1 + adj->lower;
- }
-
- scale_adj->value = adj->value;
- scale_adj->lower = lower;
- scale_adj->upper = upper;
- scale_adj->step_increment = adj->step_increment;
- scale_adj->page_increment = adj->page_increment;
-
- g_signal_connect (scale_adj, "value-changed",
- G_CALLBACK (gimp_scale_entry_unconstrained_adjustment_callback),
- adj);
-
- g_signal_connect (adj, "value-changed",
- G_CALLBACK (gimp_scale_entry_unconstrained_adjustment_callback),
- scale_adj);
-
- g_object_set_data (G_OBJECT (adjustment),
- "logarithmic", GINT_TO_POINTER (FALSE));
- }
-}
-
-/**
- * gimp_scale_entry_get_logarithmic:
- * @adjustment: a #GtkAdjustment as returned by gimp_scale_entry_new()
- *
- * Return value: %TRUE if the the entry's scale widget will behave in
- * logharithmic fashion, %FALSE for linear behaviour.
- *
- * Since: GIMP 2.2
- **/
-gboolean
-gimp_scale_entry_get_logarithmic (GtkObject *adjustment)
-{
- return GPOINTER_TO_INT (g_object_get_data (G_OBJECT (adjustment),
- "logarithmic"));
-}
-
-/**
- * gimp_scale_entry_set_sensitive:
- * @adjustment: a #GtkAdjustment returned by gimp_scale_entry_new()
- * @sensitive: a boolean value with the same semantics as the @sensitive
- * parameter of gtk_widget_set_sensitive()
- *
- * Sets the sensitivity of the scale_entry's #GtkLabel, #GtkHScale and
- * #GtkSpinbutton.
- **/
-void
-gimp_scale_entry_set_sensitive (GtkObject *adjustment,
- gboolean sensitive)
-{
- GtkWidget *widget;
-
- g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
-
- widget = GIMP_SCALE_ENTRY_LABEL (adjustment);
- if (widget)
- gtk_widget_set_sensitive (widget, sensitive);
-
- widget = GIMP_SCALE_ENTRY_SCALE (adjustment);
- if (widget)
- gtk_widget_set_sensitive (widget, sensitive);
-
- widget = GIMP_SCALE_ENTRY_SPINBUTTON (adjustment);
- if (widget)
- gtk_widget_set_sensitive (widget, sensitive);
-}
-
-static void
gimp_random_seed_update (GtkWidget *widget,
gpointer data)
{
Modified: trunk/libgimpwidgets/gimpwidgets.h
==============================================================================
--- trunk/libgimpwidgets/gimpwidgets.h (original)
+++ trunk/libgimpwidgets/gimpwidgets.h Thu Feb 14 17:02:47 2008
@@ -67,6 +67,7 @@
#include <libgimpwidgets/gimppreviewarea.h>
#include <libgimpwidgets/gimppropwidgets.h>
#include <libgimpwidgets/gimpquerybox.h>
+#include <libgimpwidgets/gimpscaleentry.h>
#include <libgimpwidgets/gimpscrolledpreview.h>
#include <libgimpwidgets/gimpsizeentry.h>
#include <libgimpwidgets/gimpstock.h>
@@ -147,63 +148,6 @@
gdouble climb_rate,
guint digits);
-#define GIMP_SCALE_ENTRY_LABEL(adj) \
- (g_object_get_data (G_OBJECT (adj), "label"))
-
-#define GIMP_SCALE_ENTRY_SCALE(adj) \
- (g_object_get_data (G_OBJECT (adj), "scale"))
-#define GIMP_SCALE_ENTRY_SCALE_ADJ(adj) \
- gtk_range_get_adjustment \
- (GTK_RANGE (g_object_get_data (G_OBJECT (adj), "scale")))
-
-#define GIMP_SCALE_ENTRY_SPINBUTTON(adj) \
- (g_object_get_data (G_OBJECT (adj), "spinbutton"))
-#define GIMP_SCALE_ENTRY_SPINBUTTON_ADJ(adj) \
- gtk_spin_button_get_adjustment \
- (GTK_SPIN_BUTTON (g_object_get_data (G_OBJECT (adj), "spinbutton")))
-
-GtkObject * gimp_scale_entry_new (GtkTable *table,
- gint column,
- gint row,
- const gchar *text,
- gint scale_width,
- gint spinbutton_width,
- gdouble value,
- gdouble lower,
- gdouble upper,
- gdouble step_increment,
- gdouble page_increment,
- guint digits,
- gboolean constrain,
- gdouble unconstrained_lower,
- gdouble unconstrained_upper,
- const gchar *tooltip,
- const gchar *help_id);
-
-
-GtkObject * gimp_color_scale_entry_new (GtkTable *table,
- gint column,
- gint row,
- const gchar *text,
- gint scale_width,
- gint spinbutton_width,
- gdouble value,
- gdouble lower,
- gdouble upper,
- gdouble step_increment,
- gdouble page_increment,
- guint digits,
- const gchar *tooltip,
- const gchar *help_id);
-
-void gimp_scale_entry_set_sensitive (GtkObject *adjustment,
- gboolean sensitive);
-
-void gimp_scale_entry_set_logarithmic (GtkObject *adjustment,
- gboolean logarithmic);
-gboolean gimp_scale_entry_get_logarithmic (GtkObject *adjustment);
-
-
#define GIMP_RANDOM_SEED_SPINBUTTON(hbox) \
(g_object_get_data (G_OBJECT (hbox), "spinbutton"))
#define GIMP_RANDOM_SEED_SPINBUTTON_ADJ(hbox) \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]