From 18e43d878f43711783888890723d1d0f2e758161 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 13 Feb 2017 18:20:47 +0100 Subject: [PATCH] Test for FormGdaExElementExtension. --- data/zakformtests/gui/main.ui | 13 ++++++++ data/zakformtests/xml/main.xml | 9 ++++++ src/gtk_gdaex.c | 57 +++++++++++++++++++++++----------- 3 files changed, 61 insertions(+), 18 deletions(-) diff --git a/data/zakformtests/gui/main.ui b/data/zakformtests/gui/main.ui index b41bd8c..0afde1c 100644 --- a/data/zakformtests/gui/main.ui +++ b/data/zakformtests/gui/main.ui @@ -422,6 +422,19 @@ 2 + + + Where + True + True + True + + + True + True + 3 + + False diff --git a/data/zakformtests/xml/main.xml b/data/zakformtests/xml/main.xml index 24360f0..063566a 100644 --- a/data/zakformtests/xml/main.xml +++ b/data/zakformtests/xml/main.xml @@ -8,6 +8,9 @@ FALSE entry1 + + + @@ -29,6 +32,9 @@ camel + + + @@ -68,6 +74,9 @@ and some tabs txt_birthday %d/%m/%Y + + + diff --git a/src/gtk_gdaex.c b/src/gtk_gdaex.c index 3a3fde1..0a03dd3 100644 --- a/src/gtk_gdaex.c +++ b/src/gtk_gdaex.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Andrea Zagli + * Copyright (C) 2015-2017 Andrea Zagli * * 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 @@ -25,51 +25,68 @@ #include GtkWidget *w; +GtkWidget *textview; ZakFormGtkForm *form; ZakFormGdaexProvider *provider; void load_clicked (GtkButton *button, - gpointer user_data) + gpointer user_data) { zak_form_form_load (ZAK_FORM_FORM (form), ZAK_FORM_IPROVIDER (provider)); } void insert_clicked (GtkButton *button, - gpointer user_data) + gpointer user_data) { zak_form_form_insert (ZAK_FORM_FORM (form), ZAK_FORM_IPROVIDER (provider)); } void update_clicked (GtkButton *button, - gpointer user_data) + gpointer user_data) { zak_form_form_update (ZAK_FORM_FORM (form), ZAK_FORM_IPROVIDER (provider)); } +void +where_clicked (GtkButton *button, + gpointer user_data) +{ + gchar *where; + + GtkTextBuffer *buf; + + where = zak_form_gdaex_provider_get_where_str (ZAK_FORM_GDAEX_PROVIDER (provider), + zak_form_form_get_elements (ZAK_FORM_FORM (form))); + + buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)); + + gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buf), where, -1); +} + void is_valid_clicked (GtkButton *button, - gpointer user_data) + gpointer user_data) { zak_form_gtk_form_is_valid (form, w); } void is_changed_clicked (GtkButton *button, - gpointer user_data) + gpointer user_data) { if (zak_form_form_is_changed (ZAK_FORM_FORM (form))) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_OK, - "Form is changed."); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, + "Form is changed."); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } @@ -86,24 +103,28 @@ main (int argc, char *argv[]) builder = gtk_builder_new (); gtk_builder_add_objects_from_file (builder, GUIDIR "/main.ui", - g_strsplit ("w_main" - "|adjustment1", "|", -1), NULL); + g_strsplit ("w_main" + "|adjustment1", "|", -1), NULL); w = GTK_WIDGET (gtk_builder_get_object (builder, "w_main")); + textview = GTK_WIDGET (gtk_builder_get_object (builder, "textview1")); + g_signal_connect (w, "delete-event", - gtk_main_quit, NULL); + gtk_main_quit, NULL); g_signal_connect (gtk_builder_get_object (builder, "button1"), "clicked", - G_CALLBACK (load_clicked), NULL); + G_CALLBACK (load_clicked), NULL); g_signal_connect (gtk_builder_get_object (builder, "button2"), "clicked", - G_CALLBACK (insert_clicked), NULL); + G_CALLBACK (insert_clicked), NULL); g_signal_connect (gtk_builder_get_object (builder, "button3"), "clicked", - G_CALLBACK (update_clicked), NULL); + G_CALLBACK (update_clicked), NULL); + g_signal_connect (gtk_builder_get_object (builder, "button7"), "clicked", + G_CALLBACK (where_clicked), NULL); g_signal_connect (gtk_builder_get_object (builder, "button4"), "clicked", - G_CALLBACK (is_valid_clicked), NULL); + G_CALLBACK (is_valid_clicked), NULL); g_signal_connect (gtk_builder_get_object (builder, "button5"), "clicked", - G_CALLBACK (is_changed_clicked), NULL); + G_CALLBACK (is_changed_clicked), NULL); form = zak_form_gtk_form_new (); zak_form_gtk_form_set_gtkbuilder (form, builder); -- 2.49.0