Web lists-archives.com

Re: Font selection panel as part of notebook




Eric,

On Sun, Sep 24, 2017 at 12:33 AM,  <cecashon@xxxxxxx> wrote:
>
> When I test it out it looks like the font selection widget doesn't work very
> well in GTK3.
>
> Not quite sure how you have it setup for GTK2 and what information you are
> using to activate the apply button. The GValue that I get returned is a
> PangoFcFamily*. I don't think this will help unless you pull in private data
> from Pango. You don't like "The quick brown fox..."?

This is what I see on the Terminal:

igor@IgorDellGentoo ~ $ ./fontsel
Cursor Changed
43
((PangoFcFamily*) 0xba5a40)
Cursor Changed
43
((PangoFcFamily*) 0xba5a40)
Cursor Changed
43
((PangoFcFamily*) 0xba5a40)
Cursor Changed
43
((PangoFcFamily*) 0xba5a40)
Cursor Changed
44
((PangoFcFamily*) 0xba5a80)

It initially selects "Sans" and then I select "Serif".

I'm testing with GTK+2.24 on Gentoo Linux.

Thank you.

>
> Eric
>
> /*
>    gcc -Wall font_selection1.c -o font_selection1 `pkg-config --cflags
> --libs gtk+-3.0`
>    gcc -Wall font_selection1.c -o font_selection1 `pkg-config --cflags
> --libs gtk+-2.0`
>    Tested with GTK3.18 on Ubuntu16.04
> */
>
> #include<gtk/gtk.h>
>
> static void font_name_change(GtkTreeView *view, gpointer user_data)
>   {
>     g_print("Cursor Changed\n");
>     GtkTreeIter iter;
>     GValue value=G_VALUE_INIT;
>     GList *selRows = NULL;
>     GtkTreeSelection *sel = gtk_tree_view_get_selection( view );
>     GtkTreeModel *model = gtk_tree_view_get_model( view );
>     selRows = gtk_tree_selection_get_selected_rows( sel, &model );
>     if(selRows!=NULL)
>       {
>         gchar *string1=gtk_tree_path_to_string((GtkTreePath
> *)selRows[0].data);
>         g_print("%s\n", string1);
>         g_free(string1);
>         if(gtk_tree_model_get_iter( model, &iter, (GtkTreePath
> *)selRows[0].data ))
>           {
>             gtk_tree_model_get_value( model, &iter, 0, &value );
>             gchar *string2=g_strdup_value_contents(&value);
>             g_print("%s\n", string2);
>             g_free(string2);
>           }
>         else
>           {
>             g_print("Need a valid iter.\n");
>           }
>       }
>    else
>       {
>         g_print("No list.\n");
>       }
>
>    g_list_free_full(selRows, (GDestroyNotify) gtk_tree_path_free);
>
>   }
> 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();
>     GtkWidget *names = gtk_font_selection_get_family_list((GtkFontSelection
> *) m_fontPanel );
>     //For GTK3.
>     gtk_tree_view_set_activate_on_single_click(GTK_TREE_VIEW(names), TRUE);
>     //GtkWidget *sizes = gtk_font_selection_get_size_entry((GtkFontSelection
> *) m_fontPanel );
>     g_signal_connect( names, "cursor-changed", G_CALLBACK(font_name_change),
> NULL );
>     G_GNUC_END_IGNORE_DEPRECATIONS
>
>     gtk_container_add(GTK_CONTAINER(window), m_fontPanel);
>
>     gtk_widget_show_all(window);
>
>     gtk_main();
>
>     return 0;
>   }
>
>
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list