Merge branch 'master' into treeview-refactor

This commit is contained in:
Tristan Van Berkom 2010-10-27 01:06:58 +09:00
commit abcfd2d5ef
23 changed files with 3318 additions and 3068 deletions

View File

@ -2903,9 +2903,14 @@ gtk_scale_button_get_popup
#if IN_FILE(__GTK_SCROLLABLE_C__)
gtk_scrollable_get_type G_GNUC_CONST
gtk_scrollable_get_hadjustment
gtk_scrollable_get_hscroll_policy
gtk_scrollable_get_vadjustment
gtk_scrollable_get_vscroll_policy
gtk_scrollable_policy_get_type G_GNUC_CONST
gtk_scrollable_set_hadjustment
gtk_scrollable_set_hscroll_policy
gtk_scrollable_set_vadjustment
gtk_scrollable_set_vscroll_policy
#endif
#endif

View File

@ -89,8 +89,7 @@ gtk_check_button_init (GtkCheckButton *check_button)
{
gtk_widget_set_has_window (GTK_WIDGET (check_button), FALSE);
gtk_widget_set_receives_default (GTK_WIDGET (check_button), FALSE);
GTK_TOGGLE_BUTTON (check_button)->draw_indicator = TRUE;
GTK_BUTTON (check_button)->depress_on_activate = FALSE;
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (check_button), TRUE);
}
GtkWidget*
@ -201,7 +200,7 @@ gtk_check_button_size_request (GtkWidget *widget,
{
GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (widget);
if (toggle_button->draw_indicator)
if (gtk_toggle_button_get_mode (toggle_button))
{
GtkWidget *child;
gint temp;
@ -257,7 +256,7 @@ gtk_check_button_size_allocate (GtkWidget *widget,
check_button = GTK_CHECK_BUTTON (widget);
toggle_button = GTK_TOGGLE_BUTTON (widget);
if (toggle_button->draw_indicator)
if (gtk_toggle_button_get_mode (toggle_button))
{
GtkWidget *child;
gint indicator_size;
@ -274,7 +273,7 @@ gtk_check_button_size_allocate (GtkWidget *widget,
gtk_widget_set_allocation (widget, allocation);
if (gtk_widget_get_realized (widget))
gdk_window_move_resize (button->event_window,
gdk_window_move_resize (gtk_button_get_event_window (button),
allocation->x, allocation->y,
allocation->width, allocation->height);
@ -321,8 +320,8 @@ gtk_check_button_draw (GtkWidget *widget,
toggle_button = GTK_TOGGLE_BUTTON (widget);
bin = GTK_BIN (widget);
if (toggle_button->draw_indicator)
if (gtk_toggle_button_get_mode (toggle_button))
{
gtk_check_button_paint (widget, cr);
@ -395,9 +394,9 @@ gtk_real_check_button_draw_indicator (GtkCheckButton *check_button,
if (!interior_focus || !(child && gtk_widget_get_visible (child)))
x += focus_width + focus_pad;
if (toggle_button->inconsistent)
if (gtk_toggle_button_get_inconsistent (toggle_button))
shadow_type = GTK_SHADOW_ETCHED_IN;
else if (toggle_button->active)
else if (gtk_toggle_button_get_active (toggle_button))
shadow_type = GTK_SHADOW_IN;
else
shadow_type = GTK_SHADOW_OUT;

View File

@ -174,7 +174,6 @@ gtk_combo_box_text_insert_text (GtkComboBoxText *combo_box,
GtkListStore *store;
GtkTreeIter iter;
gint text_column;
gint id_column;
gint column_type;
g_return_if_fail (GTK_IS_COMBO_BOX_TEXT (combo_box));

View File

@ -998,13 +998,16 @@ get_entry_cursor_x (GtkFileChooserEntry *chooser_entry,
gint layout_x, layout_y;
gint layout_index;
PangoRectangle strong_pos;
gint start_pos, end_pos;
layout = gtk_entry_get_layout (GTK_ENTRY (chooser_entry));
gtk_entry_get_layout_offsets (GTK_ENTRY (chooser_entry), &layout_x, &layout_y);
gtk_editable_get_selection_bounds (GTK_EDITABLE (chooser_entry), &start_pos, &end_pos);
layout_index = gtk_entry_text_index_to_layout_index (GTK_ENTRY (chooser_entry),
GTK_ENTRY (chooser_entry)->current_pos);
end_pos);
pango_layout_get_cursor_pos (layout, layout_index, &strong_pos, NULL);

View File

@ -310,7 +310,7 @@ menu_position_func (GtkMenu *menu,
}
else
{
gdk_window_get_origin (GTK_BUTTON (priv->arrow_button)->event_window, x, y);
gdk_window_get_origin (gtk_button_get_event_window (GTK_BUTTON (priv->arrow_button)), x, y);
gtk_widget_get_preferred_size (priv->arrow_button,
&req, NULL);

View File

@ -207,7 +207,7 @@ gtk_radio_button_init (GtkRadioButton *radio_button)
gtk_widget_set_has_window (GTK_WIDGET (radio_button), FALSE);
gtk_widget_set_receives_default (GTK_WIDGET (radio_button), FALSE);
GTK_TOGGLE_BUTTON (radio_button)->active = TRUE;
_gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_button), TRUE);
GTK_BUTTON (radio_button)->depress_on_activate = FALSE;
@ -652,7 +652,7 @@ gtk_radio_button_focus (GtkWidget *widget,
/* Radio buttons with draw_indicator unset focus "normally", since
* they look like buttons to the user.
*/
if (!GTK_TOGGLE_BUTTON (widget)->draw_indicator)
if (!gtk_toggle_button_get_mode (GTK_TOGGLE_BUTTON (widget)))
return GTK_WIDGET_CLASS (gtk_radio_button_parent_class)->focus (widget, direction);
if (gtk_widget_is_focus (widget))
@ -766,7 +766,7 @@ gtk_radio_button_focus (GtkWidget *widget,
tmp_slist = priv->group;
while (tmp_slist)
{
if (GTK_TOGGLE_BUTTON (tmp_slist->data)->active)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tmp_slist->data)))
selected_button = tmp_slist->data;
tmp_slist = tmp_slist->next;
}
@ -795,7 +795,7 @@ gtk_radio_button_clicked (GtkButton *button)
g_object_ref (GTK_WIDGET (button));
if (toggle_button->active)
if (gtk_toggle_button_get_active (toggle_button))
{
tmp_button = NULL;
tmp_list = priv->group;
@ -805,7 +805,8 @@ gtk_radio_button_clicked (GtkButton *button)
tmp_button = tmp_list->data;
tmp_list = tmp_list->next;
if (tmp_button->active && tmp_button != toggle_button)
if (tmp_button != toggle_button &&
gtk_toggle_button_get_active (tmp_button))
break;
tmp_button = NULL;
@ -818,14 +819,16 @@ gtk_radio_button_clicked (GtkButton *button)
else
{
toggled = TRUE;
toggle_button->active = !toggle_button->active;
_gtk_toggle_button_set_active (toggle_button,
!gtk_toggle_button_get_active (toggle_button));
new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_NORMAL);
}
}
else
{
toggled = TRUE;
toggle_button->active = !toggle_button->active;
_gtk_toggle_button_set_active (toggle_button,
!gtk_toggle_button_get_active (toggle_button));
tmp_list = priv->group;
while (tmp_list)
@ -833,7 +836,7 @@ gtk_radio_button_clicked (GtkButton *button)
tmp_button = tmp_list->data;
tmp_list = tmp_list->next;
if (tmp_button->active && (tmp_button != toggle_button))
if (gtk_toggle_button_get_active (tmp_button) && (tmp_button != toggle_button))
{
gtk_button_clicked (GTK_BUTTON (tmp_button));
break;
@ -843,12 +846,12 @@ gtk_radio_button_clicked (GtkButton *button)
new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE);
}
if (toggle_button->inconsistent)
if (gtk_toggle_button_get_inconsistent (toggle_button))
depressed = FALSE;
else if (button->in_button && button->button_down)
depressed = !toggle_button->active;
depressed = !gtk_toggle_button_get_active (toggle_button);
else
depressed = toggle_button->active;
depressed = gtk_toggle_button_get_active (toggle_button);
if (gtk_widget_get_state (GTK_WIDGET (button)) != new_state)
gtk_widget_set_state (GTK_WIDGET (button), new_state);
@ -913,9 +916,9 @@ gtk_radio_button_draw_indicator (GtkCheckButton *check_button,
if (!interior_focus || !(child && gtk_widget_get_visible (child)))
x += focus_width + focus_pad;
if (toggle_button->inconsistent)
if (gtk_toggle_button_get_inconsistent (toggle_button))
shadow_type = GTK_SHADOW_ETCHED_IN;
else if (toggle_button->active)
else if (gtk_toggle_button_get_active (toggle_button))
shadow_type = GTK_SHADOW_IN;
else
shadow_type = GTK_SHADOW_OUT;

View File

@ -119,7 +119,7 @@ static GQuark recursion_check_quark = 0;
#endif /* G_DISABLE_CHECKS */
static void
push_recursion_check (GtkWidget *request,
push_recursion_check (GtkWidget *widget,
GtkSizeGroupMode orientation,
gint for_size)
{
@ -130,7 +130,7 @@ push_recursion_check (GtkWidget *request,
if (recursion_check_quark == 0)
recursion_check_quark = g_quark_from_static_string ("gtk-size-request-in-progress");
previous_method = g_object_get_qdata (G_OBJECT (request), recursion_check_quark);
previous_method = g_object_get_qdata (G_OBJECT (widget), recursion_check_quark);
if (orientation == GTK_SIZE_GROUP_HORIZONTAL)
{
@ -147,26 +147,26 @@ push_recursion_check (GtkWidget *request,
" GtkWidget ::%s implementation. "
"Should just invoke GTK_WIDGET_GET_CLASS(widget)->%s "
"directly rather than using gtk_widget_%s",
G_OBJECT_TYPE_NAME (request), request,
G_OBJECT_TYPE_NAME (widget), widget,
method, previous_method,
method, method);
}
g_object_set_qdata (G_OBJECT (request), recursion_check_quark, (char*) method);
g_object_set_qdata (G_OBJECT (widget), recursion_check_quark, (char*) method);
#endif /* G_DISABLE_CHECKS */
}
static void
pop_recursion_check (GtkWidget *request,
pop_recursion_check (GtkWidget *widget,
GtkSizeGroupMode orientation)
{
#ifndef G_DISABLE_CHECKS
g_object_set_qdata (G_OBJECT (request), recursion_check_quark, NULL);
g_object_set_qdata (G_OBJECT (widget), recursion_check_quark, NULL);
#endif
}
static void
compute_size_for_orientation (GtkWidget *request,
compute_size_for_orientation (GtkWidget *widget,
GtkSizeGroupMode orientation,
gint for_size,
gint *minimum_size,
@ -174,14 +174,12 @@ compute_size_for_orientation (GtkWidget *request,
{
SizeRequestCache *cache;
SizeRequest *cached_size;
GtkWidget *widget;
gboolean found_in_cache = FALSE;
int adjusted_min, adjusted_natural;
g_return_if_fail (GTK_IS_WIDGET (request));
g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (minimum_size != NULL || natural_size != NULL);
widget = GTK_WIDGET (request);
cache = _gtk_widget_peek_request_cache (widget);
if (orientation == GTK_SIZE_GROUP_HORIZONTAL)
@ -226,9 +224,9 @@ compute_size_for_orientation (GtkWidget *request,
if (for_size < 0)
{
push_recursion_check (request, orientation, for_size);
GTK_WIDGET_GET_CLASS (request)->get_preferred_width (request, &min_size, &nat_size);
pop_recursion_check (request, orientation);
push_recursion_check (widget, orientation, for_size);
GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget, &min_size, &nat_size);
pop_recursion_check (widget, orientation);
}
else
{
@ -240,16 +238,16 @@ compute_size_for_orientation (GtkWidget *request,
gtk_widget_get_preferred_height (widget, NULL, &natural_height);
/* convert for_size to unadjusted height (for_size is a proposed allocation) */
GTK_WIDGET_GET_CLASS (request)->adjust_size_allocation (widget,
GTK_ORIENTATION_VERTICAL,
&natural_height,
&ignored_position,
&for_size);
GTK_WIDGET_GET_CLASS (widget)->adjust_size_allocation (widget,
GTK_ORIENTATION_VERTICAL,
&natural_height,
&ignored_position,
&for_size);
push_recursion_check (request, orientation, for_size);
GTK_WIDGET_GET_CLASS (request)->get_preferred_width_for_height (request, for_size,
push_recursion_check (widget, orientation, for_size);
GTK_WIDGET_GET_CLASS (widget)->get_preferred_width_for_height (widget, for_size,
&min_size, &nat_size);
pop_recursion_check (request, orientation);
pop_recursion_check (widget, orientation);
}
}
else
@ -258,9 +256,9 @@ compute_size_for_orientation (GtkWidget *request,
if (for_size < 0)
{
push_recursion_check (request, orientation, for_size);
GTK_WIDGET_GET_CLASS (request)->get_preferred_height (request, &min_size, &nat_size);
pop_recursion_check (request, orientation);
push_recursion_check (widget, orientation, for_size);
GTK_WIDGET_GET_CLASS (widget)->get_preferred_height (widget, &min_size, &nat_size);
pop_recursion_check (widget, orientation);
}
else
{
@ -272,23 +270,23 @@ compute_size_for_orientation (GtkWidget *request,
gtk_widget_get_preferred_width (widget, NULL, &natural_width);
/* convert for_size to unadjusted width (for_size is a proposed allocation) */
GTK_WIDGET_GET_CLASS (request)->adjust_size_allocation (widget,
GTK_ORIENTATION_HORIZONTAL,
&natural_width,
&ignored_position,
&for_size);
GTK_WIDGET_GET_CLASS (widget)->adjust_size_allocation (widget,
GTK_ORIENTATION_HORIZONTAL,
&natural_width,
&ignored_position,
&for_size);
push_recursion_check (request, orientation, for_size);
GTK_WIDGET_GET_CLASS (request)->get_preferred_height_for_width (request, for_size,
push_recursion_check (widget, orientation, for_size);
GTK_WIDGET_GET_CLASS (widget)->get_preferred_height_for_width (widget, for_size,
&min_size, &nat_size);
pop_recursion_check (request, orientation);
pop_recursion_check (widget, orientation);
}
}
if (min_size > nat_size)
{
g_warning ("%s %p reported min size %d and natural size %d; natural size must be >= min size",
G_OBJECT_TYPE_NAME (request), request, min_size, nat_size);
G_OBJECT_TYPE_NAME (widget), widget, min_size, nat_size);
}
/* Support for dangling "size-request" signal implementations on
@ -308,18 +306,18 @@ compute_size_for_orientation (GtkWidget *request,
adjusted_min = cached_size->minimum_size;
adjusted_natural = cached_size->natural_size;
GTK_WIDGET_GET_CLASS (request)->adjust_size_request (GTK_WIDGET (request),
orientation == GTK_SIZE_GROUP_HORIZONTAL ?
GTK_ORIENTATION_HORIZONTAL :
GTK_ORIENTATION_VERTICAL,
&adjusted_min,
&adjusted_natural);
GTK_WIDGET_GET_CLASS (widget)->adjust_size_request (widget,
orientation == GTK_SIZE_GROUP_HORIZONTAL ?
GTK_ORIENTATION_HORIZONTAL :
GTK_ORIENTATION_VERTICAL,
&adjusted_min,
&adjusted_natural);
if (adjusted_min < cached_size->minimum_size ||
adjusted_natural < cached_size->natural_size)
{
g_warning ("%s %p adjusted size %s min %d natural %d must not decrease below min %d natural %d",
G_OBJECT_TYPE_NAME (request), request,
G_OBJECT_TYPE_NAME (widget), widget,
orientation == GTK_SIZE_GROUP_VERTICAL ? "vertical" : "horizontal",
adjusted_min, adjusted_natural,
cached_size->minimum_size, cached_size->natural_size);
@ -328,7 +326,7 @@ compute_size_for_orientation (GtkWidget *request,
else if (adjusted_min > adjusted_natural)
{
g_warning ("%s %p adjusted size %s min %d natural %d original min %d natural %d has min greater than natural",
G_OBJECT_TYPE_NAME (request), request,
G_OBJECT_TYPE_NAME (widget), widget,
orientation == GTK_SIZE_GROUP_VERTICAL ? "vertical" : "horizontal",
adjusted_min, adjusted_natural,
cached_size->minimum_size, cached_size->natural_size);
@ -344,8 +342,8 @@ compute_size_for_orientation (GtkWidget *request,
/* Update size-groups with our request and update our cached requests
* with the size-group values in a single pass.
*/
_gtk_size_group_bump_requisition (GTK_WIDGET (request),
orientation,
_gtk_size_group_bump_requisition (widget,
orientation,
&cached_size->minimum_size,
&cached_size->natural_size);
}
@ -360,7 +358,7 @@ compute_size_for_orientation (GtkWidget *request,
GTK_NOTE (SIZE_REQUEST,
g_print ("[%p] %s\t%s: %d is minimum %d and natural: %d (hit cache: %s)\n",
request, G_OBJECT_TYPE_NAME (request),
widget, G_OBJECT_TYPE_NAME (widget),
orientation == GTK_SIZE_GROUP_HORIZONTAL ?
"width for height" : "height for width" ,
for_size,

View File

@ -679,7 +679,7 @@ gtk_spin_button_size_request (GtkWidget *widget,
GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->size_request (widget, requisition);
if (entry->width_chars < 0)
if (gtk_entry_get_width_chars (entry) < 0)
{
PangoContext *context;
PangoFontMetrics *metrics;
@ -1003,7 +1003,7 @@ static gint
gtk_spin_button_focus_out (GtkWidget *widget,
GdkEventFocus *event)
{
if (GTK_ENTRY (widget)->editable)
if (gtk_editable_get_editable (GTK_EDITABLE (widget)))
gtk_spin_button_update (GTK_SPIN_BUTTON (widget));
return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->focus_out_event (widget, event);
@ -1144,8 +1144,8 @@ gtk_spin_button_button_press (GtkWidget *widget,
if (!gtk_widget_has_focus (widget))
gtk_widget_grab_focus (widget);
priv->button = event->button;
if (GTK_ENTRY (widget)->editable)
if (gtk_editable_get_editable (GTK_EDITABLE (widget)))
gtk_spin_button_update (spin);
gtk_widget_get_preferred_size (widget, &requisition, NULL);
@ -1468,7 +1468,7 @@ gtk_spin_button_snap (GtkSpinButton *spin_button,
static void
gtk_spin_button_activate (GtkEntry *entry)
{
if (entry->editable)
if (gtk_editable_get_editable (GTK_EDITABLE (entry)))
gtk_spin_button_update (GTK_SPIN_BUTTON (entry));
/* Chain up so that entry->activates_default is honored */
@ -2291,7 +2291,7 @@ gtk_spin_button_set_snap_to_ticks (GtkSpinButton *spin_button,
if (new_val != priv->snap_to_ticks)
{
priv->snap_to_ticks = new_val;
if (new_val && GTK_ENTRY (spin_button)->editable)
if (new_val && gtk_editable_get_editable (GTK_EDITABLE (spin_button)))
gtk_spin_button_update (spin_button);
g_object_notify (G_OBJECT (spin_button), "snap-to-ticks");

View File

@ -39,6 +39,13 @@
#define DEFAULT_TOP_POS 4
#define DEFAULT_SPACING 7
struct _GtkToggleButtonPrivate
{
guint active : 1;
guint draw_indicator : 1;
guint inconsistent : 1;
};
enum {
TOGGLED,
LAST_SIGNAL
@ -141,13 +148,22 @@ gtk_toggle_button_class_init (GtkToggleButtonClass *class)
NULL, NULL,
_gtk_marshal_VOID__VOID,
G_TYPE_NONE, 0);
g_type_class_add_private (class, sizeof (GtkToggleButtonPrivate));
}
static void
gtk_toggle_button_init (GtkToggleButton *toggle_button)
{
toggle_button->active = FALSE;
toggle_button->draw_indicator = FALSE;
GtkToggleButtonPrivate *priv;
toggle_button->priv = G_TYPE_INSTANCE_GET_PRIVATE (toggle_button,
GTK_TYPE_TOGGLE_BUTTON,
GtkToggleButtonPrivate);
priv = toggle_button->priv;
priv->active = FALSE;
priv->draw_indicator = FALSE;
GTK_BUTTON (toggle_button)->depress_on_activate = TRUE;
}
@ -262,20 +278,19 @@ gtk_toggle_button_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
GtkToggleButton *tb;
tb = GTK_TOGGLE_BUTTON (object);
GtkToggleButton *tb = GTK_TOGGLE_BUTTON (object);
GtkToggleButtonPrivate *priv = tb->priv;
switch (prop_id)
{
case PROP_ACTIVE:
g_value_set_boolean (value, tb->active);
g_value_set_boolean (value, priv->active);
break;
case PROP_INCONSISTENT:
g_value_set_boolean (value, tb->inconsistent);
g_value_set_boolean (value, priv->inconsistent);
break;
case PROP_DRAW_INDICATOR:
g_value_set_boolean (value, tb->draw_indicator);
g_value_set_boolean (value, priv->draw_indicator);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -301,13 +316,17 @@ void
gtk_toggle_button_set_mode (GtkToggleButton *toggle_button,
gboolean draw_indicator)
{
GtkToggleButtonPrivate *priv;
g_return_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button));
priv = toggle_button->priv;
draw_indicator = draw_indicator ? TRUE : FALSE;
if (toggle_button->draw_indicator != draw_indicator)
if (priv->draw_indicator != draw_indicator)
{
toggle_button->draw_indicator = draw_indicator;
priv->draw_indicator = draw_indicator;
GTK_BUTTON (toggle_button)->depress_on_activate = !draw_indicator;
if (gtk_widget_get_visible (GTK_WIDGET (toggle_button)))
@ -332,28 +351,38 @@ gtk_toggle_button_get_mode (GtkToggleButton *toggle_button)
{
g_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button), FALSE);
return toggle_button->draw_indicator;
return toggle_button->priv->draw_indicator;
}
void
gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
gboolean is_active)
{
GtkToggleButtonPrivate *priv;
g_return_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button));
priv = toggle_button->priv;
is_active = is_active != FALSE;
if (toggle_button->active != is_active)
if (priv->active != is_active)
gtk_button_clicked (GTK_BUTTON (toggle_button));
}
void
_gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
gboolean is_active)
{
toggle_button->priv->active = is_active;
}
gboolean
gtk_toggle_button_get_active (GtkToggleButton *toggle_button)
{
g_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button), FALSE);
return (toggle_button->active) ? TRUE : FALSE;
return toggle_button->priv->active;
}
@ -384,14 +413,18 @@ void
gtk_toggle_button_set_inconsistent (GtkToggleButton *toggle_button,
gboolean setting)
{
GtkToggleButtonPrivate *priv;
g_return_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button));
priv = toggle_button->priv;
setting = setting != FALSE;
if (setting != toggle_button->inconsistent)
if (setting != priv->inconsistent)
{
toggle_button->inconsistent = setting;
priv->inconsistent = setting;
gtk_toggle_button_update_state (GTK_BUTTON (toggle_button));
gtk_widget_queue_draw (GTK_WIDGET (toggle_button));
@ -412,21 +445,23 @@ gtk_toggle_button_get_inconsistent (GtkToggleButton *toggle_button)
{
g_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button), FALSE);
return toggle_button->inconsistent;
return toggle_button->priv->inconsistent;
}
static gint
gtk_toggle_button_draw (GtkWidget *widget,
cairo_t *cr)
{
GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (widget);
GtkToggleButtonPrivate *priv = toggle_button->priv;
GtkWidget *child = gtk_bin_get_child (GTK_BIN (widget));
GtkButton *button = GTK_BUTTON (widget);
GtkStateType state_type;
GtkShadowType shadow_type;
state_type = gtk_widget_get_state (widget);
if (GTK_TOGGLE_BUTTON (widget)->inconsistent)
if (priv->inconsistent)
{
if (state_type == GTK_STATE_ACTIVE)
state_type = GTK_STATE_NORMAL;
@ -493,7 +528,9 @@ static void
gtk_toggle_button_clicked (GtkButton *button)
{
GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (button);
toggle_button->active = !toggle_button->active;
GtkToggleButtonPrivate *priv = toggle_button->priv;
priv->active = !priv->active;
gtk_toggle_button_toggled (toggle_button);
@ -509,6 +546,7 @@ static void
gtk_toggle_button_update_state (GtkButton *button)
{
GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (button);
GtkToggleButtonPrivate *priv = toggle_button->priv;
gboolean depressed, touchscreen;
GtkStateType new_state;
@ -516,14 +554,14 @@ gtk_toggle_button_update_state (GtkButton *button)
"gtk-touchscreen-mode", &touchscreen,
NULL);
if (toggle_button->inconsistent)
if (priv->inconsistent)
depressed = FALSE;
else if (button->in_button && button->button_down)
depressed = TRUE;
else
depressed = toggle_button->active;
if (!touchscreen && button->in_button && (!button->button_down || toggle_button->draw_indicator))
depressed = priv->active;
if (!touchscreen && button->in_button && (!button->button_down || priv->draw_indicator))
new_state = GTK_STATE_PRELIGHT;
else
new_state = depressed ? GTK_STATE_ACTIVE : GTK_STATE_NORMAL;

View File

@ -44,17 +44,16 @@ G_BEGIN_DECLS
#define GTK_IS_TOGGLE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TOGGLE_BUTTON))
#define GTK_TOGGLE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButtonClass))
typedef struct _GtkToggleButton GtkToggleButton;
typedef struct _GtkToggleButtonClass GtkToggleButtonClass;
typedef struct _GtkToggleButton GtkToggleButton;
typedef struct _GtkToggleButtonPrivate GtkToggleButtonPrivate;
typedef struct _GtkToggleButtonClass GtkToggleButtonClass;
struct _GtkToggleButton
{
/*< private >*/
GtkButton button;
guint GSEAL (active) : 1;
guint GSEAL (draw_indicator) : 1;
guint GSEAL (inconsistent) : 1;
GtkToggleButtonPrivate *priv;
};
struct _GtkToggleButtonClass
@ -87,6 +86,9 @@ void gtk_toggle_button_set_inconsistent (GtkToggleButton *toggle_button,
gboolean setting);
gboolean gtk_toggle_button_get_inconsistent (GtkToggleButton *toggle_button);
void _gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
gboolean is_active);
G_END_DECLS

View File

@ -291,7 +291,9 @@ static void
button_toggled (GtkWidget *widget,
GtkToggleToolButton *toggle_tool_button)
{
gboolean toggle_active = GTK_TOGGLE_BUTTON (widget)->active;
gboolean toggle_active;
toggle_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
if (toggle_tool_button->priv->active != toggle_active)
{

View File

@ -2603,7 +2603,7 @@ menu_position_func (GtkMenu *menu,
gtk_widget_get_allocation (priv->arrow_button, &allocation);
gdk_window_get_origin (GTK_BUTTON (priv->arrow_button)->event_window, x, y);
gdk_window_get_origin (gtk_button_get_event_window (GTK_BUTTON (priv->arrow_button)), x, y);
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
if (gtk_widget_get_direction (GTK_WIDGET (toolbar)) == GTK_TEXT_DIR_LTR)

View File

@ -9295,7 +9295,7 @@ _gtk_tree_view_column_start_drag (GtkTreeView *tree_view,
send_event = gdk_event_new (GDK_LEAVE_NOTIFY);
send_event->crossing.send_event = TRUE;
send_event->crossing.window = g_object_ref (GTK_BUTTON (column->button)->event_window);
send_event->crossing.window = g_object_ref (gtk_button_get_event_window (GTK_BUTTON (column->button)));
send_event->crossing.subwindow = NULL;
send_event->crossing.detail = GDK_NOTIFY_ANCESTOR;
send_event->crossing.time = GDK_CURRENT_TIME;

View File

@ -1098,7 +1098,7 @@ gtk_tree_view_column_button_event (GtkWidget *widget,
((GdkEventButton *)event)->button == 1)
{
column->maybe_reordered = TRUE;
gdk_window_get_pointer (GTK_BUTTON (widget)->event_window,
gdk_window_get_pointer (gtk_button_get_event_window (GTK_BUTTON (widget)),
&column->drag_x,
&column->drag_y,
NULL);

View File

@ -84,7 +84,7 @@ gail_toggle_button_toggled_gtk (GtkWidget *widget)
accessible = gtk_widget_get_accessible (widget);
atk_object_notify_state_change (accessible, ATK_STATE_CHECKED,
toggle_button->active);
gtk_toggle_button_get_active (toggle_button));
}
static AtkStateSet*

View File

@ -713,7 +713,7 @@ gchar **tests_set(gint window, int *count)
for (i = 0; i < testcount[window]; i++)
{
nullparam = FALSE;
if (GTK_TOGGLE_BUTTON(listoftests[window][i].toggleButton)->active)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (listoftests[window][i].toggleButton)))
{
num = listoftests[window][i].numParameters;
for (j = 0; j < num; j++)

View File

@ -73,11 +73,11 @@ static void choicecb (GtkWidget *widget, gpointer data)
AtkObject **ptr_to_obj = (AtkObject **)data;
AtkObject *obj = *ptr_to_obj;
if (GTK_TOGGLE_BUTTON(tc->tb_others)->active)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_others)))
{
other_runtest(obj);
}
else if (GTK_TOGGLE_BUTTON(tc->tb_ref_selection)->active)
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_ref_selection)))
{
const gchar *indexstr;
gint index;
@ -87,7 +87,7 @@ static void choicecb (GtkWidget *widget, gpointer data)
ref_selection_runtest(obj, index);
}
else if (GTK_TOGGLE_BUTTON(tc->tb_ref_at)->active)
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_ref_at)))
{
const gchar *rowstr, *colstr;
gint row, col;
@ -99,7 +99,7 @@ static void choicecb (GtkWidget *widget, gpointer data)
ref_at_runtest(obj, row, col);
}
else if (GTK_TOGGLE_BUTTON(tc->tb_ref_accessible_child)->active)
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_ref_accessible_child)))
{
const gchar *childstr;
gint childno;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+-master-po-gl-77922___.merged\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-10-25 01:04+0200\n"
"POT-Creation-Date: 2010-10-26 16:52+0200\n"
"PO-Revision-Date: 2010-10-25 01:05+0200\n"
"Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <gnome-gl-list@gnome.org>\n"
@ -807,11 +807,11 @@ msgstr "_Dereito:"
msgid "Paper Margins"
msgstr "Marxes do papel"
#: ../gtk/gtkentry.c:8570 ../gtk/gtktextview.c:8158
#: ../gtk/gtkentry.c:8570 ../gtk/gtktextview.c:8185
msgid "Input _Methods"
msgstr "_Métodos de entrada"
#: ../gtk/gtkentry.c:8584 ../gtk/gtktextview.c:8172
#: ../gtk/gtkentry.c:8584 ../gtk/gtktextview.c:8199
msgid "_Insert Unicode Control Character"
msgstr "_Inserir un carácter de control Unicode"
@ -1111,21 +1111,21 @@ msgstr "Non foi posíbel montar %s"
#. Translators: this is shown in the feedback for Tab-completion in a file
#. * chooser's text entry, when the user enters an invalid path.
#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1169
#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1172
msgid "Invalid path"
msgstr "Camiño incorrecto"
#. translators: this text is shown when there are no completions
#. * for something the user typed in a file chooser entry
#.
#: ../gtk/gtkfilechooserentry.c:1101
#: ../gtk/gtkfilechooserentry.c:1104
msgid "No match"
msgstr "Non houbo coincidencia"
#. translators: this text is shown when there is exactly one completion
#. * for something the user typed in a file chooser entry
#.
#: ../gtk/gtkfilechooserentry.c:1112
#: ../gtk/gtkfilechooserentry.c:1115
msgid "Sole completion"
msgstr "Único completado"
@ -1133,13 +1133,13 @@ msgstr "Único completado"
#. * entry is a complete filename, but could be continued to find
#. * a longer match
#.
#: ../gtk/gtkfilechooserentry.c:1128
#: ../gtk/gtkfilechooserentry.c:1131
msgid "Complete, but not unique"
msgstr "Completado, mais non é o único"
#. Translators: this text is shown while the system is searching
#. * for possible completions for filenames in a file chooser entry.
#: ../gtk/gtkfilechooserentry.c:1160
#: ../gtk/gtkfilechooserentry.c:1163
msgid "Completing..."
msgstr "Completando..."
@ -1147,7 +1147,7 @@ msgstr "Completando..."
#. Translators: this is shown in the feedback for Tab-completion in a
#. * file chooser's text entry when the user enters something like
#. * "sftp://blahblah" in an app that only supports local filenames.
#: ../gtk/gtkfilechooserentry.c:1182 ../gtk/gtkfilechooserentry.c:1207
#: ../gtk/gtkfilechooserentry.c:1185 ../gtk/gtkfilechooserentry.c:1210
msgid "Only local files may be selected"
msgstr "Só se poden seleccionar ficheiros locais"
@ -1155,14 +1155,14 @@ msgstr "Só se poden seleccionar ficheiros locais"
#. Translators: this is shown in the feedback for Tab-completion in a
#. * file chooser's text entry when the user hasn't entered the first '/'
#. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
#: ../gtk/gtkfilechooserentry.c:1191
#: ../gtk/gtkfilechooserentry.c:1194
msgid "Incomplete hostname; end it with '/'"
msgstr "O nome do servidor está incompleto; finaliza con '/'"
#. Translators: this is shown in the feedback for Tab-completion in a file
#. * chooser's text entry when the user enters a path that does not exist
#. * and then hits Tab
#: ../gtk/gtkfilechooserentry.c:1202
#: ../gtk/gtkfilechooserentry.c:1205
msgid "Path does not exist"
msgstr "O camiño non existe"
@ -2594,109 +2594,109 @@ msgstr "Erro descoñecido ao tentar deserializar %s"
msgid "No deserialize function found for format %s"
msgstr "Non se localizou a función de deserializar para o formato %s"
#: ../gtk/gtktextbufferserialize.c:795 ../gtk/gtktextbufferserialize.c:821
#: ../gtk/gtktextbufferserialize.c:803 ../gtk/gtktextbufferserialize.c:829
#, c-format
msgid "Both \"id\" and \"name\" were found on the <%s> element"
msgstr "Localizáronse tanto \"id\" como \"name\" no elemento <%s>"
#: ../gtk/gtktextbufferserialize.c:805 ../gtk/gtktextbufferserialize.c:831
#: ../gtk/gtktextbufferserialize.c:813 ../gtk/gtktextbufferserialize.c:839
#, c-format
msgid "The attribute \"%s\" was found twice on the <%s> element"
msgstr "O atributo «%s» localizouse dúas veces no elemento <%s>"
#: ../gtk/gtktextbufferserialize.c:845
#: ../gtk/gtktextbufferserialize.c:855
#, c-format
msgid "<%s> element has invalid ID \"%s\""
msgstr "O elemento <%s> ten un ID «%s» non válido"
#: ../gtk/gtktextbufferserialize.c:855
#: ../gtk/gtktextbufferserialize.c:865
#, c-format
msgid "<%s> element has neither a \"name\" nor an \"id\" attribute"
msgstr ""
"O elemento <%s> non ten nin un atributo \"name\" nin un atributo \"id\""
#: ../gtk/gtktextbufferserialize.c:942
#: ../gtk/gtktextbufferserialize.c:952
#, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "O atributo «%s» repítese dúas veces no mesmo elemento <%s>"
#: ../gtk/gtktextbufferserialize.c:960 ../gtk/gtktextbufferserialize.c:985
#: ../gtk/gtktextbufferserialize.c:970 ../gtk/gtktextbufferserialize.c:995
#, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context"
msgstr "O atributo «%s» non é válido no elemento <%s> neste contexto"
#: ../gtk/gtktextbufferserialize.c:1024
#: ../gtk/gtktextbufferserialize.c:1034
#, c-format
msgid "Tag \"%s\" has not been defined."
msgstr "A etiqueta «%s» non foi definida."
#: ../gtk/gtktextbufferserialize.c:1036
#: ../gtk/gtktextbufferserialize.c:1046
msgid "Anonymous tag found and tags can not be created."
msgstr "Localizouse unha etiqueta anónima e non é posíbel crear as etiquetas."
#: ../gtk/gtktextbufferserialize.c:1047
#: ../gtk/gtktextbufferserialize.c:1057
#, c-format
msgid "Tag \"%s\" does not exist in buffer and tags can not be created."
msgstr ""
"A etiqueta «%s» non existe no búfer e non é posíbel crear as etiquetas."
#: ../gtk/gtktextbufferserialize.c:1146 ../gtk/gtktextbufferserialize.c:1221
#: ../gtk/gtktextbufferserialize.c:1324 ../gtk/gtktextbufferserialize.c:1398
#: ../gtk/gtktextbufferserialize.c:1156 ../gtk/gtktextbufferserialize.c:1231
#: ../gtk/gtktextbufferserialize.c:1336 ../gtk/gtktextbufferserialize.c:1410
#, c-format
msgid "Element <%s> is not allowed below <%s>"
msgstr "Non se permite o elemento <%s> por baixo de <%s>"
#: ../gtk/gtktextbufferserialize.c:1177
#: ../gtk/gtktextbufferserialize.c:1187
#, c-format
msgid "\"%s\" is not a valid attribute type"
msgstr "«%s» non é un tipo de atributo correcto"
#: ../gtk/gtktextbufferserialize.c:1185
#: ../gtk/gtktextbufferserialize.c:1195
#, c-format
msgid "\"%s\" is not a valid attribute name"
msgstr "«%s» non é un nome de atributo correcto"
#: ../gtk/gtktextbufferserialize.c:1195
#: ../gtk/gtktextbufferserialize.c:1205
#, c-format
msgid ""
"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
msgstr ""
"Non foi posíbel converter «%s» nun valor de tipo «%s» para o atributo «%s»"
#: ../gtk/gtktextbufferserialize.c:1204
#: ../gtk/gtktextbufferserialize.c:1214
#, c-format
msgid "\"%s\" is not a valid value for attribute \"%s\""
msgstr "«%s» non é un valor correcto para o atributo «%s»"
#: ../gtk/gtktextbufferserialize.c:1289
#: ../gtk/gtktextbufferserialize.c:1299
#, c-format
msgid "Tag \"%s\" already defined"
msgstr "A etiqueta «%s» xa está definida"
#: ../gtk/gtktextbufferserialize.c:1300
#: ../gtk/gtktextbufferserialize.c:1312
#, c-format
msgid "Tag \"%s\" has invalid priority \"%s\""
msgstr "A etiqueta «%s» ten a prioridade incorrecta«%s»"
#: ../gtk/gtktextbufferserialize.c:1353
#: ../gtk/gtktextbufferserialize.c:1365
#, c-format
msgid "Outermost element in text must be <text_view_markup> not <%s>"
msgstr "O elemento máis extremo no texto debe ser <text_view_markup> non <%s>"
#: ../gtk/gtktextbufferserialize.c:1362 ../gtk/gtktextbufferserialize.c:1378
#: ../gtk/gtktextbufferserialize.c:1374 ../gtk/gtktextbufferserialize.c:1390
#, c-format
msgid "A <%s> element has already been specified"
msgstr "Xa se especificou un elemento <%s>"
#: ../gtk/gtktextbufferserialize.c:1384
#: ../gtk/gtktextbufferserialize.c:1396
msgid "A <text> element can't occur before a <tags> element"
msgstr "Un elemento <text> non pode aparecer antes dun elemento <tags>"
#: ../gtk/gtktextbufferserialize.c:1784
#: ../gtk/gtktextbufferserialize.c:1796
msgid "Serialized data is malformed"
msgstr "Os datos serializados están formados incorrectamente"
#: ../gtk/gtktextbufferserialize.c:1862
#: ../gtk/gtktextbufferserialize.c:1874
msgid ""
"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001"
msgstr ""

View File

@ -364,11 +364,12 @@ bool_modified (GtkToggleButton *tb, gpointer data)
GtkWidget *widget = GTK_WIDGET (p->obj);
GtkWidget *parent = gtk_widget_get_parent (widget);
gtk_container_child_set (GTK_CONTAINER (parent),
widget, p->spec->name, (int) tb->active, NULL);
gtk_container_child_set (GTK_CONTAINER (parent), widget,
p->spec->name, (int) gtk_toggle_button_get_active (tb),
NULL);
}
else
g_object_set (p->obj, p->spec->name, (int) tb->active, NULL);
g_object_set (p->obj, p->spec->name, (int) gtk_toggle_button_get_active (tb), NULL);
}
static void
@ -381,7 +382,7 @@ bool_changed (GObject *object, GParamSpec *pspec, gpointer data)
g_value_init (&val, G_TYPE_BOOLEAN);
get_property_value (object, pspec, &val);
if (g_value_get_boolean (&val) != tb->active)
if (g_value_get_boolean (&val) != gtk_toggle_button_get_active (tb))
{
block_controller (G_OBJECT (tb));
gtk_toggle_button_set_active (tb, g_value_get_boolean (&val));

View File

@ -1773,7 +1773,8 @@ static void
sensitivity_toggled (GtkWidget *toggle,
GtkWidget *widget)
{
gtk_widget_set_sensitive (widget, GTK_TOGGLE_BUTTON (toggle)->active);
gtk_widget_set_sensitive (widget,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle)));
}
static GtkWidget*
@ -1826,7 +1827,7 @@ selectable_toggled (GtkWidget *toggle,
GtkWidget *widget)
{
set_selectable_recursive (widget,
GTK_TOGGLE_BUTTON (toggle)->active);
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle)));
}
static GtkWidget*
@ -2555,7 +2556,7 @@ static void
uposition_stop_configure (GtkToggleButton *toggle,
GObject *window)
{
if (toggle->active)
if (gtk_toggle_button_get_active (toggle))
g_signal_handlers_block_by_func (window, G_CALLBACK (uposition_configure), NULL);
else
g_signal_handlers_unblock_by_func (window, G_CALLBACK (uposition_configure), NULL);
@ -3862,14 +3863,15 @@ entry_toggle_frame (GtkWidget *checkbutton,
GtkWidget *entry)
{
gtk_entry_set_has_frame (GTK_ENTRY(entry),
GTK_TOGGLE_BUTTON(checkbutton)->active);
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)));
}
static void
entry_toggle_sensitive (GtkWidget *checkbutton,
GtkWidget *entry)
{
gtk_widget_set_sensitive (entry, GTK_TOGGLE_BUTTON(checkbutton)->active);
gtk_widget_set_sensitive (entry,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(checkbutton)));
}
static gboolean
@ -3905,7 +3907,7 @@ static void
entry_toggle_progress (GtkWidget *checkbutton,
GtkWidget *entry)
{
if (GTK_TOGGLE_BUTTON (checkbutton)->active)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)))
{
guint timeout = gdk_threads_add_timeout (100,
entry_progress_timeout,
@ -3928,7 +3930,7 @@ entry_toggle_pulse (GtkWidget *checkbutton,
GtkWidget *entry)
{
g_object_set_data (G_OBJECT (entry), "progress-pulse",
GUINT_TO_POINTER ((guint) GTK_TOGGLE_BUTTON (checkbutton)->active));
GUINT_TO_POINTER ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))));
}
static void
@ -4119,7 +4121,7 @@ event_box_toggle_visible_window (GtkWidget *checkbutton,
GtkEventBox *event_box)
{
gtk_event_box_set_visible_window (event_box,
GTK_TOGGLE_BUTTON(checkbutton)->active);
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)));
}
static void
@ -4127,7 +4129,7 @@ event_box_toggle_above_child (GtkWidget *checkbutton,
GtkEventBox *event_box)
{
gtk_event_box_set_above_child (event_box,
GTK_TOGGLE_BUTTON(checkbutton)->active);
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)));
}
static void
@ -4406,13 +4408,15 @@ static GtkWidget *spinner1;
static void
toggle_snap (GtkWidget *widget, GtkSpinButton *spin)
{
gtk_spin_button_set_snap_to_ticks (spin, GTK_TOGGLE_BUTTON (widget)->active);
gtk_spin_button_set_snap_to_ticks (spin,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
static void
toggle_numeric (GtkWidget *widget, GtkSpinButton *spin)
{
gtk_spin_button_set_numeric (spin, GTK_TOGGLE_BUTTON (widget)->active);
gtk_spin_button_set_numeric (spin,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
static void
@ -6239,7 +6243,7 @@ static void
notebook_popup (GtkToggleButton *button,
GtkNotebook *notebook)
{
if (button->active)
if (gtk_toggle_button_get_active (button))
gtk_notebook_popup_enable (notebook);
else
gtk_notebook_popup_disable (notebook);
@ -7700,7 +7704,7 @@ resizable_callback (GtkWidget *widget,
gpointer data)
{
g_object_set (g_object_get_data (data, "target"),
"resizable", GTK_TOGGLE_BUTTON (widget)->active,
"resizable", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
NULL);
}

View File

@ -140,7 +140,7 @@ init_atoms (void)
void
selection_toggled (GtkWidget *widget)
{
if (GTK_TOGGLE_BUTTON(widget)->active)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
{
have_selection = gtk_selection_owner_set (selection_widget,
GDK_SELECTION_PRIMARY,