Re: Font selection panel as part of notebook
- From: Igor Korot <ikorot01 gmail com>
- To: cecashon aol com
- Cc: "gtk-list gnome org" <gtk-list gnome org>
- Subject: Re: Font selection panel as part of notebook
- Date: Wed, 27 Sep 2017 22:52:15 -0400
Eric,
On Sun, Sep 24, 2017 at 7:17 PM, <cecashon aol com> 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.
I did make it work with this sample.
The only thing I found - apparently GtkTreeView is also a GtkContainer().
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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]