dlangui.core.types
This module declares basic data types for usage in dlangui library.Synopsis:
import dlangui.core.types; // points Point p(5, 10); // rectangles Rect r(5, 13, 120, 200); writeln(r); // reference counted objects, useful for RAII / resource management. class Foo : RefCountedObject { int[] resource; ~this() { writeln("freeing Foo resources"); } } { Ref!Foo ref1; { Ref!Foo fooRef = new RefCountedObject(); ref1 = fooRef; } // RAII: will destroy object when no more references }
License:
Boost License 1.0
Authors:
Vadim Lopatin, coolreader.org@gmail.com
- struct Glyph;
- character glyph
- uint id;
- < 0: unique id of glyph (for drawing in hardware accelerated scenes)
- ubyte blackBoxX;
- < 4: width of glyph black box
- ubyte blackBoxY;
- < 5: height of glyph black box
- byte originX;
- < 6: X origin for glyph
- byte originY;
- < 7: Y origin for glyph
- ubyte width;
- < 8: full width of glyph
- ubyte lastUsage;
- < 9: usage flag, to handle cleanup of unused glyphs
- ubyte[] glyph;
- < 12: glyph data, arbitrary size
- class RefCountedObject;
- base class for reference counted objects, maintains reference counter inplace.
- enum State: uint;
- widget state flags - bits
- dchar dcharToUpper(dchar ch);
- uppercase unicode character
- bool isPathDelimiter(char ch);
- returns true if char ch is / or \ slash
- @property string exePath();
- returns current executable path only, including last path delimiter
- char[] convertPathDelimiters(char[] buf);
- converts path delimiters to standard for platform inplace in buffer(e.g. / to \ on windows, \ to / on posix), returns buf
- string convertPathDelimiters(string src);
- converts path delimiters to standard for platform (e.g. / to \ on windows, \ to / on posix)
- string appendPath(string[] pathItems...);
- appends file path parts with proper delimiters e.g. appendPath("/home/user", ".myapp", "config") => "/home/user/.myapp/config"
- char[] appendPath(char[] buf, string[] pathItems...);
- appends file path parts with proper delimiters (as well converts delimiters inside path to system) to buffer e.g. appendPath("/home/user", ".myapp", "config") => "/home/user/.myapp/config"