Web lists-archives.com

Re: Font selection panel as part of notebook




Erc,

On Sun, Sep 24, 2017 at 7:17 PM,  <cecashon@xxxxxxx> wrote:
>
> Igor,
>
> It sounds like you are determined to hack at this. I would recommend the
> newer GtkFontChooserWidget but OK. The PangoFcFamily* isn't much help. You
> need to get your widget pointers and setup up callbacks on your treeviews.
> Maybe all you need is to connect a "row-activated" to know if the user
> clicked on a row. To do this you need to find your pointers. If you use
> gtk_container_forall() you can find them. When doing this you are breaking
> the design of the font selection widget. It is poor practice. It might be
> just what you need though.

It is not "row-activated" that I need, as I can click on the already
selected row.
The "Apply" button should be enabled only if the changes are made.

So how do I modify the code below with the gtk_container_forall()?

Thank you.

>
> Eric
>
> /*
>    gcc -Wall font_selection2.c -o font_selection2 `pkg-config --cflags
> --libs gtk+-2.0`
>    gcc -Wall font_selection2.c -o font_selection2 `pkg-config --cflags
> --libs gtk+-3.0`
>    Tested with GTK3.18 on Ubuntu16.04
> */
>
> #include<gtk/gtk.h>
>
> static void find_widgets(GtkWidget* widget, gint *count)
>   {
>     const char *name = gtk_widget_get_name(widget);
>     printf("% *d. %s\n", (*count)*2, *count, name);
>
>     //Recursive call for each container widget in the file chooser dialog.
>     if(GTK_IS_CONTAINER(widget))
>       {
>         (*count)++;
>         gtk_container_foreach(GTK_CONTAINER(widget),
> (GtkCallback)find_widgets, count);
>         (*count)--;
>       }
>
>   }
> int main(int argc, char *argv[])
>   {
>     gtk_init (&argc, &argv);
>
>     GtkWidget *window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
>     gtk_window_set_title(GTK_WINDOW(window), "Font Selecton");
>     gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);
>     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
>     g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
>
>     G_GNUC_BEGIN_IGNORE_DEPRECATIONS
>     GtkWidget *m_fontPanel=gtk_font_selection_new();
>     G_GNUC_END_IGNORE_DEPRECATIONS
>
>     gtk_container_add(GTK_CONTAINER(window), m_fontPanel);
>
>     gtk_widget_show_all(window);
>
>     gint count=0;
>     gtk_container_forall(GTK_CONTAINER(m_fontPanel),
> (GtkCallback)find_widgets, &count);
>
>     gtk_main();
>
>     return 0;
>   }
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list