X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fcustomentry.c;h=7b3104693589d95d28aa03745d8811baa9b8e176;hb=fc1c214753f9074c05ac1609d8cdecbdf1eea255;hp=961a4e47227436d2f20b5b6b9ae987b5b79c4751;hpb=cf63d499efd5e6ca3a7dcc6386b3b87bd31bfda9;p=pspp-builds.git diff --git a/src/ui/gui/customentry.c b/src/ui/gui/customentry.c index 961a4e47..7b310469 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 @@ -58,9 +54,6 @@ */ #include -#include -#define _(msgid) gettext (msgid) - #include #include @@ -256,13 +249,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 +273,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); } @@ -334,7 +328,7 @@ psppire_custom_entry_class_init (PsppireCustomEntryClass *klass) (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), @@ -342,7 +336,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 +368,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 +400,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;