diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-11-13 01:41:40 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-11-13 01:43:11 +0300 |
commit | 9139910e08e834d2c92b8bc9e99dce816c3da696 (patch) | |
tree | ff265f9f86c813f20adcce7bca5762472e55bc23 /src/touchmanager.cpp | |
parent | 0dc9fd5199358037b0eff99d06afc7a6b4ac114f (diff) | |
download | mv-9139910e08e834d2c92b8bc9e99dce816c3da696.tar.gz mv-9139910e08e834d2c92b8bc9e99dce816c3da696.tar.bz2 mv-9139910e08e834d2c92b8bc9e99dce816c3da696.tar.xz mv-9139910e08e834d2c92b8bc9e99dce816c3da696.zip |
Extend on screen keyboard button.
New theme options:
x - x position
y - y position
padding - button padding
Diffstat (limited to 'src/touchmanager.cpp')
-rw-r--r-- | src/touchmanager.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
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 } |