コード例 #1
0
ファイル: page10.c プロジェクト: anilybba/libui
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
}
コード例 #2
0
ファイル: controls.c プロジェクト: mdombroski/libui-lua
static int l_uiMultilineEntryText( lua_State* L )
{
	char* s = uiMultilineEntryText( (uiMultilineEntry*) check_object( L, 1, uiMultilineEntrySignature ) );
	lua_pushstring( L, s );
	uiFreeText( s );
	return 1;
}
コード例 #3
0
ファイル: controls.c プロジェクト: mdombroski/libui-lua
static int l_uiEditableComboboxText( lua_State* L )
{
	char* s = uiEditableComboboxText( (uiEditableCombobox*) check_object( L, 1, uiEditableComboboxSignature ) );
	lua_pushstring( L, s );
	uiFreeText( s );
	return 1;
}
コード例 #4
0
ファイル: controls.c プロジェクト: mdombroski/libui-lua
static int l_uiGroupTitle( lua_State* L )
{
	char* s = uiGroupTitle( (uiGroup*) check_object( L, 1, uiGroupSignature ) );
	lua_pushstring( L, s );
	uiFreeText( s );
	return 1;
}
コード例 #5
0
ファイル: controls.c プロジェクト: mdombroski/libui-lua
static int l_uiLabelText( lua_State* L )
{
	char* s = uiLabelText( (uiLabel*) check_object( L, 1, uiLabelSignature ) );
	lua_pushstring( L, s );
	uiFreeText( s );
	return 1;
}
コード例 #6
0
ファイル: page7a.c プロジェクト: 123vipulj/libui
// 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);
}
コード例 #7
0
ファイル: page13.c プロジェクト: coursera-msb/libui
static void entryChanged(uiEntry *e, void *data)
{
	char *text;

	text = uiEntryText(e);
	printf("%s entry changed: %s\n", (const char *) data, text);
	uiFreeText(text);
}
コード例 #8
0
ファイル: group.c プロジェクト: padicao2010/yalul
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;
}
コード例 #9
0
ファイル: page9.c プロジェクト: 08opt/libui
static double entryDouble(uiEntry *e)
{
	char *s;
	double d;

	s = uiEntryText(e);
	d = atof(s);
	uiFreeText(s);
	return d;
}
コード例 #10
0
ファイル: controls.c プロジェクト: mdombroski/libui-lua
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 );
	}
}
コード例 #11
0
ファイル: main.c プロジェクト: CUGLSF/libui
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);
}
コード例 #12
0
ファイル: main.c プロジェクト: CUGLSF/libui
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);
}
コード例 #13
0
ファイル: controls.c プロジェクト: mdombroski/libui-lua
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 );
	}
}
コード例 #14
0
ファイル: tableediting.cpp プロジェクト: NoSuchProcess/libui
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);
}