From 82c5797863dc3eea87e891736e11adebde09c756 Mon Sep 17 00:00:00 2001 From: Andrea Zagli <a.zagli@comune.scandicci.fi.it> Date: Wed, 29 Jan 2014 08:44:40 +0100 Subject: [PATCH] Changes to compile with gtk3. --- configure.ac | 10 +++++----- libgtkmaskedentry.pc.in | 4 ++-- src/gtkcellrenderermasked.c | 34 +++++++++++++++++++++++----------- src/gtkmaskedentry.c | 4 ++-- tests/masked_entry.c | 22 +++++++++++----------- 5 files changed, 43 insertions(+), 31 deletions(-) diff --git a/configure.ac b/configure.ac index 311fac7..67c77ed 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([GtkMaskedEntry], [0.0.3], [azagli@libero.it]) +AC_INIT([GtkMaskedEntry], [0.0.4], [azagli@libero.it]) AC_CONFIG_SRCDIR([src/gtkmaskedentry.c]) AM_CONFIG_HEADER(config.h) @@ -28,9 +28,9 @@ AC_C_CONST GTK_DOC_CHECK(1.0) -PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6.0) -PKG_CHECK_EXISTS(gladeui-1.0 >= 3.2.0, [GLADEUI_FOUND=yes], [GLADEUI_FOUND=no]) -PKG_CHECK_EXISTS(libgtkform >= 0.2.0, [LIBGTKFORM_FOUND=yes], [LIBGTKFORM_FOUND=no]) +PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0.0) +PKG_CHECK_EXISTS(gladeui-2.0 >= 3.10.0, [GLADEUI_FOUND=yes], [GLADEUI_FOUND=no]) +PKG_CHECK_EXISTS(libgtkform >= 0.5.0, [LIBGTKFORM_FOUND=yes], [LIBGTKFORM_FOUND=no]) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) @@ -39,7 +39,7 @@ AM_CONDITIONAL(GLADEUI_FOUND, test $GLADEUI_FOUND = yes) AM_CONDITIONAL(LIBGTKFORM_FOUND, test $LIBGTKFORM_FOUND = yes) if test $LIBGTKFORM_FOUND = yes; then -PKG_CHECK_MODULES(GTKFORM, libgtkform >= 0.2.0) +PKG_CHECK_MODULES(GTKFORM, libgtkform >= 0.5.0) AC_SUBST(GTKFORM_CFLAGS) AC_SUBST(GTKFORM_LIBS) diff --git a/libgtkmaskedentry.pc.in b/libgtkmaskedentry.pc.in index 5cde12d..d5e8425 100644 --- a/libgtkmaskedentry.pc.in +++ b/libgtkmaskedentry.pc.in @@ -4,8 +4,8 @@ libdir=@libdir@ includedir=@includedir@ Name: @PACKAGE_NAME@ -Description: GTK+ 2.0 Masked Entry Widget +Description: GTK+ 3.0 Masked Entry Widget Version: @PACKAGE_VERSION@ -Requires: gtk+-2.0 +Requires: gtk+-3.0 Libs: -L${libdir} -lgtkmaskedentry Cflags: -I${includedir} diff --git a/src/gtkcellrenderermasked.c b/src/gtkcellrenderermasked.c index ccbf1ee..06f1843 100644 --- a/src/gtkcellrenderermasked.c +++ b/src/gtkcellrenderermasked.c @@ -1,6 +1,6 @@ /* * GtkCellRendererMasked widget for GTK+ - * Copyright (C) 2005-2011 Andrea Zagli <azagli@libero.it> + * Copyright (C) 2005-2014 Andrea Zagli <azagli@libero.it> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -43,8 +43,8 @@ static GtkCellEditable *gtk_cell_renderer_masked_start_editing (GtkCellRenderer GdkEvent *event, GtkWidget *widget, const gchar *path, - GdkRectangle *background_area, - GdkRectangle *cell_area, + const GdkRectangle *background_area, + const GdkRectangle *cell_area, GtkCellRendererState flags); @@ -175,13 +175,17 @@ gtk_cell_renderer_masked_editing_done (GtkCellEditable *entry, gpointer data) { const gchar *path, *new_text; + + gboolean editing_canceled; + GtkCellRendererMaskedPrivate *priv = GTK_CELL_RENDERER_MASKED_GET_PRIVATE (data); priv->entry = NULL; + g_object_get (G_OBJECT (entry), "editing-canceled", &editing_canceled, NULL); gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (data), - GTK_ENTRY (entry)->editing_canceled); - if (GTK_ENTRY (entry)->editing_canceled) + editing_canceled); + if (editing_canceled) return; path = g_object_get_data (G_OBJECT (entry), GTK_CELL_RENDERER_TEXT_PATH); @@ -195,30 +199,38 @@ static GtkCellEditable GdkEvent *event, GtkWidget *widget, const gchar *path, - GdkRectangle *background_area, - GdkRectangle *cell_area, + const GdkRectangle *background_area, + const GdkRectangle *cell_area, GtkCellRendererState flags) { GtkCellRendererMasked *celltext; GtkCellRendererMaskedPrivate *priv; + gboolean editable; + gfloat xalign; + gchar *text; + celltext = GTK_CELL_RENDERER_MASKED (cell); priv = GTK_CELL_RENDERER_MASKED_GET_PRIVATE (cell); /* If the cell isn't editable we return NULL. */ - if (GTK_CELL_RENDERER_TEXT (celltext)->editable == FALSE) + g_object_get (G_OBJECT (celltext), "editable", &editable, NULL); + if (editable == FALSE) return NULL; + g_object_get (G_OBJECT (cell), "xalign", &xalign, NULL); priv->entry = g_object_new (GTK_TYPE_MASKED_ENTRY, "has-frame", FALSE, - "xalign", cell->xalign, + "xalign", xalign, NULL); if (priv->mask) gtk_masked_entry_set_mask (GTK_MASKED_ENTRY (priv->entry), priv->mask); - if (GTK_CELL_RENDERER_TEXT (celltext)->text) - gtk_entry_set_text (GTK_ENTRY (priv->entry), GTK_CELL_RENDERER_TEXT (celltext)->text); + text = NULL; + g_object_get (G_OBJECT (celltext), "text", &text, NULL); + if (text) + gtk_entry_set_text (GTK_ENTRY (priv->entry), text); g_object_set_data_full (G_OBJECT (priv->entry), GTK_CELL_RENDERER_TEXT_PATH, g_strdup (path), g_free); diff --git a/src/gtkmaskedentry.c b/src/gtkmaskedentry.c index 81662b5..4de3e11 100644 --- a/src/gtkmaskedentry.c +++ b/src/gtkmaskedentry.c @@ -1,6 +1,6 @@ /* * GtkMaskedEntry widget for GTK+ - * Copyright (C) 2005-2011 Andrea Zagli <azagli@libero.it> + * Copyright (C) 2005-2014 Andrea Zagli <azagli@libero.it> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -262,7 +262,7 @@ gtk_masked_entry_key_press_event (GtkWidget *widget, GtkMaskedEntry *masked_entry = GTK_MASKED_ENTRY (user_data); GtkMaskedEntryPrivate *priv = GTK_MASKED_ENTRY_GET_PRIVATE (masked_entry); - if ((event->keyval == GDK_Tab || event->keyval == GDK_ISO_Left_Tab) + if ((event->keyval == GDK_KEY_Tab || event->keyval == GDK_KEY_ISO_Left_Tab) && priv->tab_inside) { gint pos; diff --git a/tests/masked_entry.c b/tests/masked_entry.c index 9462dd7..bd3d7f1 100644 --- a/tests/masked_entry.c +++ b/tests/masked_entry.c @@ -1,6 +1,6 @@ /* * GtkMaskedEntry widget test - * Copyright (C) 2005-2009 Andrea Zagli <azagli@libero.it> + * Copyright (C) 2005-2014 Andrea Zagli <azagli@libero.it> * * This software is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -53,8 +53,8 @@ static void btn_setmask_on_clicked (GtkButton *button, gpointer user_data) { - gtk_masked_entry_set_mask (GTK_MASKED_ENTRY (masked_entry), gtk_combo_box_get_active_text (GTK_COMBO_BOX (txtMask))); - g_object_set (G_OBJECT (rend), "mask", gtk_combo_box_get_active_text (GTK_COMBO_BOX (txtMask)), NULL); + gtk_masked_entry_set_mask (GTK_MASKED_ENTRY (masked_entry), gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (txtMask))); + g_object_set (G_OBJECT (rend), "mask", gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (txtMask)), NULL); } static void @@ -127,18 +127,18 @@ main (int argc, char **argv) gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, 0, 0, 3, 3); gtk_widget_show (label); - txtMask = gtk_combo_box_entry_new_text (); + txtMask = gtk_combo_box_text_new_with_entry (); gtk_table_attach (GTK_TABLE (table), txtMask, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 3, 3); gtk_widget_show (txtMask); /* some mask examples */ - gtk_combo_box_append_text (GTK_COMBO_BOX (txtMask), "00/00/0000"); - gtk_combo_box_append_text (GTK_COMBO_BOX (txtMask), "999 999 999"); /* digit excluded 0 */ - gtk_combo_box_append_text (GTK_COMBO_BOX (txtMask), "@@@ @@@ @@@"); /* alpha */ - gtk_combo_box_append_text (GTK_COMBO_BOX (txtMask), "^^^ ^^^ ^^^"); /* alpha to upper case */ - gtk_combo_box_append_text (GTK_COMBO_BOX (txtMask), "ABC 00@@@00"); - gtk_combo_box_append_text (GTK_COMBO_BOX (txtMask), "### some text"); - + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (txtMask), "00/00/0000"); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (txtMask), "999 999 999"); /* digit excluded 0 */ + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (txtMask), "@@@ @@@ @@@"); /* alpha */ + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (txtMask), "^^^ ^^^ ^^^"); /* alpha to upper case */ + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (txtMask), "ABC 00@@@00"); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (txtMask), "### some text"); + btnSetMask = gtk_button_new_with_label ("Set Mask"); gtk_table_attach (GTK_TABLE (table), btnSetMask, 2, 3, 0, 1, 0, 0, 3, 3); gtk_widget_show (btnSetMask); -- 2.49.0