static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *dp) { #if 0 uiDrawTextFontDescriptor desc; uiDrawTextFont *font; char *s; char *family; // make compiler happy uiDrawTextLayout *layout; uiDrawTextFontMetrics metrics; double ypos; double width; double height; memset(&desc, 0, sizeof (uiDrawTextFontDescriptor)); family = uiEntryText(textFont); desc.Family = family; desc.Size = entryDouble(textSize); desc.Weight = uiComboboxSelected(textWeight); desc.Italic = uiComboboxSelected(textItalic); desc.SmallCaps = uiCheckboxChecked(textSmallCaps); desc.Stretch = uiComboboxSelected(textStretch); desc.Gravity = uiComboboxSelected(textGravity); font = uiDrawLoadClosestFont(&desc); uiFreeText(family); uiDrawTextFontGetMetrics(font, &metrics); width = entryDouble(textWidth); drawGuides(dp->Context, &metrics); s = uiEntryText(textString); layout = uiDrawNewTextLayout(s, font, width); uiFreeText(s); ypos = 10; uiDrawText(dp->Context, 10, ypos, layout); // TODO make these optional? uiDrawTextLayoutExtents(layout, &width, &height); uiDrawFreeTextLayout(layout); layout = uiDrawNewTextLayout("This is a second line", font, -1); if (/*TODO reuse width*/entryDouble(textWidth) < 0) { double ad; ad = metrics.Ascent + metrics.Descent; printf("ad:%g extent:%g\n", ad, height); } ypos += height; if (uiCheckboxChecked(addLeading)) ypos += metrics.Leading; uiDrawText(dp->Context, 10, ypos, layout); uiDrawFreeTextLayout(layout); uiDrawFreeTextFont(font); #endif }
static int l_uiMultilineEntryText( lua_State* L ) { char* s = uiMultilineEntryText( (uiMultilineEntry*) check_object( L, 1, uiMultilineEntrySignature ) ); lua_pushstring( L, s ); uiFreeText( s ); return 1; }
static int l_uiEditableComboboxText( lua_State* L ) { char* s = uiEditableComboboxText( (uiEditableCombobox*) check_object( L, 1, uiEditableComboboxSignature ) ); lua_pushstring( L, s ); uiFreeText( s ); return 1; }
static int l_uiGroupTitle( lua_State* L ) { char* s = uiGroupTitle( (uiGroup*) check_object( L, 1, uiGroupSignature ) ); lua_pushstring( L, s ); uiFreeText( s ); return 1; }
static int l_uiLabelText( lua_State* L ) { char* s = uiLabelText( (uiLabel*) check_object( L, 1, uiLabelSignature ) ); lua_pushstring( L, s ); uiFreeText( s ); return 1; }
// based on the cairo arc sample static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *p) { double xc = 128.0; double yc = 128.0; double radius = 100.0; uiDrawBrush source; uiDrawStrokeParams sp; uiDrawPath *path; char *startText; char *sweepText; double factor; source.Type = uiDrawBrushTypeSolid; source.R = 0; source.G = 0; source.B = 0; source.A = 1; sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.MiterLimit = uiDrawDefaultMiterLimit; sp.Dashes = NULL; sp.NumDashes = 0; sp.DashPhase = 0; startText = uiEntryText(startAngle); sweepText = uiEntryText(sweep); factor = M_PI / 180; if (uiCheckboxChecked(radians)) factor = 1; sp.Thickness = 10.0; path = uiDrawNewPath(uiDrawFillModeWinding); uiDrawPathNewFigure(path, xc, yc); uiDrawPathArcTo(path, xc, yc, radius, atof(startText) * factor, atof(sweepText) * factor, uiCheckboxChecked(negative)); uiDrawPathEnd(path); uiDrawStroke(p->Context, path, &source, &sp); uiDrawFreePath(path); uiFreeText(startText); uiFreeText(sweepText); }
static void entryChanged(uiEntry *e, void *data) { char *text; text = uiEntryText(e); printf("%s entry changed: %s\n", (const char *) data, text); uiFreeText(text); }
static int groupTitle(lua_State *L) { assert(yalulCheckControl(L, 1, YALUL_GROUP_LIB)); char *text = uiGroupTitle(CAST_ARG(1, Group)); lua_pushstring(L, text); uiFreeText(text); return 1; }
static double entryDouble(uiEntry *e) { char *s; double d; s = uiEntryText(e); d = atof(s); uiFreeText(s); return d; }
static void callback_uiMultilineEntryOnChanged( uiMultilineEntry* c, void* d ) { lua_State* L = (lua_State*) d; if( L ) { char* str = uiMultilineEntryText( c ); lua_pushstring( L, str ); uiFreeText( str ); invoke_callback( L, c, callback_OnChanged, 1 ); } }
static void saveClicked(uiMenuItem *item, uiWindow *w, void *data) { char *filename; filename = uiSaveFile(mainwin); if (filename == NULL) { uiMsgBoxError(mainwin, "No file selected", "Don't be alarmed!"); return; } uiMsgBox(mainwin, "File selected (don't worry, it's still there)", filename); uiFreeText(filename); }
static void openClicked(uiMenuItem *item, uiWindow *w, void *data) { char *filename; filename = uiOpenFile(mainwin); if (filename == NULL) { uiMsgBoxError(mainwin, "No file selected", "Don't be alarmed!"); return; } uiMsgBox(mainwin, "File selected", filename); uiFreeText(filename); }
static void callback_uiEditableComboboxOnChanged( uiEditableCombobox* c, void* d ) { lua_State* L = (lua_State*) d; if( L ) { object_create( L, uiNewCombobox(), uiComboboxSignature, control_common, combobox_functions, 0 ); char* text = uiEditableComboboxText( c ); lua_pushstring( L, text ); invoke_callback( L, c, callback_OnChanged, 1 ); uiFreeText( text ); } }
HRESULT uiprivTableFinishEditingText(uiTable *t) { uiprivTableColumnParams *p; uiTableValue *value; char *text; if (t->edit == NULL) return S_OK; text = uiWindowsWindowText(t->edit); value = uiNewTableValueString(text); uiFreeText(text); p = (*(t->columns))[t->editedSubitem]; uiprivTableModelSetCellValue(t->model, t->editedItem, p->textModelColumn, value); uiFreeTableValue(value); // always refresh the value in case the model rejected it if (SendMessageW(t->hwnd, LVM_UPDATE, (WPARAM) (t->editedItem), 0) == (LRESULT) (-1)) { logLastError(L"LVM_UPDATE"); return E_FAIL; } return uiprivTableAbortEditingText(t); }