/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2005 Free Software Foundation
+ Copyright (C) 2005, 2007, 2010, 2011 Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
#include <config.h>
-#include <gettext.h>
-#define _(msgid) gettext (msgid)
-
-#include <gtk/gtksignal.h>
-#include <gtk/gtkentry.h>
+#include <gtk/gtk.h>
#include "customentry.h"
-
+#include "helper.h"
static void psppire_custom_entry_class_init (PsppireCustomEntryClass *klass);
static void psppire_custom_entry_init (PsppireCustomEntry *ce);
static void
psppire_custom_entry_map (GtkWidget *widget)
{
- if (GTK_WIDGET_REALIZED (widget) && !GTK_WIDGET_MAPPED (widget))
+ if (gtk_widget_get_realized (widget) && !gtk_widget_get_mapped (widget))
{
GTK_WIDGET_CLASS (parent_class)->map (widget);
gdk_window_show (PSPPIRE_CUSTOM_ENTRY (widget)->panel);
static void
psppire_custom_entry_unmap (GtkWidget *widget)
{
- if (GTK_WIDGET_MAPPED (widget))
+ if (gtk_widget_get_mapped (widget))
{
gdk_window_hide (PSPPIRE_CUSTOM_ENTRY (widget)->panel);
GTK_WIDGET_CLASS (parent_class)->unmap (widget);
widget = GTK_WIDGET (custom_entry);
- if (GTK_WIDGET_DRAWABLE (widget))
+ if (gtk_widget_is_drawable (widget))
{
gtk_widget_queue_draw (widget);
g_return_val_if_fail (PSPPIRE_IS_CUSTOM_ENTRY (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
- if (GTK_WIDGET_DRAWABLE (widget))
+ if (gtk_widget_is_drawable (widget))
{
+ gboolean is_editable;
GtkShadowType shadow_type;
GdkRectangle rect;
shadow_type = psppire_custom_entry_get_shadow_type (ce);
- if (shadow_type != GTK_SHADOW_NONE)
- {
- gtk_paint_box (widget->style, ce->panel,
- GTK_STATE_NORMAL, shadow_type,
- NULL, widget, "customentry",
- rect.x, rect.y, rect.width, rect.height);
+ g_object_get (widget, "editable", &is_editable, NULL);
+
+ gtk_paint_box (widget->style, ce->panel,
+ is_editable ? GTK_STATE_NORMAL: GTK_STATE_INSENSITIVE,
+ shadow_type,
+ NULL, widget, "customentry",
+ rect.x, rect.y, rect.width, rect.height);
- }
gdk_window_end_paint (ce->panel);
}
(widget_class,
g_param_spec_enum ("shadow_type",
"Shadow Type",
- _("Style of bevel around the custom entry button"),
+ "Style of bevel around the custom entry button",
GTK_TYPE_SHADOW_TYPE,
GTK_SHADOW_ETCHED_IN,
G_PARAM_READABLE),
if (event->window == ce->panel)
{
- if (!GTK_WIDGET_HAS_FOCUS (widget))
+ gboolean is_editable ;
+ if (!gtk_widget_has_focus (widget))
gtk_widget_grab_focus (widget);
- if ( event->button == 1)
+ g_object_get (ce, "editable", &is_editable, NULL);
+
+ if ( event->button == 1 && is_editable )
g_signal_emit (widget, custom_entry_signals[CLICKED], 0);
}
GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, &entry_allocation);
- if (GTK_WIDGET_REALIZED (widget))
+ if (gtk_widget_get_realized (widget))
{
gdk_window_move_resize (PSPPIRE_CUSTOM_ENTRY (widget)->panel,
panel_allocation.x,