summaryrefslogtreecommitdiff
path: root/src/touchmanager.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-11-13 01:41:40 +0300
committerAndrei Karas <akaras@inbox.ru>2012-11-13 01:43:11 +0300
commit9139910e08e834d2c92b8bc9e99dce816c3da696 (patch)
treeff265f9f86c813f20adcce7bca5762472e55bc23 /src/touchmanager.cpp
parent0dc9fd5199358037b0eff99d06afc7a6b4ac114f (diff)
downloadmanaplus-9139910e08e834d2c92b8bc9e99dce816c3da696.tar.gz
manaplus-9139910e08e834d2c92b8bc9e99dce816c3da696.tar.bz2
manaplus-9139910e08e834d2c92b8bc9e99dce816c3da696.tar.xz
manaplus-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.cpp27
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
}