X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fcustomentry.c;h=b40c11cd0301588c14309485e348a86723e19764;hb=67ab7839678c0f8aa12459ce5a585a5636f20196;hp=961a4e47227436d2f20b5b6b9ae987b5b79c4751;hpb=cf63d499efd5e6ca3a7dcc6386b3b87bd31bfda9;p=pspp
diff --git a/src/ui/gui/customentry.c b/src/ui/gui/customentry.c
index 961a4e4722..b40c11cd03 100644
--- a/src/ui/gui/customentry.c
+++ b/src/ui/gui/customentry.c
@@ -1,10 +1,9 @@
-/*
- PSPPIRE --- A Graphical User Interface for PSPP
- Copyright (C) 2005 Free Software Foundation
+/* PSPPIRE - a graphical user interface for PSPP.
+ Copyright (C) 2005, 2007 Free Software Foundation
- This program is free software; you can redistribute it and/or modify
+ 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
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@ -13,10 +12,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301, USA.
-*/
+ along with this program. If not, see . */
/*
This widget is a subclass of GtkEntry. It's an entry widget with a
@@ -45,11 +41,11 @@
* 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.
+ * License along with this library. If not, see
+ * .
*/
+
/*
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
@@ -256,13 +252,14 @@ static gint
psppire_custom_entry_expose (GtkWidget *widget,
GdkEventExpose *event)
{
- PsppireCustomEntry *ce = PSPPIRE_CUSTOM_ENTRY(widget);
+ PsppireCustomEntry *ce = PSPPIRE_CUSTOM_ENTRY (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))
{
+ gboolean is_editable;
GtkShadowType shadow_type;
GdkRectangle rect;
@@ -279,14 +276,14 @@ psppire_custom_entry_expose (GtkWidget *widget,
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);
}
@@ -342,7 +339,7 @@ psppire_custom_entry_class_init (PsppireCustomEntryClass *klass)
custom_entry_signals[CLICKED] =
g_signal_new ("clicked",
- G_TYPE_FROM_CLASS(gobject_class),
+ G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
@@ -374,10 +371,13 @@ psppire_custom_entry_button_press (GtkWidget *widget,
if (event->window == ce->panel)
{
+ 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);
}
@@ -403,7 +403,7 @@ psppire_custom_entry_size_allocate (GtkWidget *widget,
g_return_if_fail (allocation != NULL);
ce = PSPPIRE_CUSTOM_ENTRY (widget);
- button_width = psppire_custom_entry_get_button_width(ce);
+ button_width = psppire_custom_entry_get_button_width (ce);
panel_width = button_width + 2 * widget->style->xthickness;
widget->allocation = *allocation;