} \
} while (false)
-namespace
-{
- enum AppToLaunch {
- HOME_SCREEN,
- LOCK_SCREEN,
- TASK_MGR
- };
-
- static constexpr const char *ACTIVITY_TYPE[] = {"START_HOME_SCREEN", "START_LOCK_SCREEN", "START_TASK_MGR"};
- static constexpr const char *LAUNCH_TYPE[] = {"org.tizen.homescreen-efl", "org.tizen.lockscreen", "org.tizen.task-mgr"};
-}
-
-template <typename DerivedType, AppToLaunch appToLaunch, bool bindable>
+template <typename DerivedType, bool bindable>
class AppControlActivity : public Activity, private RegisterActivity<DerivedType, bindable>
{
public:
- constexpr static const char *activityType = ACTIVITY_TYPE[appToLaunch];
+ constexpr static const char *activityType = DerivedType::activityType;
AppControlActivity()
: Activity(activityType)
{}
ret = app_control_set_operation(*app_control, APP_CONTROL_OPERATION_DEFAULT);
RETURN_ON_ERROR(ret);
- ret = app_control_set_app_id(*app_control, LAUNCH_TYPE[appToLaunch]);
+ ret = app_control_set_app_id(*app_control, DerivedType::appToLaunch);
RETURN_ON_ERROR(ret);
ret = app_control_send_launch_request(*app_control, NULL, NULL);
Optional<app_control_h> app_control;
};
-class StartHomeScreenActivity : public AppControlActivity<StartHomeScreenActivity, HOME_SCREEN, true> {};
-class StartLockScreenActivity : public AppControlActivity<StartLockScreenActivity, LOCK_SCREEN, false> {};
-class StartTaskManagerActivity : public AppControlActivity<StartTaskManagerActivity, TASK_MGR, true> {};
+class StartHomeScreenActivity : public AppControlActivity<StartHomeScreenActivity, true>
+{
+public:
+ static constexpr const char *activityType = "START_HOME_SCREEN";
+ static constexpr const char *appToLaunch = "org.tizen.homescreen-efl";
+};
+
+class StartLockScreenActivity : public AppControlActivity<StartLockScreenActivity, false>
+{
+public:
+ static constexpr const char *activityType = "START_LOCK_SCREEN";
+ static constexpr const char *appToLaunch = "org.tizen.lockscreen";
+};
+
+class StartTaskManagerActivity : public AppControlActivity<StartTaskManagerActivity, true>
+{
+public:
+ static constexpr const char *activityType = "START_TASK_MGR";
+ static constexpr const char *appToLaunch = "org.tizen.task-mgr";
+};
ZOOM_IN,
ZOOM_OUT,
};
-
- static constexpr char swipeRightName[] = "SWIPE_RIGHT";
- static constexpr char swipeLeftName[] = "SWIPE_LEFT";
- static constexpr char swipeUpName[] = "SWIPE_UP";
- static constexpr char swipeDownName[] = "SWIPE_DOWN";
- static constexpr char zoomInName[] = "ZOOM_IN";
- static constexpr char zoomOutName[] = "ZOOM_OUT";
}
-template <typename DerivedType, SwipeType swipeType, const char *tempActivityType>
+template <typename DerivedType>
class GestureActivity : public UIActivity, private RegisterActivity<DerivedType>
{
public:
- static constexpr const char *activityType = tempActivityType;
+ static constexpr const char *activityType = DerivedType::activityType;
GestureActivity()
: UIActivity(activityType)
{
auto point = uiElement->getScanningCoordinates();
DBus::DBusClient dbus {dbusLocators::accessibilityEMod::BUS, dbusLocators::accessibilityEMod::OBJ_PATH, dbusLocators::accessibilityEMod::INTERFACE, DBus::ConnectionType::SYSTEM};
+ SwipeType swipeType = DerivedType::swipeType;
dbus.method<void(int, int, int)>("DispatchGestureEvent").call(swipeType, point.x, point.y);
return true;
}
};
-class SwipeRightActivity : public GestureActivity<SwipeRightActivity, SWIPE_RIGHT, swipeRightName> {};
-class SwipeLeftActivity : public GestureActivity<SwipeLeftActivity, SWIPE_LEFT, swipeLeftName> {};
-class SwipeUpActivity : public GestureActivity<SwipeUpActivity, SWIPE_UP, swipeUpName> {};
-class SwipeDownActivity : public GestureActivity<SwipeDownActivity, SWIPE_DOWN, swipeDownName> {};
-class ZoomInActivity : public GestureActivity<ZoomInActivity, ZOOM_IN, zoomInName> {};
-class ZoomOutActivity : public GestureActivity<ZoomOutActivity, ZOOM_OUT, zoomOutName> {};
+class SwipeRightActivity : public GestureActivity<SwipeRightActivity>
+{
+public:
+ static constexpr const char *activityType = "SWIPE_RIGHT";
+ static constexpr const SwipeType swipeType = SWIPE_RIGHT;
+};
+
+class SwipeLeftActivity : public GestureActivity<SwipeLeftActivity>
+{
+public:
+ static constexpr const char *activityType = "SWIPE_LEFT";
+ static constexpr SwipeType swipeType = SWIPE_LEFT;
+};
+
+class SwipeUpActivity : public GestureActivity<SwipeUpActivity>
+{
+public:
+ static constexpr const char *activityType = "SWIPE_UP";
+ static constexpr SwipeType swipeType = SWIPE_UP;
+};
+
+class SwipeDownActivity : public GestureActivity<SwipeDownActivity>
+{
+public:
+ static constexpr const char *activityType = "SWIPE_DOWN";
+ static constexpr SwipeType swipeType = SWIPE_DOWN;
+};
+
+class ZoomInActivity : public GestureActivity<ZoomInActivity>
+{
+public:
+ static constexpr const char *activityType = "ZOOM_IN";
+ static constexpr SwipeType swipeType = ZOOM_IN;
+};
+
+class ZoomOutActivity : public GestureActivity<ZoomOutActivity>
+{
+public:
+ static constexpr const char *activityType = "ZOOM_OUT";
+ static constexpr SwipeType swipeType = ZOOM_OUT;
+};
\ No newline at end of file
#include "ActivityFactory.hpp"
#include "utils.hpp"
-namespace
-{
- static constexpr char BACK_ACTIVITY[] = "BACK";
- static constexpr char MORE_OPTIONS_ACTIVITY[] = "MORE_OPTIONS";
- static constexpr char HOME_BUTTON_X2_ACTIVITY[] = "HOME_BUTTON_X2";
- static constexpr char HOME_BUTTON_X3_ACTIVITY[] = "HOME_BUTTON_X3";
-
- static constexpr char BACK_BUTTON_CODE[] = "XF86Back";
- static constexpr char MORE_OPTIONS_BUTTON_CODE[] = "XF86Menu";
- static constexpr char HOME_BUTTON_CODE[] = "XF86Home";
-}
-
-template <typename DerivedType, const char *activityName, const char *key, unsigned multiplicity, bool bindable>
+template <typename DerivedType, bool bindable>
class HardwareKeyActivity : public Activity, private RegisterActivity<DerivedType, bindable>
{
public:
- constexpr static const char *activityType = activityName;
+ constexpr static const char *activityType = DerivedType::activityType;
HardwareKeyActivity()
: Activity(activityType)
bool process() override
{
- utils::EventGenerator::generateKeyPress(key, multiplicity);
+ utils::EventGenerator::generateKeyPress(DerivedType::buttonCode, DerivedType::multiplicity);
return true;
}
};
-class BackActivity : public HardwareKeyActivity<BackActivity, BACK_ACTIVITY, BACK_BUTTON_CODE, 1, true> {};
-class MoreOptionsActivity : public HardwareKeyActivity<MoreOptionsActivity, MORE_OPTIONS_ACTIVITY, MORE_OPTIONS_BUTTON_CODE, 1, true> {};
-class HomeButtonX2Activity : public HardwareKeyActivity<HomeButtonX2Activity, HOME_BUTTON_X2_ACTIVITY, HOME_BUTTON_CODE, 2, false> {};
-class HomeButtonX3Activity : public HardwareKeyActivity<HomeButtonX3Activity, HOME_BUTTON_X3_ACTIVITY, HOME_BUTTON_CODE, 3, false> {};
+class BackActivity : public HardwareKeyActivity<BackActivity, true>
+{
+public:
+ static constexpr const char *activityType = "BACK";
+ static constexpr const char *buttonCode = "XF86Back";
+ static constexpr unsigned multiplicity = 1;
+};
+
+class MoreOptionsActivity : public HardwareKeyActivity<MoreOptionsActivity, true>
+{
+public:
+ static constexpr const char *activityType = "MORE_OPTIONS";
+ static constexpr const char *buttonCode = "XF86Menu";
+ static constexpr unsigned multiplicity = 1;
+};
+
+class HomeButtonX2Activity : public HardwareKeyActivity<HomeButtonX2Activity, false>
+{
+public:
+ static constexpr const char *activityType = "HOME_BUTTON_X2";
+ static constexpr const char *buttonCode = "XF86Home";
+ static constexpr unsigned multiplicity = 2;
+};
+
+class HomeButtonX3Activity : public HardwareKeyActivity<HomeButtonX3Activity, false>
+{
+public:
+ static constexpr const char *activityType = "HOME_BUTTON_X3";
+ static constexpr const char *buttonCode = "XF86Home";
+ static constexpr unsigned multiplicity = 3;
+};
\ No newline at end of file
#include <memory>
-namespace
-{
- static constexpr char openQuickpanelActivityName[] = "OPEN_QUICKPANEL";
- static constexpr char toggleQuickpanelActivityName[] = "TOGGLE_QUICKPANEL";
-}
-
-template <typename DerivedType, const char *tempActivityType, bool bindable>
+template <typename DerivedType, bool bindable>
class QuickpanelActivity : public Activity, private RegisterActivity<DerivedType, bindable>
{
public:
- constexpr static const char *activityType = tempActivityType;
+ constexpr static const char *activityType = DerivedType::activityType;
QuickpanelActivity()
: Activity(activityType)
{}
}
};
-class OpenQuickpanelActivity : public QuickpanelActivity<OpenQuickpanelActivity, openQuickpanelActivityName, true>
+class OpenQuickpanelActivity : public QuickpanelActivity<OpenQuickpanelActivity, true>
{
public:
+ static constexpr const char *activityType = "OPEN_QUICKPANEL";
+
static void changeQuickpanelState()
{
Singleton<UniversalSwitch>::instance().getMainWindow()->getQuickpanel()->show();
}
};
-class ToggleQuickpanelActivity : public QuickpanelActivity<ToggleQuickpanelActivity, toggleQuickpanelActivityName, false>
+class ToggleQuickpanelActivity : public QuickpanelActivity<ToggleQuickpanelActivity, false>
{
public:
+ static constexpr const char *activityType = "TOGGLE_QUICKPANEL";
+
static void changeQuickpanelState()
{
auto quickpanel = Singleton<UniversalSwitch>::instance().getMainWindow()->getQuickpanel();