From 7172d2251a7874f72adb257d03b2a7b2d2c2f57f Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Mon, 2 Jan 2012 23:32:34 -0200 Subject: [PATCH] display window on screen center --- modules/client/client.lua | 10 ++++++++-- modules/core_styles/styles/popupmenus.otui | 2 -- modules/core_widgets/uipopupmenu.lua | 13 ++----------- src/framework/luafunctions.cpp | 2 ++ src/framework/ui/uimanager.cpp | 4 ++-- src/framework/ui/uiwidget.cpp | 1 + src/framework/ui/uiwidget.h | 2 ++ 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/client/client.lua b/modules/client/client.lua index 7434d5b1..ca1c151b 100644 --- a/modules/client/client.lua +++ b/modules/client/client.lua @@ -8,8 +8,14 @@ function Client.init() if g_window.getPlatformType() == "X11-EGL" then g_window.setFullscreen(true) else - g_window.move({ x=220, y=220 }) - g_window.resize({ width=800, height=480 }) + local size = { width = 1024, + height = 768 } + g_window.resize(size) + + local displaySize = g_window.getDisplaySize() + local pos = { x = (displaySize.width - size.width)/2, + y = (displaySize.height - size.height)/2 } + g_window.move(pos) end g_window.setTitle('OTClient') diff --git a/modules/core_styles/styles/popupmenus.otui b/modules/core_styles/styles/popupmenus.otui index 5d1f991c..a8006386 100644 --- a/modules/core_styles/styles/popupmenus.otui +++ b/modules/core_styles/styles/popupmenus.otui @@ -35,8 +35,6 @@ PopupMenuSeparator < UIWidget PopupMenu < UIPopupMenu width: 100 - button-style: PopupMenuButton - separator-style: PopupMenuSeparator border-image: source: /core_styles/images/menubox.png border: 3 \ No newline at end of file diff --git a/modules/core_widgets/uipopupmenu.lua b/modules/core_widgets/uipopupmenu.lua index e6bb25bc..1c30678f 100644 --- a/modules/core_widgets/uipopupmenu.lua +++ b/modules/core_widgets/uipopupmenu.lua @@ -19,7 +19,7 @@ function UIPopupMenu.display(menu, pos) end function UIPopupMenu.addOption(menu, optionName, optionCallback) - local optionWidget = createWidget(menu.buttonStyle, menu) + local optionWidget = createWidget(menu:getStyleName() .. 'Button', menu) local lastOptionWidget = menu:getLastChild() optionWidget.onClick = function() optionCallback() @@ -29,7 +29,7 @@ function UIPopupMenu.addOption(menu, optionName, optionCallback) end function UIPopupMenu.addSeparator(menu) - local separatorWidget = createWidget(menu.separatorStyle, separator) + local separatorWidget = createWidget(menu:getStyleName() .. 'Separator', separator) end -- hooked events @@ -49,12 +49,3 @@ function UIPopupMenu.onKeyPress(menu, keyCode, keyText, keyboardModifiers) end return false end - -function UIPopupMenu.onStyleApply(menu, style) - if style['button-style'] then - menu.buttonStyle = style['button-style'] - end - if style['separator-style'] then - menu.separatorStyle = style['separator-style'] - end -end \ No newline at end of file diff --git a/src/framework/luafunctions.cpp b/src/framework/luafunctions.cpp index 53909f22..b3e869b6 100644 --- a/src/framework/luafunctions.cpp +++ b/src/framework/luafunctions.cpp @@ -120,6 +120,7 @@ void Application::registerLuaFunctions() g_lua.bindClassMemberFunction("getMarginLeft", &UIWidget::getMarginLeft); g_lua.bindClassMemberFunction("getLastFocusReason", &UIWidget::getLastFocusReason); g_lua.bindClassMemberFunction("getStyle", &UIWidget::getStyle); + g_lua.bindClassMemberFunction("getStyleName", &UIWidget::getStyleName); g_lua.bindClassMemberFunction("getChildren", &UIWidget::getChildren); g_lua.bindClassMemberFunction("getFocusedChild", &UIWidget::getFocusedChild); g_lua.bindClassMemberFunction("getChildAfter", &UIWidget::getChildAfter); @@ -233,6 +234,7 @@ void Application::registerLuaFunctions() g_lua.bindClassStaticFunction("g_window", "setIcon", std::bind(&PlatformWindow::setIcon, &g_window, _1)); g_lua.bindClassStaticFunction("g_window", "getMousePos", std::bind(&PlatformWindow::getMousePos, &g_window)); g_lua.bindClassStaticFunction("g_window", "getSize", std::bind(&PlatformWindow::getSize, &g_window)); + g_lua.bindClassStaticFunction("g_window", "getDisplaySize", std::bind(&PlatformWindow::getDisplaySize, &g_window)); g_lua.bindClassStaticFunction("g_window", "getPlatformType", std::bind(&PlatformWindow::getPlatformType, &g_window)); // Logger diff --git a/src/framework/ui/uimanager.cpp b/src/framework/ui/uimanager.cpp index b5f6dc35..406eccc0 100644 --- a/src/framework/ui/uimanager.cpp +++ b/src/framework/ui/uimanager.cpp @@ -34,7 +34,6 @@ void UIManager::init() // creates root widget m_rootWidget = UIWidget::create(); m_rootWidget->setId("root"); - m_rootWidget->resize(g_window.getSize()); m_mouseReceiver = m_rootWidget; m_keyboardReceiver = m_rootWidget; } @@ -134,8 +133,9 @@ OTMLNodePtr UIManager::getStyle(const std::string& styleName) // styles starting with UI are automatically defined if(boost::starts_with(styleName, "UI")) { - OTMLNodePtr node = OTMLNode::create(); + OTMLNodePtr node = OTMLNode::create(styleName); node->writeAt("__class", styleName); + m_styles[styleName] = node; return node; } diff --git a/src/framework/ui/uiwidget.cpp b/src/framework/ui/uiwidget.cpp index f14397dd..883d9705 100644 --- a/src/framework/ui/uiwidget.cpp +++ b/src/framework/ui/uiwidget.cpp @@ -155,6 +155,7 @@ void UIWidget::setStyle(const std::string& styleName) } applyStyle(styleNode); m_style = styleNode; + assert(getStyleName() != ""); updateStyle(); } diff --git a/src/framework/ui/uiwidget.h b/src/framework/ui/uiwidget.h index 8e1b1df0..42bbc5bc 100644 --- a/src/framework/ui/uiwidget.h +++ b/src/framework/ui/uiwidget.h @@ -26,6 +26,7 @@ #include "declarations.h" #include #include +#include class UIWidget : public LuaObject { @@ -128,6 +129,7 @@ public: int getMarginLeft() { return m_marginLeft; } Fw::FocusReason getLastFocusReason() { return m_lastFocusReason; } OTMLNodePtr getStyle() { return m_style; } + std::string getStyleName() { return m_style->tag(); } UIWidgetList getChildren() { return m_children; } UIWidgetPtr getFocusedChild() { return m_focusedChild; }