};
#endif
-void
-MarkMenuItem (char *menuRef, int state)
-{
- MenuItem *item = MenuNameToItem(menuRef);
-
- if(item && item->handle) {
- ((GtkCheckMenuItem *) (item->handle))->active = state;
- }
-}
-
void GetWidgetTextGTK(GtkWidget *w, char **buf)
{
GtkTextIter start;
gtk_window_set_title(GTK_WINDOW(shells[dlg]), title);
}
+int
+SetWidgetFont (GtkWidget *w, char *s)
+{
+ PangoFontDescription *pfd;
+ if (!s || *s == '#') return 0; // no spec, or spec of color: fail
+ if(!*(char**)s) return 1; // empty spec: do nothing, but succeed
+ pfd = pango_font_description_from_string(*(char**)s);
+ gtk_widget_modify_font(w, pfd);
+ return 1;
+}
+
void
SetListBoxItem (GtkListStore *store, int n, char *msg)
{
static GtkTextTag *fgTags[8], *bgTags[8], *font, *bold, *normal, *attr = NULL;
if(!font) {
- font = gtk_text_buffer_create_tag(opt->handle, NULL, "font", "Monospace normal", NULL);
+ font = gtk_text_buffer_create_tag(opt->handle, NULL, "font", appData.icsFont, NULL);
gtk_widget_modify_base(GTK_WIDGET(opt->textValue), GTK_STATE_NORMAL, &backgroundColor);
}
g_signal_connect(opt->handle, "key-press-event", G_CALLBACK (TypeInProc), (gpointer) (dlg<<16 | (opt - dialogOptions[dlg])));
break;
case 5: // game list
+printf("use %s\n", appData.gameListFont);
+ SetWidgetFont(opt->handle, (char*) &appData.gameListFont);
g_signal_connect(opt->handle, "button-press-event", G_CALLBACK (GameListEvent), (gpointer) 0 );
case 4: // game-list filter
g_signal_connect(opt->handle, "key-press-event", G_CALLBACK (GameListEvent), (gpointer) (intptr_t) nr );
GdkEventExpose *eevent = (GdkEventExpose *) event;
GdkEventButton *bevent = (GdkEventButton *) event;
GdkEventMotion *mevent = (GdkEventMotion *) event;
+ GdkEventScroll *sevent = (GdkEventScroll *) event;
GtkAllocation a;
cairo_t *cr;
cairo_destroy(cr);
default:
return;
+ case GDK_SCROLL:
+ if(sevent->direction == GDK_SCROLL_UP) button = 4;
+ if(sevent->direction == GDK_SCROLL_DOWN) button = 5;
+ break;
case GDK_MOTION_NOTIFY:
f = 0;
w = mevent->x; h = mevent->y;
/* no label so let textview occupy all columns */
Pack(hbox, table, sw, left, left+r, top, GTK_EXPAND);
}
+ SetWidgetFont(textview, option[i].textValue);
if ( *(char**)option[i].target != NULL )
gtk_text_buffer_set_text (textbuffer, *(char**)option[i].target, -1);
else
option[i].handle = (void *) (label = gtk_label_new(option[i].name));
/* Left Justify */
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ SetWidgetFont(label, option[i].textValue);
if(option[i].min & BORDER) {
GtkWidget *frame = gtk_frame_new(NULL);
gtk_container_add(GTK_CONTAINER(frame), label);
}
/* set button color on new variant dialog */
+ if(!SetWidgetFont(gtk_bin_get_child(GTK_BIN(button)), option[i].textValue))
if(option[i].textValue) {
gdk_color_parse( option[i].textValue, &color );
gtk_widget_modify_bg ( GTK_WIDGET(button), GTK_STATE_NORMAL, &color );
g_signal_connect (graph, "button-press-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
g_signal_connect (graph, "button-release-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
g_signal_connect (graph, "motion-notify-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
+ g_signal_connect (graph, "scroll-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
if(option[i].min & FIX_H) { // logo
GtkWidget *frame = gtk_aspect_frame_new(NULL, 0.5, 0.5, option[i].max/(float)option[i].value, FALSE);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);