Hi Aitor,
Thanks for taking some time to answer my question. I did as you
instructed me and successfully compile and run the test program.
However, the test program failed to close even though I closed its
window. I had to kill it using Ctrl + C.
Thanks
On 29/11/2015, aitor_czr <aitor_czr@???> wrote:
> Hi Edward,
>
> Replace by GtkObject* object by GtkWidget* widget in the routine
> 'on_window_destroy'. On the other hand, use -export-dynamic. Otherwise,
> you will get warnings running the executable:
>
> (prueba:4108): Gtk-WARNING **: Could not find signal handler
> 'on_togglebutton1_clicked'. Did you compile with -rdynamic?
>
> In other words:
>
> $ gcc -o gtkprog gtkprog.c -export-dynamic `pkg-config --libs --cflags
> gtk+-3.0`
>
> HTH,
>
> Aitor.
>
> On 11/28/2015 07:46 PM, Edward Bartolo <edbarx@???> wrote:
>> Hi All,
>>
>> I am trying to practice creating a GUI with gtk but I am failing to
>> compile my little test application.
>>
>> --------------------------------------------
>>
>> #include <gtk/gtk.h>
>>
>> void
>> on_window_destroy (GtkObject *object, gpointer user_data)
>> {
>> gtk_main_quit ();
>> }
>>
>> int
>> main (int argc, char *argv[])
>> {
>> GtkBuilder *builder;
>> GtkWidget *window;
>>
>> gtk_init (&argc, &argv);
>>
>> builder = gtk_builder_new ();
>> gtk_builder_add_from_file (builder, "gui.glade", NULL);
>> window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
>> gtk_builder_connect_signals (builder, NULL);
>>
>> g_object_unref (G_OBJECT (builder));
>>
>> gtk_widget_show (window);
>> gtk_main ();
>>
>> return 0;
>> }
>>
>> ------------------------------
>>
>> The .glade file:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!-- Generated with glade 3.18.3 -->
>> <interface>
>> <requires lib="gtk+" version="3.12"/>
>> <object class="GtkWindow" id="window1">
>> <property name="can_focus">False</property>
>> <child>
>> <object class="GtkBox" id="box1">
>> <property name="visible">True</property>
>> <property name="can_focus">False</property>
>> <property name="orientation">vertical</property>
>> <child>
>> <object class="GtkMenuButton" id="menubutton1">
>> <property name="visible">True</property>
>> <property name="can_focus">True</property>
>> <property name="receives_default">True</property>
>> <child>
>> <placeholder/>
>> </child>
>> </object>
>> <packing>
>> <property name="expand">False</property>
>> <property name="fill">True</property>
>> <property name="position">0</property>
>> </packing>
>> </child>
>> <child>
>> <object class="GtkTextView" id="textview1">
>> <property name="visible">True</property>
>> <property name="can_focus">True</property>
>> <property name="wrap_mode">word</property>
>> </object>
>> <packing>
>> <property name="expand">True</property>
>> <property name="fill">True</property>
>> <property name="position">1</property>
>> </packing>
>> </child>
>> <child>
>> <object class="GtkToggleButton" id="togglebutton1">
>> <property name="label"
>> translatable="yes">togglebutton</property>
>> <property name="width_request">100</property>
>> <property name="visible">True</property>
>> <property name="can_focus">True</property>
>> <property name="receives_default">True</property>
>> <property name="halign">end</property>
>> <property name="valign">center</property>
>> <property name="xalign">0.51999998092651367</property>
>> <property name="image_position">right</property>
>> <signal name="clicked" handler="on_togglebutton1_clicked"
>> object="textview1" swapped="no"/>
>> </object>
>> <packing>
>> <property name="expand">False</property>
>> <property name="fill">True</property>
>> <property name="pack_type">end</property>
>> <property name="position">2</property>
>> </packing>
>> </child>
>> </object>
>> </child>
>> </object>
>> </interface>
> ------------------------------ The command to compile: $ gcc -o gtkprog
> gtkprog.c `pkg-config --libs --cflags gtk+-3.0` Could anyone shed some
> light on what I am doing wrong? Edward
>