Merge pull request #415 from John-Colvin/register_tabwidget

register TabWidget
This commit is contained in:
Vadim Lopatin 2017-09-04 14:02:59 +03:00 committed by GitHub
commit 0007f441c6
1 changed files with 17 additions and 15 deletions

View File

@ -1,4 +1,4 @@
module dlangui.platforms.common.startup; module dlangui.platforms.common.startup;
import dlangui.core.config; import dlangui.core.config;
import dlangui.core.events; import dlangui.core.events;
@ -11,7 +11,7 @@ static if (BACKEND_GUI) {
import dlangui.graphics.ftfonts; import dlangui.graphics.ftfonts;
version (Windows) { version (Windows) {
/// initialize font manager - default implementation /// initialize font manager - default implementation
/// On win32 - first it tries to init freetype, and falls back to win32 fonts. /// On win32 - first it tries to init freetype, and falls back to win32 fonts.
/// On linux/mac - tries to init freetype with some hardcoded font paths /// On linux/mac - tries to init freetype with some hardcoded font paths
@ -23,12 +23,12 @@ version (Windows) {
/// testing freetype font manager /// testing freetype font manager
static if (ENABLE_FREETYPE) { static if (ENABLE_FREETYPE) {
Log.v("Trying to init FreeType font manager"); Log.v("Trying to init FreeType font manager");
import dlangui.graphics.ftfonts; import dlangui.graphics.ftfonts;
// trying to create font manager // trying to create font manager
Log.v("Creating FreeTypeFontManager"); Log.v("Creating FreeTypeFontManager");
FreeTypeFontManager ftfontMan = new FreeTypeFontManager(); FreeTypeFontManager ftfontMan = new FreeTypeFontManager();
import core.sys.windows.shlobj; import core.sys.windows.shlobj;
string fontsPath = "c:\\Windows\\Fonts\\"; string fontsPath = "c:\\Windows\\Fonts\\";
static if (true) { // SHGetFolderPathW not found in shell32.lib static if (true) { // SHGetFolderPathW not found in shell32.lib
@ -84,14 +84,14 @@ version (Windows) {
} catch (Exception e) { } catch (Exception e) {
Log.e("Cannot create FreeTypeFontManager - falling back to win32"); Log.e("Cannot create FreeTypeFontManager - falling back to win32");
} }
// use Win32 font manager // use Win32 font manager
if (FontManager.instance is null) { if (FontManager.instance is null) {
FontManager.instance = new Win32FontManager(); FontManager.instance = new Win32FontManager();
} }
return true; return true;
} }
} else { } else {
import dlangui.graphics.ftfonts; import dlangui.graphics.ftfonts;
bool registerFonts(FreeTypeFontManager ft, string path) { bool registerFonts(FreeTypeFontManager ft, string path) {
@ -132,13 +132,13 @@ version (Windows) {
foreach(file; fontFiles) foreach(file; fontFiles)
ft.registerFont(file); ft.registerFont(file);
} }
/// initialize font manager - default implementation /// initialize font manager - default implementation
/// On win32 - first it tries to init freetype, and falls back to win32 fonts. /// On win32 - first it tries to init freetype, and falls back to win32 fonts.
/// On linux/mac - tries to init freetype with some hardcoded font paths /// On linux/mac - tries to init freetype with some hardcoded font paths
extern(C) bool initFontManager() { extern(C) bool initFontManager() {
FreeTypeFontManager ft = new FreeTypeFontManager(); FreeTypeFontManager ft = new FreeTypeFontManager();
if (!registerFontConfigFonts(ft)) { if (!registerFontConfigFonts(ft)) {
// TODO: use FontConfig // TODO: use FontConfig
Log.w("No fonts found using FontConfig. Trying hardcoded paths."); Log.w("No fonts found using FontConfig. Trying hardcoded paths.");
@ -201,10 +201,10 @@ version (Windows) {
ft.registerFont("/System/Library/Fonts/Menlo.ttc", FontFamily.MonoSpace, "Menlo", false, FontWeight.Normal, true); ft.registerFont("/System/Library/Fonts/Menlo.ttc", FontFamily.MonoSpace, "Menlo", false, FontWeight.Normal, true);
} }
} }
if (!ft.registeredFontCount) if (!ft.registeredFontCount)
return false; return false;
FontManager.instance = ft; FontManager.instance = ft;
return true; return true;
} }
@ -337,9 +337,10 @@ void registerStandardWidgets() {
import dlangui.dialogs.filedlg; import dlangui.dialogs.filedlg;
import dlangui.widgets.menu; import dlangui.widgets.menu;
import dlangui.widgets.tree; import dlangui.widgets.tree;
import dlangui.widgets.tabs;
mixin(registerWidgets!(FileNameEditLine, DirEditLine, //dlangui.dialogs.filedlg mixin(registerWidgets!(FileNameEditLine, DirEditLine, //dlangui.dialogs.filedlg
ComboBox, ComboEdit, //dlangui.widgets.combobox ComboBox, ComboEdit, //dlangui.widgets.combobox
Widget, TextWidget, MultilineTextWidget, Button, ImageWidget, ImageButton, ImageCheckButton, ImageTextButton, Widget, TextWidget, MultilineTextWidget, Button, ImageWidget, ImageButton, ImageCheckButton, ImageTextButton,
SwitchButton, RadioButton, CheckBox, HSpacer, VSpacer, CanvasWidget, // dlangui.widgets.controls SwitchButton, RadioButton, CheckBox, HSpacer, VSpacer, CanvasWidget, // dlangui.widgets.controls
ScrollBar, SliderWidget, // dlangui.widgets.scrollbar ScrollBar, SliderWidget, // dlangui.widgets.scrollbar
EditLine, EditBox, LogWidget,//dlangui.widgets.editors EditLine, EditBox, LogWidget,//dlangui.widgets.editors
@ -350,6 +351,7 @@ void registerStandardWidgets() {
ListWidget, StringListWidget,//dlangui.widgets.lists ListWidget, StringListWidget,//dlangui.widgets.lists
MainMenu, //dlangui.widgets.menu MainMenu, //dlangui.widgets.menu
TreeWidget, // dlangui.widgets.tree TreeWidget, // dlangui.widgets.tree
TabWidget, // dlangui.widgets.tabs
)("void registerWidgets")); )("void registerWidgets"));
registerWidgets(); registerWidgets();
} }
@ -370,16 +372,16 @@ shared static this() {
/// call this when all resources are supposed to be freed to report counts of non-freed resources by type /// call this when all resources are supposed to be freed to report counts of non-freed resources by type
extern (C) void releaseResourcesOnAppExit() { extern (C) void releaseResourcesOnAppExit() {
// //
debug setAppShuttingDownFlag(); debug setAppShuttingDownFlag();
debug { debug {
if (Widget.instanceCount() > 0) { if (Widget.instanceCount() > 0) {
Log.e("Non-zero Widget instance count when exiting: ", Widget.instanceCount); Log.e("Non-zero Widget instance count when exiting: ", Widget.instanceCount);
} }
} }
currentTheme = null; currentTheme = null;
drawableCache = null; drawableCache = null;
static if (BACKEND_GUI) { static if (BACKEND_GUI) {
@ -390,7 +392,7 @@ extern (C) void releaseResourcesOnAppExit() {
import dlangui.graphics.gldrawbuf; import dlangui.graphics.gldrawbuf;
destroyGLCaches(); destroyGLCaches();
} }
debug { debug {
if (DrawBuf.instanceCount > 0) { if (DrawBuf.instanceCount > 0) {
Log.e("Non-zero DrawBuf instance count when exiting: ", DrawBuf.instanceCount); Log.e("Non-zero DrawBuf instance count when exiting: ", DrawBuf.instanceCount);