Default font example

This commit is contained in:
Niklas Mischkulnig 2018-06-04 11:45:42 +02:00
parent 6de328c127
commit e114e71741
1 changed files with 20 additions and 2 deletions

View File

@ -8,6 +8,7 @@ uiArea *area;
uiAreaHandler handler; uiAreaHandler handler;
uiFontButton *fontButton; uiFontButton *fontButton;
uiCombobox *alignment; uiCombobox *alignment;
uiCheckbox *systemFont;
uiAttributedString *attrstr; uiAttributedString *attrstr;
@ -97,16 +98,24 @@ static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *p)
uiDrawTextLayout *textLayout; uiDrawTextLayout *textLayout;
uiFontDescriptor defaultFont; uiFontDescriptor defaultFont;
uiDrawTextLayoutParams params; uiDrawTextLayoutParams params;
int useSystemFont = uiCheckboxChecked(systemFont);
params.String = attrstr; params.String = attrstr;
if(useSystemFont) {
uiDrawLoadDefaultFont(&defaultFont);
} else {
uiFontButtonFont(fontButton, &defaultFont); uiFontButtonFont(fontButton, &defaultFont);
}
printf("%s\n", defaultFont.Family);
params.DefaultFont = &defaultFont; params.DefaultFont = &defaultFont;
params.Width = p->AreaWidth; params.Width = p->AreaWidth;
params.Align = (uiDrawTextAlign) uiComboboxSelected(alignment); params.Align = (uiDrawTextAlign) uiComboboxSelected(alignment);
textLayout = uiDrawNewTextLayout(&params); textLayout = uiDrawNewTextLayout(&params);
uiDrawText(p->Context, textLayout, 0, 0); uiDrawText(p->Context, textLayout, 0, 0);
uiDrawFreeTextLayout(textLayout); uiDrawFreeTextLayout(textLayout);
if(!useSystemFont) {
uiFreeFontButtonFont(&defaultFont); uiFreeFontButtonFont(&defaultFont);
}
} }
static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent *e) static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent *e)
@ -140,6 +149,11 @@ static void onComboboxSelected(uiCombobox *b, void *data)
uiAreaQueueRedrawAll(area); uiAreaQueueRedrawAll(area);
} }
static void onCheckboxToggled(uiCheckbox *b, void *data)
{
uiAreaQueueRedrawAll(area);
}
static int onClosing(uiWindow *w, void *data) static int onClosing(uiWindow *w, void *data)
{ {
uiControlDestroy(uiControl(mainwin)); uiControlDestroy(uiControl(mainwin));
@ -208,6 +222,10 @@ int main(void)
uiComboboxOnSelected(alignment, onComboboxSelected, NULL); uiComboboxOnSelected(alignment, onComboboxSelected, NULL);
uiFormAppend(form, "Alignment", uiControl(alignment), 0); uiFormAppend(form, "Alignment", uiControl(alignment), 0);
systemFont = uiNewCheckbox("");
uiCheckboxOnToggled(systemFont, onCheckboxToggled, NULL);
uiFormAppend(form, "System Font", uiControl(systemFont), 0);
area = uiNewArea(&handler); area = uiNewArea(&handler);
uiBoxAppend(hbox, uiControl(area), 1); uiBoxAppend(hbox, uiControl(area), 1);