--- /dev/null
+/**
+ * @brief Supported Keys
+ */
+enum _Key {
+ KEY_LEFT,
+ KEY_RIGHT,
+ KEY_UP,
+ KEY_DOWN,
+ KEY_COUNT
+};
+
+typedef enum _Key Key;
+
+typedef void (*Keyboard_Tracker_Cb) (void *data, Key k);
+void keyboard_tracker_init(void);
+void keyboard_tracker_register(Keyboard_Tracker_Cb cb, void *data);
+void keyboard_tracker_shutdown(void);
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.smart-navigator" version="0.1.0" install-location="internal-only">
- <label>etest</label>
- <author email="m.szczecinsk@partner.samsung.com" href="www.samsung.com">Michal Szczecinski</author>
- <description>EFL TEST APPLICATION</description>
- <ui-application appid="org.tizen.smart-navigator" exec="/opt/usr/apps/org.tizen.etetst/bin/smart-navigator" nodisplay="false" multiple="false" type="capp" taskmanage="true">
- <label>smart-navigator</label>
- <icon>/usr/apps/org.tizen.etest/res/icons/etest.png</icon>
- <label xml:lang="en-us">smart-navigator</label>
- </ui-application>
+ <label>smart-navigator</label>
+ <author email="m.szczecinsk@partner.samsung.com" href="www.samsung.com">Michal Szczecinski</author>
+ <description>SMART NAVIGATOR</description>
+ <ui-application appid="org.tizen.smart-navigator" exec="/usr/apps/org.tizen.smart-navigator/bin/smart-navigator" nodisplay="false" multiple="false" type="capp" taskmanage="true">
+ <label>smart-navigator</label>
+ <icon>/usr/apps/org.tizen.smart-navigator/res/icons/smart-navigator.png</icon>
+ <label xml:lang="en-us">smart-navigator</label>
+ </ui-application>
</manifest>
+
--- /dev/null
+#include <string.h>
+#include <atspi/atspi.h>
+#include "keyboard_tracker.h"
+#include "logger.h"
+
+static AtspiDeviceListener *listener;
+static Keyboard_Tracker_Cb user_cb;
+static void *user_data;
+
+static gboolean device_cb(const AtspiDeviceEvent *stroke, void *data)
+{
+ Key k = KEY_COUNT;
+
+ if (!strcmp(stroke->event_string, "Up"))
+ k = KEY_UP;
+ else if (!strcmp(stroke->event_string, "Down"))
+ k = KEY_DOWN;
+ else if (!strcmp(stroke->event_string, "Left"))
+ k = KEY_LEFT;
+ else if (!strcmp(stroke->event_string, "Right"))
+ k = KEY_RIGHT;
+
+ if(user_cb)
+ user_cb(user_data, k);
+
+ return TRUE;
+}
+
+void keyboard_tracker_init(void)
+{
+ atspi_init();
+ listener = atspi_device_listener_new(device_cb, NULL, NULL);
+ atspi_register_keystroke_listener(listener, NULL, 0, ATSPI_KEY_PRESSED, ATSPI_KEYLISTENER_SYNCHRONOUS, NULL);
+}
+void keyboard_tracker_register(Keyboard_Tracker_Cb cb, void *data)
+{
+ user_cb = cb;
+ user_data = data;
+}
+void keyboard_tracker_shutdown(void)
+{
+}
#include "navigator.h"
#include "gesture_tracker.h"
#include "window_tracker.h"
+#include "keyboard_tracker.h"
static AtspiAccessible *current_obj;
static AtspiAccessible *top_window;
top_window = window;
}
+static void on_keyboard(void *data, Key k)
+{
+ switch(k)
+ {
+ case KEY_LEFT:
+ _focus_prev();
+ break;
+ case KEY_RIGHT:
+ _focus_next();
+ break;
+ case KEY_UP:
+ break;
+ case KEY_DOWN:
+ break;
+ default:
+ ERROR("Function not implemented for key :%d", k);
+ }
+}
+
void navigator_init(void)
{
// register on gesture_getected
gesture_tracker_register(on_gesture_detected, NULL);
// register on active_window
window_tracker_register(on_window_activate, NULL);
- return;
+
+ keyboard_tracker_init();
+ keyboard_tracker_register(on_keyboard, NULL);
}
void navigator_shutdown(void)
{