summaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/action.cpp6
-rw-r--r--gui/button.cpp2
-rw-r--r--gui/devices/1080x1920/res/ui.xml41
-rw-r--r--gui/keyboard.cpp3
-rw-r--r--gui/objects.hpp2
-rw-r--r--gui/slider.cpp2
6 files changed, 55 insertions, 1 deletions
diff --git a/gui/action.cpp b/gui/action.cpp
index 5536c82b1..8539386a0 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -314,6 +314,7 @@ void* GUIAction::thread_start(void *cookie)
void GUIAction::operation_start(const string operation_name)
{
+ time(&Start);
DataManager::SetValue(TW_ACTION_BUSY, 1);
DataManager::SetValue("ui_progress", 0);
DataManager::SetValue("tw_operation", operation_name);
@@ -323,6 +324,7 @@ void GUIAction::operation_start(const string operation_name)
void GUIAction::operation_end(const int operation_status, const int simulate)
{
+ time_t Stop;
int simulate_fail;
DataManager::SetValue("ui_progress", 100);
if (simulate) {
@@ -344,6 +346,9 @@ void GUIAction::operation_end(const int operation_status, const int simulate)
#ifndef TW_NO_SCREEN_TIMEOUT
blankTimer.resetTimerAndUnblank();
#endif
+ time(&Stop);
+ if ((int) difftime(Stop, Start) > 10)
+ DataManager::Vibrate("tw_vibrate");
}
int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
@@ -920,6 +925,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
else {
operation_end(1, simulate);
return -1;
+
}
DataManager::SetValue(TW_BACKUP_NAME, "(Auto Generate)");
} else if (arg == "restore") {
diff --git a/gui/button.cpp b/gui/button.cpp
index be52c277e..ca386beed 100644
--- a/gui/button.cpp
+++ b/gui/button.cpp
@@ -30,6 +30,7 @@
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
+#include "../data.hpp"
#include <string>
@@ -280,6 +281,7 @@ int GUIButton::NotifyTouch(TOUCH_STATE state, int x, int y)
} else {
if (last_state == 0) {
last_state = 1;
+ DataManager::Vibrate("tw_vibrate");
if (mButtonLabel != NULL)
mButtonLabel->isHighlighted = true;
if (mButtonImg != NULL)
diff --git a/gui/devices/1080x1920/res/ui.xml b/gui/devices/1080x1920/res/ui.xml
index beaf37325..0f61faca7 100644
--- a/gui/devices/1080x1920/res/ui.xml
+++ b/gui/devices/1080x1920/res/ui.xml
@@ -2456,7 +2456,16 @@
</object>
<object type="button">
- <placement x="%col_center_x%" y="%row4_y%" />
+ <highlight color="%highlight_color%" />
+ <placement x="%col2_x%" y="%row4_y%" />
+ <font resource="font" color="%button_text_color%" />
+ <text>Vibration Duration</text>
+ <image resource="main_button" />
+ <action function="page">Vibrate</action>
+ </object>
+
+ <object type="button">
+ <placement x="%col_x%" y="%row4_y%" />
<font resource="font" color="%button_text_color%" />
<text>Restore Defaults</text>
<image resource="main_button" />
@@ -2663,6 +2672,36 @@
<object type="template" name="footer" />
</page>
+ <page name="Vibrate">
+ <object type="template" name="header" />
+
+ <object type="text" color="%text_color%">
+ <font resource="font" />
+ <placement x="%center_x%" y="%row1_header_y%" placement="5" />
+ <text>Vibration Settings :</text>
+ </object>
+
+ <object type="slidervalue">
+ <placement x="col1_x" y="%row4_text_y%" w="%slidervalue_w%" />
+ <font resource="font" color="%text_color%" />
+ <text>Vibration Value : </text>
+ <data variable="tw_vibrate" min="0" max="300" />
+ <colors line="%slidervalue_line_clr%" slider="%slidervalue_slider_clr%" />
+ </object>
+
+ <object type="action">
+ <touch key="home" />
+ <action function="page">main</action>
+ </object>
+
+ <object type="action">
+ <touch key="back" />
+ <action function="page">settings</action>
+ </object>
+
+ <object type="template" name="footer" />
+ </page>
+
<page name="advanced">
<object type="template" name="header" />
diff --git a/gui/keyboard.cpp b/gui/keyboard.cpp
index 95cdbf1c8..97a980a4e 100644
--- a/gui/keyboard.cpp
+++ b/gui/keyboard.cpp
@@ -30,6 +30,7 @@
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
+#include "../data.hpp"
#include <string>
@@ -388,6 +389,7 @@ int GUIKeyboard::NotifyTouch(TOUCH_STATE state, int x, int y)
switch (state)
{
case TOUCH_START:
+ DataManager::Vibrate("tw_vibrate");
if (GetSelection(x, y) == 0) {
startSelection = -1;
was_held = 0;
@@ -419,6 +421,7 @@ int GUIKeyboard::NotifyTouch(TOUCH_STATE state, int x, int y)
if (highlightRenderCount != 0)
mRendered = false;
highlightRenderCount = 0;
+ DataManager::Vibrate("tw_vibrate");
startSelection = 0;
}
break;
diff --git a/gui/objects.hpp b/gui/objects.hpp
index e7bb2a0ee..1053113bd 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -25,6 +25,7 @@
#include <vector>
#include <string>
#include <map>
+#include <time.h>
extern "C" {
#ifdef HAVE_SELINUX
@@ -285,6 +286,7 @@ protected:
void operation_start(const string operation_name);
void operation_end(const int operation_status, const int simulate);
static void* command_thread(void *cookie);
+ time_t Start;
};
class GUIConsole : public RenderObject, public ActionObject
diff --git a/gui/slider.cpp b/gui/slider.cpp
index b46d156f6..3908b82ab 100644
--- a/gui/slider.cpp
+++ b/gui/slider.cpp
@@ -15,6 +15,7 @@
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
+#include "../data.hpp"
#include <string>
@@ -153,6 +154,7 @@ int GUISlider::NotifyTouch(TOUCH_STATE state, int x, int y)
break;
case TOUCH_RELEASE:
+ DataManager::Vibrate("tw_button_vibrate");
if (!dragging)
return 0;