Implemented uiFontButton on GTK+.

This commit is contained in:
Pietro Gagliardi 2016-04-14 15:55:04 -04:00
parent 1b61bfd67c
commit 042b08f31c
2 changed files with 68 additions and 0 deletions

View File

@ -12,6 +12,7 @@ CFILES += \
unix/datetimepicker.c \ unix/datetimepicker.c \
unix/draw.c \ unix/draw.c \
unix/entry.c \ unix/entry.c \
unix/fontbutton.c \
unix/group.c \ unix/group.c \
unix/label.c \ unix/label.c \
unix/main.c \ unix/main.c \

67
unix/fontbutton.c Normal file
View File

@ -0,0 +1,67 @@
// 14 april 2016
#include "uipriv_unix.h"
struct uiFontButton {
uiUnixControl c;
GtkWidget *widget;
GtkButton *button;
GtkFontButton *fb;
GtkFontChooser *fc;
};
uiUnixDefineControl(
uiFontButton, // type name
uiFontButtonType // type function
)
// TODO NOTE no need to inhibit the signal; font-set is documented as only being sent when the user changes the font
static void onFontSet(GtkFontButton *button, gpointer data)
{
uiFontButton *b = uiFontButton(data);
//TODO (*(b->onClicked))(b, b->onClickedData);
}
#if 0
TODO
static void defaultOnClicked(uiButton *b, void *data)
{
// do nothing
}
#endif
#if 0
TODO
void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *, void *), void *data)
{
b->onClicked = f;
b->onClickedData = data;
}
#endif
uiFontButton *uiNewFontButton(void)
{
uiFontButton *b;
b = (uiFontButton *) uiNewControl(uiFontButtonType());
b->widget = gtk_font_button_new();
b->button = GTK_BUTTON(b->widget);
b->fb = GTK_FONT_BUTTON(b->widget);
b->fc = GTK_FONT_CHOOSER(b->widget);
// match behavior on other platforms
gtk_font_button_set_show_style(b->fb, TRUE);
gtk_font_button_set_show_size(b->fb, TRUE);
gtk_font_button_set_use_font(b->fb, FALSE);
gtk_font_button_set_use_size(b->fb, FALSE);
// other customizations
gtk_font_chooser_set_show_preview_entry(b->fc, TRUE);
g_signal_connect(b->widget, "font-set", G_CALLBACK(onFontSet), b);
//TODO uiButtonOnClicked(b, defaultOnClicked, NULL);
uiUnixFinishNewControl(b, uiFontButton);
return b;
}