module winmain; import dlangui.platforms.common.platform; import dlangui.widgets.widget; import dlangui.core.logger; import dlangui.graphics.fonts; import std.stdio; class TestWidget : Widget { public override void onDraw(DrawBuf buf) { super.onDraw(buf); FontRef font1; FontRef font2; Log.d("Testing opAssign"); font1 = font2; Log.d("Testing copy constructor"); FontRef font3 = font2; Log.d("On draw: getting font"); FontRef font = FontManager.instance.getFont(32, 400, false, FontFamily.SansSerif, "Arial"); Log.d("Got font, drawing text"); font.drawText(buf, _pos.left + 5, _pos.top + 5, "Text"d, 0x0000FF); Log.d("Text is drawn successfully"); } } extern (C) int UIAppMain() { Log.d("Some debug message"); Log.e("Sample error #", 22); Window window = Platform.instance().createWindow("My Window", null); Widget myWidget = new TestWidget(); window.mainWidget = myWidget; window.show(); window.windowCaption = "New Window Caption"; Log.d("Before getFont"); FontRef font = FontManager.instance.getFont(32, 400, false, FontFamily.SansSerif, "Arial"); Log.d("After getFont"); assert(!font.isNull); int[] widths; dchar[] text = cast(dchar[])"Test string"d; Log.d("Calling measureText"); int charsMeasured = font.measureText(text, widths, 1000); assert(charsMeasured > 0); int w = widths[charsMeasured - 1]; Log.d("Measured string: ", charsMeasured, " chars, width=", w); Glyph * g = font.getCharGlyph('A'); Log.d("Char A glyph: ", g.blackBoxX, "x", g.blackBoxY); return Platform.instance().enterMessageLoop(); }