From 9139910e08e834d2c92b8bc9e99dce816c3da696 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 13 Nov 2012 01:41:40 +0300 Subject: Extend on screen keyboard button. New theme options: x - x position y - y position padding - button padding --- data/graphics/gui/keyboard_icon.xml | 4 ++++ src/touchmanager.cpp | 27 ++++++++++++++++++++++----- src/touchmanager.h | 1 - 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/data/graphics/gui/keyboard_icon.xml b/data/graphics/gui/keyboard_icon.xml index 5b84f50b2..4b157ef10 100644 --- a/data/graphics/gui/keyboard_icon.xml +++ b/data/graphics/gui/keyboard_icon.xml @@ -1,5 +1,9 @@ + diff --git a/src/touchmanager.cpp b/src/touchmanager.cpp index 0278b9ddb..c2fd1ff00 100644 --- a/src/touchmanager.cpp +++ b/src/touchmanager.cpp @@ -41,11 +41,28 @@ TouchManager::~TouchManager() void TouchManager::init() { #ifdef ANDROID - Image *image = Theme::getImageFromThemeXml("keyboard_icon.xml", ""); - TouchItem *keyboard = new TouchItem(gcn::Rectangle(10, 10, - image->getWidth(), image->getHeight()), image, 10, 10, - nullptr, nullptr, &showKeyboard); - mObjects.push_back(keyboard); + Theme *theme = Theme::instance(); + if (!theme) + return; + Skin *skin = theme->load("keyboard_icon.xml", ""); + if (skin) + { + const ImageRect &images = skin->getBorder(); + Image *image = images.grid[0]; + if (image) + { + image->incRef(); + const int x = skin->getOption("x", 10); + const int y = skin->getOption("y", 10); + const int pad = skin->getPadding(); + const int pad2 = 2 * pad; + TouchItem *keyboard = new TouchItem(gcn::Rectangle(x, y, + image->getWidth() + pad2, image->getHeight() + pad2), + image, x + pad, y + pad, nullptr, nullptr, &showKeyboard); + mObjects.push_back(keyboard); + } + theme->unload(skin); + } #endif } diff --git a/src/touchmanager.h b/src/touchmanager.h index c37a1aeae..97d7d5625 100644 --- a/src/touchmanager.h +++ b/src/touchmanager.h @@ -82,7 +82,6 @@ class TouchManager final private: TouchItemVector mObjects; - // std::map mNameToRect; }; -- cgit v1.2.3-70-g09d2