CC ?= gcc
TARGETS = utc_UIFW_elm_datefield_add_func \
- utc_UIFW_elm_datefield_layout_set_func \
- utc_UIFW_elm_datefield_layout_get_func \
- utc_UIFW_elm_datefield_date_set_func \
- utc_UIFW_elm_datefield_date_get_func \
- utc_UIFW_elm_datefield_time_mode_set_func \
- utc_UIFW_elm_datefield_time_mode_get_func \
- utc_UIFW_elm_datefield_date_format_set_func \
- utc_UIFW_elm_datefield_date_format_get_func \
- utc_UIFW_elm_datefield_input_panel_state_callback_add_func \
- utc_UIFW_elm_datefield_input_panel_state_callback_del_func
+ utc_UIFW_elm_datefield_format_set_func \
+ utc_UIFW_elm_datefield_format_get_func \
+ utc_UIFW_elm_datefield_item_enabled_set_func \
+ utc_UIFW_elm_datefield_item_enabled_get_func \
+ utc_UIFW_elm_datefield_item_max_set_func \
+ utc_UIFW_elm_datefield_item_max_get_func \
+ utc_UIFW_elm_datefield_item_max_is_abs_func \
+ utc_UIFW_elm_datefield_item_min_set_func \
+ utc_UIFW_elm_datefield_item_min_get_func \
+ utc_UIFW_elm_datefield_item_min_is_abs_func \
+ utc_UIFW_elm_datefield_item_value_set_func \
+ utc_UIFW_elm_datefield_item_value_get_func
PKGS = elementary evas
/elm_ts/datefield/utc_UIFW_elm_datefield_add_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_layout_set_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_layout_get_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_date_set_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_date_get_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_time_mode_set_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_time_mode_get_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_date_format_set_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_date_format_get_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_input_panel_state_callback_add_func
-/elm_ts/datefield/utc_UIFW_elm_datefield_input_panel_state_callback_del_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_format_set_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_format_get_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_enabled_set_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_enabled_get_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_max_set_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_max_get_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_max_is_abs_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_min_set_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_min_get_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_min_is_abs_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_value_set_func
+/elm_ts/datefield/utc_UIFW_elm_datefield_item_value_get_func
struct tet_testlist tet_testlist[] = {
{ utc_UIFW_elm_datefield_add_func_01, POSITIVE_TC_IDX },
{ utc_UIFW_elm_datefield_add_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { NULL, 0 }
};
static void startup(void)
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
*/
static void utc_UIFW_elm_datefield_add_func_01(void)
{
- datefield = elm_datefield_add(main_win);
+ datefield = elm_datefield_add(main_win);
if (!datefield) {
tet_infoline("elm_datefield_add() failed in positive test case");
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
*/
static void utc_UIFW_elm_datefield_add_func_02(void)
{
- datefield = elm_datefield_add(NULL);
+ datefield = elm_datefield_add(NULL);
if (datefield) {
tet_infoline("elm_datefield_add() failed in negative test case");
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
+++ /dev/null
-#include <tet_api.h>
-#include <Elementary.h>
-
-// Definitions
-// For checking the result of the positive test case.
-#define TET_CHECK_PASS(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err == (x1)) \
- { \
- tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-// For checking the result of the negative test case.
-#define TET_CHECK_FAIL(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err != (x1)) \
- { \
- tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-
-static Evas_Object *main_win;
-static Evas_Object *datefield;
-
-static void startup(void);
-static void cleanup(void);
-
-void (*tet_startup)(void) = startup;
-void (*tet_cleanup)(void) = cleanup;
-
-static void utc_UIFW_elm_datefield_date_get_func_01(void);
-static void utc_UIFW_elm_datefield_date_get_func_02(void);
-
-enum {
- POSITIVE_TC_IDX = 0x01,
- NEGATIVE_TC_IDX,
-};
-
-struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_date_get_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_date_get_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
-};
-
-static void startup(void)
-{
- tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
- elm_init(0, NULL);
- main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
- evas_object_show(main_win);
-}
-
-static void cleanup(void)
-{
- if ( NULL != datefield) {
- evas_object_del(datefield);
- datefield = NULL;
- }
- if ( NULL != main_win ) {
- evas_object_del(main_win);
- main_win = NULL;
- }
- elm_shutdown();
- tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
-}
-
-/**
- * @brief Positive test case of elm_datefield_date_get()
- */
-static void utc_UIFW_elm_datefield_date_get_func_01(void)
-{
- int year, month, day, hour, min;
-
- datefield = elm_datefield_add(main_win);
- elm_datefield_date_set(datefield, 2010, 10, 14, 5, 30);
- elm_datefield_date_get(datefield, &year, &month, &day, &hour, &min);
-
- if (!(year == 2010 && month == 10 && day == 14 && hour == 5 && min == 30)) {
- tet_infoline("elm_datefield_date_get() failed in positive test case");
- tet_result(TET_FAIL);
- return;
- }
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
-
-/**
- * @brief Negative test case of ug_init elm_datefield_date_get()
- */
-static void utc_UIFW_elm_datefield_date_get_func_02(void)
-{
- datefield = elm_datefield_add(main_win);
- elm_datefield_date_set(datefield, 2010, 10, 14, 5, 30);
- elm_datefield_date_get(datefield, NULL, NULL, NULL, NULL, NULL);
-
- /*if () {
- tet_infoline("elm_datefield_date_get() failed in negative test case");
- tet_result(TET_FAIL);
- return;
- }*/
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
+++ /dev/null
-#include <tet_api.h>
-#include <Elementary.h>
-
-// Definitions
-// For checking the result of the positive test case.
-#define TET_CHECK_PASS(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err == (x1)) \
- { \
- tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-// For checking the result of the negative test case.
-#define TET_CHECK_FAIL(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err != (x1)) \
- { \
- tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-
-static Evas_Object *main_win;
-static Evas_Object *datefield;
-
-static void startup(void);
-static void cleanup(void);
-
-void (*tet_startup)(void) = startup;
-void (*tet_cleanup)(void) = cleanup;
-
-static void utc_UIFW_elm_datefield_date_set_func_01(void);
-static void utc_UIFW_elm_datefield_date_set_func_02(void);
-
-enum {
- POSITIVE_TC_IDX = 0x01,
- NEGATIVE_TC_IDX,
-};
-
-struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_date_set_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_date_set_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
-};
-
-static void startup(void)
-{
- tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
- elm_init(0, NULL);
- main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
- evas_object_show(main_win);
-}
-
-static void cleanup(void)
-{
- if ( NULL != datefield) {
- evas_object_del(datefield);
- datefield = NULL;
- }
- if ( NULL != main_win ) {
- evas_object_del(main_win);
- main_win = NULL;
- }
- elm_shutdown();
- tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
-}
-
-/**
- * @brief Positive test case of elm_datefield_date_set()
- */
-static void utc_UIFW_elm_datefield_date_set_func_01(void)
-{
- int year, month, day, hour, min;
-
- datefield = elm_datefield_add(main_win);
- elm_datefield_date_set(datefield, 2010, 10, 14, 1, 36);
- elm_datefield_date_get(datefield, &year, &month, &day, &hour, &min);
-
- if (!(year == 2010 && month == 10 && day == 14 && hour == 1 && min == 36)) {
- tet_infoline("elm_datefield_date_set() failed in positive test case");
- tet_result(TET_FAIL);
- return;
- }
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
-
-/**
- * @brief Negative test case of ug_init elm_datefield_date_set()
- */
-static void utc_UIFW_elm_datefield_date_set_func_02(void)
-{
- int year, month, day, hour, min;
-
- datefield = elm_datefield_add(main_win);
- elm_datefield_date_set(NULL, 2010, 10, 14, 1, 36);
- elm_datefield_date_get(datefield, &year, &month, &day, &hour, &min);
-
- if ((year == 2010 && month == 10 && day == 14 && hour == 1 && min <= 36)) {
- tet_infoline("elm_datefield_date_set() failed in negative test case");
- tet_result(TET_FAIL);
- return;
- }
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
void (*tet_startup)(void) = startup;
void (*tet_cleanup)(void) = cleanup;
-static void utc_UIFW_elm_datefield_date_format_get_func_01(void);
-static void utc_UIFW_elm_datefield_date_format_get_func_02(void);
+static void utc_UIFW_elm_datefield_format_get_func_01(void);
+static void utc_UIFW_elm_datefield_format_get_func_02(void);
enum {
POSITIVE_TC_IDX = 0x01,
};
struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_date_format_get_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_date_format_get_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { utc_UIFW_elm_datefield_format_get_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_format_get_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
};
static void startup(void)
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
}
/**
- * @brief Positive test case of elm_datefield_date_format_get()
+ * @brief Positive test case of elm_datefield_format_get()
*/
-static void utc_UIFW_elm_datefield_date_format_get_func_01(void)
+static void utc_UIFW_elm_datefield_format_get_func_01(void)
{
const char *format = NULL;
datefield = elm_datefield_add(main_win);
- format = elm_datefield_date_format_get(datefield);
+ elm_datefield_format_set(datefield, "%B %d, %Y");
+ format = elm_datefield_format_get(datefield);
- if (strcmp(format, "mmddyy")) {
- tet_infoline("elm_datefield_date_format_get() failed in positive test case");
+ if (strncmp(format, "%B %d, %Y", strlen(format))) {
+ tet_infoline("elm_datefield_format_get() failed in positive test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
}
/**
- * @brief Negative test case of ug_init elm_datefield_date_format_get()
+ * @brief Negative test case of ug_init elm_datefield_format_get()
*/
-static void utc_UIFW_elm_datefield_date_format_get_func_02(void)
+static void utc_UIFW_elm_datefield_format_get_func_02(void)
{
const char *format = NULL;
datefield = elm_datefield_add(main_win);
- format = elm_datefield_date_format_get(NULL);
+ format = elm_datefield_format_get(NULL);
if (format) {
- tet_infoline("elm_datefield_date_format_get() failed in negative test case");
+ tet_infoline("elm_datefield_format_get() failed in negative test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
+
evas_object_show(datefield);
tet_result(TET_PASS);
void (*tet_startup)(void) = startup;
void (*tet_cleanup)(void) = cleanup;
-static void utc_UIFW_elm_datefield_layout_get_func_01(void);
-static void utc_UIFW_elm_datefield_layout_get_func_02(void);
+static void utc_UIFW_elm_datefield_format_set_func_01(void);
+static void utc_UIFW_elm_datefield_format_set_func_02(void);
enum {
POSITIVE_TC_IDX = 0x01,
};
struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_layout_get_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_layout_get_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { utc_UIFW_elm_datefield_format_set_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_format_set_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
};
static void startup(void)
static void cleanup(void)
{
- if ( NULL != datefield) {
+ if ( NULL != datefield ) {
evas_object_del(datefield);
datefield = NULL;
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
}
/**
- * @brief Positive test case of elm_datefield_layout_get()
+ * @brief Positive test case of elm_datefield_format_set()
*/
-static void utc_UIFW_elm_datefield_layout_get_func_01(void)
+static void utc_UIFW_elm_datefield_format_set_func_01(void)
{
- int r = 0;
+ char *fmt = "%B %d, %Y";
datefield = elm_datefield_add(main_win);
- r = elm_datefield_layout_get(datefield);
+ elm_datefield_format_set(datefield, fmt);
- if (r != ELM_DATEFIELD_LAYOUT_DATEANDTIME) {
- tet_infoline("elm_datefield_layout_get() failed in positive test case");
+ if (strncmp(elm_datefield_format_get(datefield), fmt, strlen(fmt))) {
+ tet_infoline("elm_datefield_format_set() failed in positive test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
}
/**
- * @brief Negative test case of ug_init elm_datefield_layout_get()
+ * @brief Negative test case of ug_init elm_datefield_format_set()
*/
-static void utc_UIFW_elm_datefield_layout_get_func_02(void)
+static void utc_UIFW_elm_datefield_format_set_func_02(void)
{
- int r = 0;
+ char *fmt1, *fmt2;
datefield = elm_datefield_add(main_win);
- r = elm_datefield_layout_get(NULL);
+ fmt1 = elm_datefield_format_get(datefield);
+ elm_datefield_format_set(datefield, NULL);
+ fmt2 = elm_datefield_format_get(datefield);
- if (r == ELM_DATEFIELD_LAYOUT_DATEANDTIME) {
- tet_infoline("elm_datefield_layout_get() failed in negative test case");
+ if (strncmp(fmt1, fmt2, strlen(fmt1))) {
+ tet_infoline("elm_datefield_format_set() failed in negative test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
+++ /dev/null
-#include <tet_api.h>
-#include <Elementary.h>
-
-// Definitions
-// For checking the result of the positive test case.
-#define TET_CHECK_PASS(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err == (x1)) \
- { \
- tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-// For checking the result of the negative test case.
-#define TET_CHECK_FAIL(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err != (x1)) \
- { \
- tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-
-static Evas_Object *main_win;
-static Evas_Object *datefield;
-
-static void startup(void);
-static void cleanup(void);
-
-void (*tet_startup)(void) = startup;
-void (*tet_cleanup)(void) = cleanup;
-
-static void utc_UIFW_elm_datefield_input_panel_state_callback_add_func_01(void);
-static void utc_UIFW_elm_datefield_input_panel_state_callback_add_func_02(void);
-
-enum {
- POSITIVE_TC_IDX = 0x01,
- NEGATIVE_TC_IDX,
-};
-
-struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_input_panel_state_callback_add_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_input_panel_state_callback_add_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
-};
-
-static void startup(void)
-{
- tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
- elm_init(0, NULL);
- main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
- evas_object_show(main_win);
-}
-
-static void cleanup(void)
-{
- if ( NULL != datefield) {
- evas_object_del(datefield);
- datefield = NULL;
- }
- if ( NULL != main_win ) {
- evas_object_del(main_win);
- main_win = NULL;
- }
- elm_shutdown();
- tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
-}
-
-static void _input_panel_state_cb(void *data, Evas_Object *obj, int value)
-{
-}
-
-/**
- * @brief Positive test case of elm_datefield_input_panel_state_callback_add()
- */
-static void utc_UIFW_elm_datefield_input_panel_state_callback_add_func_01(void)
-{
- datefield = elm_datefield_add(main_win);
- elm_datefield_input_panel_state_callback_add(datefield, _input_panel_state_cb, NULL);
-
- /*if (!r) {
- tet_infoline("elm_datefield_input_panel_state_callback_add() failed in positive test case");
- tet_result(TET_FAIL);
- return;
- }*/
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
-
-/**
- * @brief Negative test case of ug_init elm_datefield_input_panel_state_callback_add()
- */
-static void utc_UIFW_elm_datefield_input_panel_state_callback_add_func_02(void)
-{
- datefield = elm_datefield_add(main_win);
- elm_datefield_input_panel_state_callback_add(NULL, _input_panel_state_cb, NULL);
-
- /*if (r) {
- tet_infoline("elm_datefield_input_panel_state_callback_add() failed in negative test case");
- tet_result(TET_FAIL);
- return;
- }*/
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
+++ /dev/null
-#include <tet_api.h>
-#include <Elementary.h>
-
-// Definitions
-// For checking the result of the positive test case.
-#define TET_CHECK_PASS(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err == (x1)) \
- { \
- tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-// For checking the result of the negative test case.
-#define TET_CHECK_FAIL(x1, y...) \
-{ \
- Evas_Object *err = y; \
- if (err != (x1)) \
- { \
- tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
- tet_result(TET_FAIL); \
- return; \
- } \
-}
-
-
-static Evas_Object *main_win;
-static Evas_Object *datefield;
-
-static void startup(void);
-static void cleanup(void);
-
-void (*tet_startup)(void) = startup;
-void (*tet_cleanup)(void) = cleanup;
-
-static void utc_UIFW_elm_datefield_input_panel_state_callback_del_func_01(void);
-static void utc_UIFW_elm_datefield_input_panel_state_callback_del_func_02(void);
-
-enum {
- POSITIVE_TC_IDX = 0x01,
- NEGATIVE_TC_IDX,
-};
-
-struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_input_panel_state_callback_del_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_input_panel_state_callback_del_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
-};
-
-static void startup(void)
-{
- tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
- elm_init(0, NULL);
- main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
- evas_object_show(main_win);
-}
-
-static void cleanup(void)
-{
- if ( NULL != datefield) {
- evas_object_del(datefield);
- datefield = NULL;
- }
- if ( NULL != main_win ) {
- evas_object_del(main_win);
- main_win = NULL;
- }
- elm_shutdown();
- tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
-}
-
-static void _input_panel_state_cb(void *data, Evas_Object *obj, int value)
-{
-}
-
-/**
- * @brief Positive test case of elm_datefield_input_panel_state_callback_del()
- */
-static void utc_UIFW_elm_datefield_input_panel_state_callback_del_func_01(void)
-{
- datefield = elm_datefield_add(main_win);
- elm_datefield_input_panel_state_callback_del(datefield, _input_panel_state_cb);
-
- /*if (!r) {
- tet_infoline("elm_datefield_input_panel_state_callback_del() failed in positive test case");
- tet_result(TET_FAIL);
- return;
- }*/
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
-
-/**
- * @brief Negative test case of ug_init elm_datefield_input_panel_state_callback_del()
- */
-static void utc_UIFW_elm_datefield_input_panel_state_callback_del_func_02(void)
-{
- datefield = elm_datefield_add(main_win);
- elm_datefield_input_panel_state_callback_del(NULL, _input_panel_state_cb);
-
- /*if (r) {
- tet_infoline("elm_datefield_input_panel_state_callback_del() failed in negative test case");
- tet_result(TET_FAIL);
- return;
- }*/
-
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
- evas_object_show(datefield);
-
- tet_result(TET_PASS);
-}
--- /dev/null
+#include <tet_api.h>
+#include <Elementary.h>
+
+// Definitions
+// For checking the result of the positive test case.
+#define TET_CHECK_PASS(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err == (x1)) \
+ { \
+ tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+// For checking the result of the negative test case.
+#define TET_CHECK_FAIL(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err != (x1)) \
+ { \
+ tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+
+static Evas_Object *main_win;
+static Evas_Object *datefield;
+
+static void startup(void);
+static void cleanup(void);
+
+void (*tet_startup)(void) = startup;
+void (*tet_cleanup)(void) = cleanup;
+
+static void utc_UIFW_elm_datefield_item_enabled_get_func_01(void);
+static void utc_UIFW_elm_datefield_item_enabled_get_func_02(void);
+
+enum {
+ POSITIVE_TC_IDX = 0x01,
+ NEGATIVE_TC_IDX,
+};
+
+struct tet_testlist tet_testlist[] = {
+ { utc_UIFW_elm_datefield_item_enabled_get_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_enabled_get_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
+};
+
+static void startup(void)
+{
+ tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
+ elm_init(0, NULL);
+ main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_show(main_win);
+}
+
+static void cleanup(void)
+{
+ if ( NULL != datefield) {
+ evas_object_del(datefield);
+ datefield = NULL;
+ }
+ if ( NULL != main_win ) {
+ evas_object_del(main_win);
+ main_win = NULL;
+ }
+ elm_shutdown();
+ tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
+}
+
+/**
+ * @brief Positive test case of elm_datefield_item_enabled_get()
+ */
+static void utc_UIFW_elm_datefield_item_enabled_get_func_01(void)
+{
+ Eina_Bool y_enable = EINA_FALSE, h_enable = EINA_FALSE;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_format_set(datefield, "%B %d, %Y");
+ elm_datefield_item_enabled_set(datefield, ELM_DATEFIELD_YEAR, EINA_FALSE);
+ y_enable = elm_datefield_item_enabled_get(datefield, ELM_DATEFIELD_YEAR);
+ h_enable = elm_datefield_item_enabled_get(datefield, ELM_DATEFIELD_HOUR);
+
+ if (!((!y_enable) && (h_enable))) {
+ tet_infoline("elm_datefield_item_enabled_get() failed in positive test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
+
+/**
+ * @brief Negative test case of ug_init elm_datefield_item_enabled_get()
+ */
+static void utc_UIFW_elm_datefield_item_enabled_get_func_02(void)
+{
+ Eina_Bool y_enable;
+
+ datefield = elm_datefield_add(main_win);
+ y_enable = elm_datefield_item_enabled_get(NULL, ELM_DATEFIELD_YEAR);
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
void (*tet_startup)(void) = startup;
void (*tet_cleanup)(void) = cleanup;
-static void utc_UIFW_elm_datefield_time_mode_set_func_01(void);
-static void utc_UIFW_elm_datefield_time_mode_set_func_02(void);
+static void utc_UIFW_elm_datefield_item_enabled_set_func_01(void);
+static void utc_UIFW_elm_datefield_item_enabled_set_func_02(void);
enum {
POSITIVE_TC_IDX = 0x01,
};
struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_time_mode_set_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_time_mode_set_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { utc_UIFW_elm_datefield_item_enabled_set_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_enabled_set_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
};
static void startup(void)
static void cleanup(void)
{
- if ( NULL != datefield ) {
+ if ( NULL != datefield) {
evas_object_del(datefield);
datefield = NULL;
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
}
/**
- * @brief Positive test case of elm_datefield_time_mode_set()
+ * @brief Positive test case of elm_datefield_item_enabled_set()
*/
-static void utc_UIFW_elm_datefield_time_mode_set_func_01(void)
+static void utc_UIFW_elm_datefield_item_enabled_set_func_01(void)
{
datefield = elm_datefield_add(main_win);
- elm_datefield_time_mode_set(datefield, EINA_FALSE);
+ elm_datefield_format_set(datefield, "%B %d, %Y");
+ elm_datefield_item_enabled_set(datefield, ELM_DATEFIELD_YEAR, EINA_FALSE);
- if (elm_datefield_time_mode_get(datefield) != EINA_FALSE) {
- tet_infoline("elm_datefield_time_mode_set() failed in positive test case");
+ if (elm_datefield_item_enabled_get(datefield, ELM_DATEFIELD_YEAR)) {
+ tet_infoline("elm_datefield_item_enabled_set() failed in positive test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
}
/**
- * @brief Negative test case of ug_init elm_datefield_time_mode_set()
+ * @brief Negative test case of ug_init elm_datefield_item_enabled_set()
*/
-static void utc_UIFW_elm_datefield_time_mode_set_func_02(void)
+static void utc_UIFW_elm_datefield_item_enabled_set_func_02(void)
{
datefield = elm_datefield_add(main_win);
- elm_datefield_time_mode_set(NULL, EINA_TRUE);
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
+ elm_datefield_item_enabled_set(NULL, ELM_DATEFIELD_YEAR, EINA_FALSE);
+
evas_object_show(datefield);
tet_result(TET_PASS);
void (*tet_startup)(void) = startup;
void (*tet_cleanup)(void) = cleanup;
-static void utc_UIFW_elm_datefield_date_format_set_func_01(void);
-static void utc_UIFW_elm_datefield_date_format_set_func_02(void);
+static void utc_UIFW_elm_datefield_item_max_get_func_01(void);
+static void utc_UIFW_elm_datefield_item_max_get_func_02(void);
enum {
POSITIVE_TC_IDX = 0x01,
};
struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_date_format_set_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_date_format_set_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { utc_UIFW_elm_datefield_item_max_get_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_max_get_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
};
static void startup(void)
static void cleanup(void)
{
- if ( NULL != datefield ) {
+ if ( NULL != datefield) {
evas_object_del(datefield);
datefield = NULL;
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
}
/**
- * @brief Positive test case of elm_datefield_date_format_set()
+ * @brief Positive test case of elm_datefield_item_max_get()
*/
-static void utc_UIFW_elm_datefield_date_format_set_func_01(void)
+static void utc_UIFW_elm_datefield_item_max_get_func_01(void)
{
+ int year_max;
+
datefield = elm_datefield_add(main_win);
- elm_datefield_date_format_set(datefield, "ddmmyy");
+ elm_datefield_item_max_set(datefield, ELM_DATEFIELD_YEAR, 120, EINA_FALSE);
+ year_max = elm_datefield_item_max_get(datefield, ELM_DATEFIELD_YEAR);
- if (strcmp(elm_datefield_date_format_get(datefield), "ddmmyy")) {
- tet_infoline("elm_datefield_date_format_set() failed in positive test case");
+ if (!(year_max == 120)) {
+ tet_infoline("elm_datefield_item_max_get() failed in positive test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
}
/**
- * @brief Negative test case of ug_init elm_datefield_date_format_set()
+ * @brief Negative test case of ug_init elm_datefield_item_max_get()
*/
-static void utc_UIFW_elm_datefield_date_format_set_func_02(void)
+static void utc_UIFW_elm_datefield_item_max_get_func_02(void)
{
+ int year_max;
+
datefield = elm_datefield_add(main_win);
- elm_datefield_date_format_set(NULL, "ddmmyy");
+ year_max = elm_datefield_item_max_get(NULL, ELM_DATEFIELD_YEAR);
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
--- /dev/null
+#include <tet_api.h>
+#include <Elementary.h>
+
+// Definitions
+// For checking the result of the positive test case.
+#define TET_CHECK_PASS(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err == (x1)) \
+ { \
+ tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+// For checking the result of the negative test case.
+#define TET_CHECK_FAIL(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err != (x1)) \
+ { \
+ tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+
+static Evas_Object *main_win;
+static Evas_Object *datefield;
+
+static void startup(void);
+static void cleanup(void);
+
+void (*tet_startup)(void) = startup;
+void (*tet_cleanup)(void) = cleanup;
+
+static void utc_UIFW_elm_datefield_item_max_is_absolute_func_01(void);
+static void utc_UIFW_elm_datefield_item_max_is_absolute_func_02(void);
+
+enum {
+ POSITIVE_TC_IDX = 0x01,
+ NEGATIVE_TC_IDX,
+};
+
+struct tet_testlist tet_testlist[] = {
+ { utc_UIFW_elm_datefield_item_max_is_absolute_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_max_is_absolute_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
+};
+
+static void startup(void)
+{
+ tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
+ elm_init(0, NULL);
+ main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_show(main_win);
+}
+
+static void cleanup(void)
+{
+ if ( NULL != datefield ) {
+ evas_object_del(datefield);
+ datefield = NULL;
+ }
+ if ( NULL != main_win ) {
+ evas_object_del(main_win);
+ main_win = NULL;
+ }
+ elm_shutdown();
+ tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
+}
+
+/**
+ * @brief Positive test case of elm_datefield_item_max_is_absolute()
+ */
+static void utc_UIFW_elm_datefield_item_max_is_absolute_func_01(void)
+{
+ Eina_Bool is_abs = EINA_FALSE;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_max_set(datefield, ELM_DATEFIELD_MONTH, 9, EINA_TRUE);
+ is_abs = elm_datefield_item_max_is_absolute(datefield, ELM_DATEFIELD_MONTH);
+
+ if (!is_abs) {
+ tet_infoline("elm_datefield_item_max_is_absolute() failed in positive test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
+
+/**
+ * @brief Negative test case of ug_init elm_datefield_item_max_is_absolute()
+ */
+static void utc_UIFW_elm_datefield_item_max_is_absolute_func_02(void)
+{
+ Eina_Bool is_abs = EINA_FALSE;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_max_set(NULL, ELM_DATEFIELD_MONTH, 9, EINA_TRUE);
+ is_abs = elm_datefield_item_max_is_absolute(datefield, ELM_DATEFIELD_MONTH);
+
+ if (is_abs) {
+ tet_infoline("elm_datefield_item_max_is_absolute() failed in negative test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
void (*tet_startup)(void) = startup;
void (*tet_cleanup)(void) = cleanup;
-static void utc_UIFW_elm_datefield_layout_set_func_01(void);
-static void utc_UIFW_elm_datefield_layout_set_func_02(void);
+static void utc_UIFW_elm_datefield_item_max_set_func_01(void);
+static void utc_UIFW_elm_datefield_item_max_set_func_02(void);
enum {
POSITIVE_TC_IDX = 0x01,
};
struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_layout_set_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_layout_set_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { utc_UIFW_elm_datefield_item_max_set_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_max_set_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
};
static void startup(void)
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
}
/**
- * @brief Positive test case of elm_datefield_layout_set()
+ * @brief Positive test case of elm_datefield_item_max_set()
*/
-static void utc_UIFW_elm_datefield_layout_set_func_01(void)
+static void utc_UIFW_elm_datefield_item_max_set_func_01(void)
{
- datefield = elm_datefield_add(main_win);
- elm_datefield_layout_set(datefield, ELM_DATEFIELD_LAYOUT_TIME);
+ int year_max, year_curr;
- if (elm_datefield_layout_get(datefield) != ELM_DATEFIELD_LAYOUT_TIME) {
- tet_infoline("elm_datefield_layout_set() failed in positive test case");
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_max_set(datefield, ELM_DATEFIELD_YEAR, 120, EINA_FALSE);
+ year_max = elm_datefield_item_max_get(datefield, ELM_DATEFIELD_YEAR);
+ elm_datefield_item_value_set(datefield, ELM_DATEFIELD_YEAR, 135);
+ year_curr = elm_datefield_item_value_get(datefield, ELM_DATEFIELD_YEAR);
+
+ if (!((year_max == 120) && (year_curr == 120)) &&
+ !(elm_datefield_item_max_is_absolute(datefield, ELM_DATEFIELD_YEAR))) {
+ tet_infoline("elm_datefield_item_max_set() failed in positive test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
}
/**
- * @brief Negative test case of ug_init elm_datefield_layout_set()
+ * @brief Negative test case of ug_init elm_datefield_item_max_set()
*/
-static void utc_UIFW_elm_datefield_layout_set_func_02(void)
+static void utc_UIFW_elm_datefield_item_max_set_func_02(void)
{
datefield = elm_datefield_add(main_win);
- elm_datefield_layout_set(datefield, ELM_DATEFIELD_LAYOUT_DATEANDTIME+1);
-
- if (elm_datefield_layout_get(datefield) > ELM_DATEFIELD_LAYOUT_DATEANDTIME) {
- tet_infoline("elm_datefield_layout_set() failed in negative test case");
- tet_result(TET_FAIL);
- return;
- }
+ elm_datefield_item_max_set(NULL, ELM_DATEFIELD_YEAR, 120, EINA_FALSE);
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
--- /dev/null
+#include <tet_api.h>
+#include <Elementary.h>
+
+// Definitions
+// For checking the result of the positive test case.
+#define TET_CHECK_PASS(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err == (x1)) \
+ { \
+ tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+// For checking the result of the negative test case.
+#define TET_CHECK_FAIL(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err != (x1)) \
+ { \
+ tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+
+static Evas_Object *main_win;
+static Evas_Object *datefield;
+
+static void startup(void);
+static void cleanup(void);
+
+void (*tet_startup)(void) = startup;
+void (*tet_cleanup)(void) = cleanup;
+
+static void utc_UIFW_elm_datefield_item_min_get_func_01(void);
+static void utc_UIFW_elm_datefield_item_min_get_func_02(void);
+
+enum {
+ POSITIVE_TC_IDX = 0x01,
+ NEGATIVE_TC_IDX,
+};
+
+struct tet_testlist tet_testlist[] = {
+ { utc_UIFW_elm_datefield_item_min_get_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_min_get_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
+};
+
+static void startup(void)
+{
+ tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
+ elm_init(0, NULL);
+ main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_show(main_win);
+}
+
+static void cleanup(void)
+{
+ if ( NULL != datefield) {
+ evas_object_del(datefield);
+ datefield = NULL;
+ }
+ if ( NULL != main_win ) {
+ evas_object_del(main_win);
+ main_win = NULL;
+ }
+ elm_shutdown();
+ tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
+}
+
+/**
+ * @brief Positive test case of elm_datefield_item_min_get()
+ */
+static void utc_UIFW_elm_datefield_item_min_get_func_01(void)
+{
+ int year_min;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_min_set(datefield, ELM_DATEFIELD_YEAR, 100, EINA_FALSE);
+ year_min = elm_datefield_item_min_get(datefield, ELM_DATEFIELD_YEAR);
+
+ if (!(year_min == 100)) {
+ tet_infoline("elm_datefield_item_min_get() failed in positive test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
+
+/**
+ * @brief Negative test case of ug_init elm_datefield_item_min_get()
+ */
+static void utc_UIFW_elm_datefield_item_min_get_func_02(void)
+{
+ int year_min;
+
+ datefield = elm_datefield_add(main_win);
+ year_min = elm_datefield_item_min_get(NULL, ELM_DATEFIELD_YEAR);
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
--- /dev/null
+#include <tet_api.h>
+#include <Elementary.h>
+
+// Definitions
+// For checking the result of the positive test case.
+#define TET_CHECK_PASS(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err == (x1)) \
+ { \
+ tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+// For checking the result of the negative test case.
+#define TET_CHECK_FAIL(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err != (x1)) \
+ { \
+ tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+
+static Evas_Object *main_win;
+static Evas_Object *datefield;
+
+static void startup(void);
+static void cleanup(void);
+
+void (*tet_startup)(void) = startup;
+void (*tet_cleanup)(void) = cleanup;
+
+static void utc_UIFW_elm_datefield_item_min_is_absolute_func_01(void);
+static void utc_UIFW_elm_datefield_item_min_is_absolute_func_02(void);
+
+enum {
+ POSITIVE_TC_IDX = 0x01,
+ NEGATIVE_TC_IDX,
+};
+
+struct tet_testlist tet_testlist[] = {
+ { utc_UIFW_elm_datefield_item_min_is_absolute_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_min_is_absolute_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
+};
+
+static void startup(void)
+{
+ tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
+ elm_init(0, NULL);
+ main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_show(main_win);
+}
+
+static void cleanup(void)
+{
+ if ( NULL != datefield ) {
+ evas_object_del(datefield);
+ datefield = NULL;
+ }
+ if ( NULL != main_win ) {
+ evas_object_del(main_win);
+ main_win = NULL;
+ }
+ elm_shutdown();
+ tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
+}
+
+/**
+ * @brief Positive test case of elm_datefield_item_min_is_absolute()
+ */
+static void utc_UIFW_elm_datefield_item_min_is_absolute_func_01(void)
+{
+ Eina_Bool is_abs = EINA_FALSE;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_min_set(datefield, ELM_DATEFIELD_MONTH, 2, EINA_TRUE);
+ is_abs = elm_datefield_item_min_is_absolute(datefield, ELM_DATEFIELD_MONTH);
+
+ if (!is_abs) {
+ tet_infoline("elm_datefield_item_min_is_absolute() failed in positive test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
+
+/**
+ * @brief Negative test case of ug_init elm_datefield_item_min_is_absolute()
+ */
+static void utc_UIFW_elm_datefield_item_min_is_absolute_func_02(void)
+{
+ Eina_Bool is_abs = EINA_FALSE;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_min_set(NULL, ELM_DATEFIELD_MONTH, 2, EINA_TRUE);
+ is_abs = elm_datefield_item_min_is_absolute(datefield, ELM_DATEFIELD_MONTH);
+
+ if (is_abs) {
+ tet_infoline("elm_datefield_item_min_is_absolute() failed in negative test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
--- /dev/null
+#include <tet_api.h>
+#include <Elementary.h>
+
+// Definitions
+// For checking the result of the positive test case.
+#define TET_CHECK_PASS(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err == (x1)) \
+ { \
+ tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+// For checking the result of the negative test case.
+#define TET_CHECK_FAIL(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err != (x1)) \
+ { \
+ tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+
+static Evas_Object *main_win;
+static Evas_Object *datefield;
+
+static void startup(void);
+static void cleanup(void);
+
+void (*tet_startup)(void) = startup;
+void (*tet_cleanup)(void) = cleanup;
+
+static void utc_UIFW_elm_datefield_item_min_set_func_01(void);
+static void utc_UIFW_elm_datefield_item_min_set_func_02(void);
+
+enum {
+ POSITIVE_TC_IDX = 0x01,
+ NEGATIVE_TC_IDX,
+};
+
+struct tet_testlist tet_testlist[] = {
+ { utc_UIFW_elm_datefield_item_min_set_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_min_set_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
+};
+
+static void startup(void)
+{
+ tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
+ elm_init(0, NULL);
+ main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_show(main_win);
+}
+
+static void cleanup(void)
+{
+ if ( NULL != datefield) {
+ evas_object_del(datefield);
+ datefield = NULL;
+ }
+ if ( NULL != main_win ) {
+ evas_object_del(main_win);
+ main_win = NULL;
+ }
+ elm_shutdown();
+ tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
+}
+
+/**
+ * @brief Positive test case of elm_datefield_item_min_set()
+ */
+static void utc_UIFW_elm_datefield_item_min_set_func_01(void)
+{
+ int year_min, year_curr;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_min_set(datefield, ELM_DATEFIELD_YEAR, 100, EINA_FALSE);
+ year_min = elm_datefield_item_min_get(datefield, ELM_DATEFIELD_YEAR);
+ elm_datefield_item_value_set(datefield, ELM_DATEFIELD_YEAR, 90);
+ year_curr = elm_datefield_item_value_get(datefield, ELM_DATEFIELD_YEAR);
+
+ if (!((year_min == 100) && (year_curr == 100)) &&
+ !(elm_datefield_item_min_is_absolute(datefield, ELM_DATEFIELD_YEAR))) {
+ tet_infoline("elm_datefield_item_max_set() failed in positive test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
+
+/**
+ * @brief Negative test case of ug_init elm_datefield_item_min_set()
+ */
+static void utc_UIFW_elm_datefield_item_min_set_func_02(void)
+{
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_min_set(NULL, ELM_DATEFIELD_YEAR, 100, EINA_FALSE);
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
void (*tet_startup)(void) = startup;
void (*tet_cleanup)(void) = cleanup;
-static void utc_UIFW_elm_datefield_time_mode_get_func_01(void);
-static void utc_UIFW_elm_datefield_time_mode_get_func_02(void);
+static void utc_UIFW_elm_datefield_item_value_set_func_01(void);
+static void utc_UIFW_elm_datefield_item_value_set_func_02(void);
enum {
POSITIVE_TC_IDX = 0x01,
};
struct tet_testlist tet_testlist[] = {
- { utc_UIFW_elm_datefield_time_mode_get_func_01, POSITIVE_TC_IDX },
- { utc_UIFW_elm_datefield_time_mode_get_func_02, NEGATIVE_TC_IDX },
- { NULL, 0 }
+ { utc_UIFW_elm_datefield_item_value_set_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_value_set_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
};
static void startup(void)
static void cleanup(void)
{
- if ( NULL != datefield ) {
+ if ( NULL != datefield) {
evas_object_del(datefield);
datefield = NULL;
}
if ( NULL != main_win ) {
evas_object_del(main_win);
- main_win = NULL;
+ main_win = NULL;
}
elm_shutdown();
tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
}
/**
- * @brief Positive test case of elm_datefield_time_mode_get()
+ * @brief Positive test case of elm_datefield_item_value_set()
*/
-static void utc_UIFW_elm_datefield_time_mode_get_func_01(void)
+static void utc_UIFW_elm_datefield_item_value_set_func_01(void)
{
- Eina_Bool mode = EINA_FALSE;
+ int year;
datefield = elm_datefield_add(main_win);
- mode = elm_datefield_time_mode_get(datefield);
+ elm_datefield_item_value_set(datefield, ELM_DATEFIELD_YEAR, 111);
+ year = elm_datefield_item_value_get(datefield, ELM_DATEFIELD_YEAR);
- if (mode != EINA_TRUE) {
- tet_infoline("elm_datefield_time_mode_get() failed in positive test case");
+ if (!(year == 111)) {
+ tet_infoline("elm_datefield_item_value_set() failed in positive test case");
tet_result(TET_FAIL);
return;
}
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
}
/**
- * @brief Negative test case of ug_init elm_datefield_time_mode_get()
+ * @brief Negative test case of ug_init elm_datefield_item_value_set()
*/
-static void utc_UIFW_elm_datefield_time_mode_get_func_02(void)
+static void utc_UIFW_elm_datefield_item_value_set_func_02(void)
{
- Eina_Bool mode = EINA_FALSE;
-
datefield = elm_datefield_add(main_win);
- mode = elm_datefield_time_mode_get(NULL);
-
- /*if () {
- tet_infoline("elm_datefield_time_mode_get() failed in negative test case");
- tet_result(TET_FAIL);
- return;
- }*/
+ elm_datefield_item_value_set(NULL, ELM_DATEFIELD_YEAR, 111);
- evas_object_resize(datefield, 480, 80);
- evas_object_move(datefield, 0, 40);
evas_object_show(datefield);
tet_result(TET_PASS);
--- /dev/null
+#include <tet_api.h>
+#include <Elementary.h>
+
+// Definitions
+// For checking the result of the positive test case.
+#define TET_CHECK_PASS(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err == (x1)) \
+ { \
+ tet_printf("[TET_CHECK_PASS]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+// For checking the result of the negative test case.
+#define TET_CHECK_FAIL(x1, y...) \
+{ \
+ Evas_Object *err = y; \
+ if (err != (x1)) \
+ { \
+ tet_printf("[TET_CHECK_FAIL]:: %s[%d] : Test has failed..", __FILE__,__LINE__); \
+ tet_result(TET_FAIL); \
+ return; \
+ } \
+}
+
+
+static Evas_Object *main_win;
+static Evas_Object *datefield;
+
+static void startup(void);
+static void cleanup(void);
+
+void (*tet_startup)(void) = startup;
+void (*tet_cleanup)(void) = cleanup;
+
+static void utc_UIFW_elm_datefield_item_value_set_func_01(void);
+static void utc_UIFW_elm_datefield_item_value_set_func_02(void);
+
+enum {
+ POSITIVE_TC_IDX = 0x01,
+ NEGATIVE_TC_IDX,
+};
+
+struct tet_testlist tet_testlist[] = {
+ { utc_UIFW_elm_datefield_item_value_set_func_01, POSITIVE_TC_IDX },
+ { utc_UIFW_elm_datefield_item_value_set_func_02, NEGATIVE_TC_IDX },
+ { NULL, 0 }
+};
+
+static void startup(void)
+{
+ tet_infoline("[[ TET_MSG ]]:: ============ Startup ============ ");
+ elm_init(0, NULL);
+ main_win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+ evas_object_show(main_win);
+}
+
+static void cleanup(void)
+{
+ if ( NULL != datefield) {
+ evas_object_del(datefield);
+ datefield = NULL;
+ }
+ if ( NULL != main_win ) {
+ evas_object_del(main_win);
+ main_win = NULL;
+ }
+ elm_shutdown();
+ tet_infoline("[[ TET_MSG ]]:: ============ Cleanup ============ ");
+}
+
+/**
+ * @brief Positive test case of elm_datefield_item_value_set()
+ */
+static void utc_UIFW_elm_datefield_item_value_set_func_01(void)
+{
+ int year;
+
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_value_set(datefield, ELM_DATEFIELD_YEAR, 111);
+ year = elm_datefield_item_value_get(datefield, ELM_DATEFIELD_YEAR);
+
+ if (!(year == 111)) {
+ tet_infoline("elm_datefield_item_value_set() failed in positive test case");
+ tet_result(TET_FAIL);
+ return;
+ }
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
+
+/**
+ * @brief Negative test case of ug_init elm_datefield_item_value_set()
+ */
+static void utc_UIFW_elm_datefield_item_value_set_func_02(void)
+{
+ datefield = elm_datefield_add(main_win);
+ elm_datefield_item_value_set(NULL, ELM_DATEFIELD_YEAR, 111);
+
+ evas_object_show(datefield);
+
+ tet_result(TET_PASS);
+}
value "bring_in_scroll_friction" double: 0.5;
value "zoom_friction" double: 0.5;
value "thumbscroll_border_friction" double: 0.5;
+ value "thumbscroll_sensitivity_friction" double: 0.25;
value "scale" double: 1.0;
value "bgpixmap" int: 0;
value "compositing" int: 1;
value "bring_in_scroll_friction" double: 0.5;
value "zoom_friction" double: 0.5;
value "thumbscroll_border_friction" double: 0.5;
+ value "thumbscroll_sensitivity_friction" double: 0.25;
value "scroll_smooth_time_interval" double: 0.008;
value "scroll_smooth_amount" double: 1.0;
value "scroll_smooth_history_weight" double: 0.3;
value "bring_in_scroll_friction" double: 0.5;
value "zoom_friction" double: 0.5;
value "thumbscroll_border_friction" double: 0.5;
+ value "thumbscroll_sensitivity_friction" double: 1.0;
value "scroll_smooth_amount" double: 0.0;
value "scroll_smooth_history_weight" double: 0.3;
value "scroll_smooth_future_time" double: 0.0;
value "bring_in_scroll_friction" double: 0.5;
value "zoom_friction" double: 0.5;
value "thumbscroll_border_friction" double: 0.5;
+ value "thumbscroll_sensitivity_friction" double: 0.25;
value "scroll_smooth_amount" double: 0.0;
value "scroll_smooth_history_weight" double: 0.3;
value "scroll_smooth_future_time" double: 0.0;
+elementary (1.0.0+svn.61256slp2+build53) unstable; urgency=low
+
+ * Package Uplaod.
+ * Important Changes
+ [Scroller] merge from upstream revision 64051, but didn't accept data/theme/widgets/ctxpopup.edc
+ [Genlist] Fixed show hook event of smart scroller position received by entry was focused and smart pan resized
+ [Genlist] Revert "[genlist] Added dragging queue for unrealize items that dragging option set by mouse move event"
+ * Git: 165.213.180.234:slp/pkgs/e/elementary
+ * Tag: elementary_1.0.0+svn.61256slp2+build53
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Mon, 17 Oct 2011 19:35:43 +0900
+
elementary (1.0.0+svn.61256slp2+build52) unstable; urgency=low
* Package Upload.
}
static void
+tssf_round(void *data __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+ double val = elm_slider_value_get(obj);
+ double v;
+
+ v = ((double)((int)(val * 20.0))) / 20.0;
+ if (v != val) elm_slider_value_set(obj, v);
+}
+
+static void
+tssf_change(void *data __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+ double tssf = elm_scroll_thumbscroll_sensitivity_friction_get();
+ double val = elm_slider_value_get(obj);
+
+ if (tssf == val) return;
+ elm_scroll_thumbscroll_sensitivity_friction_all_set(val);
+}
+
+static void
cf_enable(void *data,
Evas_Object *obj,
void *event_info __UNUSED__)
{
int flush_interval, font_c, image_c, edje_file_c, edje_col_c, ts_threshould;
double scale, s_bounce_friction, ts_momentum_threshold, ts_friction,
- ts_border_friction, page_friction, bring_in_friction, zoom_friction;
+ ts_border_friction, ts_sensitivity_friction, page_friction, bring_in_friction, zoom_friction;
const char *curr_theme, *curr_engine;
const Eina_List *l_items, *l;
Eina_Bool s_bounce, ts;
ts_momentum_threshold = elm_scroll_thumbscroll_momentum_threshold_get();
ts_friction = elm_scroll_thumbscroll_friction_get();
ts_border_friction = elm_scroll_thumbscroll_border_friction_get();
+ ts_sensitivity_friction = elm_scroll_thumbscroll_sensitivity_friction_get();
page_friction = elm_scroll_page_scroll_friction_get();
bring_in_friction = elm_scroll_bring_in_scroll_friction_get();
zoom_friction = elm_scroll_zoom_friction_get();
elm_scroll_thumbscroll_border_friction_all_set(ts_border_friction);
elm_slider_value_set(evas_object_data_get(win, "ts_border_friction_slider"),
ts_border_friction);
+ elm_scroll_thumbscroll_sensitivity_friction_all_set(ts_sensitivity_friction);
+ elm_slider_value_set(evas_object_data_get(win, "ts_sensitivity_friction_slider"),
+ ts_sensitivity_friction);
elm_scroll_page_scroll_friction_all_set(page_friction);
elm_slider_value_set(evas_object_data_get(win,
"page_scroll_friction_slider"),
evas_object_smart_callback_add(sl, "changed", tsbf_round, NULL);
evas_object_smart_callback_add(sl, "delay,changed", tsbf_change, NULL);
+ LABEL_FRAME_ADD("<hilight>Thumb scroll sensitivity friction</>");
+
+ sl = elm_slider_add(win);
+ elm_object_tooltip_text_set(sl, "This is the sensitivity amount which<br>"
+ "is be multiplied by the length of mouse<br>"
+ "dragging.");
+ evas_object_data_set(win, "ts_sensitivity_friction_slider", sl);
+ evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+ elm_slider_span_size_set(sl, 120);
+ elm_slider_unit_format_set(sl, "%1.2f");
+ elm_slider_indicator_format_set(sl, "%1.2f");
+ elm_slider_min_max_set(sl, 0.1, 1.0);
+ elm_slider_value_set(sl, elm_scroll_thumbscroll_sensitivity_friction_get());
+ elm_box_pack_end(bx, sl);
+ evas_object_show(sl);
+
+ evas_object_smart_callback_add(sl, "changed", tssf_round, NULL);
+ evas_object_smart_callback_add(sl, "delay,changed", tssf_change, NULL);
+
sp = elm_separator_add(win);
elm_separator_horizontal_set(sp, EINA_TRUE);
evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
EAPI void elm_scroll_thumbscroll_border_friction_set(double friction);
EAPI void elm_scroll_thumbscroll_border_friction_all_set(double friction);
+ /**
+ * Get the sensitivity amount which is be multiplied by the length of
+ * mouse dragging.
+ *
+ * @return the thumb scroll sensitivity friction
+ *
+ * @ingroup Scrolling
+ */
+ EAPI double elm_scroll_thumbscroll_sensitivity_friction_get(void);
+
+ /**
+ * Set the sensitivity amount which is be multiplied by the length of
+ * mouse dragging.
+ *
+ * @param friction the thumb scroll sensitivity friction. @c 0.1 for
+ * minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
+ * is proper.
+ *
+ * @see elm_thumbscroll_sensitivity_friction_get()
+ * @note parameter value will get bound to 0.1 - 1.0 interval, always
+ *
+ * @ingroup Scrolling
+ */
+ EAPI void elm_scroll_thumbscroll_sensitivity_friction_set(double friction);
+
+ /**
+ * Set the sensitivity amount which is be multiplied by the length of
+ * mouse dragging, for all Elementary application windows.
+ *
+ * @param friction the thumb scroll sensitivity friction. @c 0.1 for
+ * minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
+ * is proper.
+ *
+ * @see elm_thumbscroll_sensitivity_friction_get()
+ * @note parameter value will get bound to 0.1 - 1.0 interval, always
+ *
+ * @ingroup Scrolling
+ */
+ EAPI void elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction);
+
+ /**
+ * @}
+ */
+
EAPI void elm_object_scroll_hold_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_object_scroll_hold_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_object_scroll_freeze_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
EAPI void elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation);
EAPI Eina_Bool elm_scroller_propagate_events_get(const Evas_Object *obj);
+ EAPI void elm_scroller_gravity_set(Evas_Object *obj, double x, double y) EINA_ARG_NONNULL(1);
+ EAPI void elm_scroller_gravity_get(const Evas_Object *obj, double *x, double *y) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set);
/* smart callbacks called:
* "edge,left" - the left edge of the content has been reached
* @see also elm_naviframe_item_title_visible_set()
*/
EAPI Eina_Bool elm_naviframe_item_title_visible_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set creating prev button automatically or not
+ *
+ * @param obj The naviframe object
+ * @param auto_pushed If @c EINA_TRUE, the previous button(back button) will
+ * be created internally when you pass the @c NULL to the prev_btn
+ * parameter in elm_naviframe_item_push
+ *
+ * @see also elm_naviframe_item_push()
+ */
+ EAPI void elm_naviframe_prev_btn_auto_pushed_set(Evas_Object *obj, Eina_Bool auto_pushed) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get a value whether prev button(back button) will be auto pushed or
+ * not.
+ *
+ * @param obj The naviframe object
+ * @return If @c EINA_TRUE, prev button will be auto pushed.
+ *
+ * @see also elm_naviframe_item_push()
+ * elm_naviframe_prev_btn_auto_pushed_set()
+ */
+ EAPI Eina_Bool elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
/* Control Bar */
#define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums"
struct _Widget_Data
{
- Eina_List *stack;
+ Eina_Inlist *stack;
Evas_Object *base;
Evas_Object *rect;
Eina_Bool preserve: 1;
- Eina_Bool pass_events: 1;
+ Eina_Bool auto_pushed: 1;
+ Eina_Bool freeze_events: 1;
};
struct _Elm_Naviframe_Content_Item_Pair
{
+ EINA_INLIST;
const char *part;
Evas_Object *content;
Elm_Naviframe_Item *it;
struct _Elm_Naviframe_Text_Item_Pair
{
+ EINA_INLIST;
const char *part;
const char *text;
};
struct _Elm_Naviframe_Item
{
Elm_Widget_Item base;
- Eina_List *content_list;
- Eina_List *text_list;
+ EINA_INLIST;
+ Eina_Inlist *content_list;
+ Eina_Inlist *text_list;
Evas_Object *content;
Evas_Object *title_prev_btn;
Evas_Object *title_next_btn;
const char *emission,
const char *source);
static void _disable_hook(Evas_Object *obj);
+static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl);
static void _item_text_set_hook(Elm_Object_Item *it,
const char *part,
const char *label);
static void _item_signal_emit_hook(Elm_Object_Item *it,
const char *emission,
const char *source);
+static void _item_title_visible_update(Elm_Naviframe_Item *navi_it);
static void _sizing_eval(Evas_Object *obj);
static void _item_sizing_eval(Elm_Naviframe_Item *it);
static void _move(void *data, Evas *e, Evas_Object *obj, void *event_info);
_del_hook(Evas_Object *obj)
{
Widget_Data *wd;
- Eina_List *list;
Elm_Naviframe_Item *it;
wd = elm_widget_data_get(obj);
if (!wd) return;
- EINA_LIST_REVERSE_FOREACH(wd->stack, list, it)
+ EINA_INLIST_REVERSE_FOREACH(wd->stack, it)
_item_del(it);
- eina_list_free(wd->stack);
free(wd);
}
static void
-_theme_hook(Evas_Object *obj __UNUSED__)
+_theme_hook(Evas_Object *obj)
{
- //FIXME:
+ Widget_Data *wd;
+ Elm_Naviframe_Item *it;
+
+ wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ _elm_theme_object_set(obj,
+ wd->base,
+ "naviframe",
+ "base",
+ elm_widget_style_get(obj));
+
+ EINA_INLIST_FOREACH(wd->stack, it)
+ {
+ elm_naviframe_item_style_set(ELM_CAST(it), it->style);
+ _item_title_visible_update(it);
+ }
+
+ _elm_widget_mirrored_reload(obj);
+ _mirrored_set(obj, elm_widget_mirrored_get(obj));
+
+ evas_object_hide(wd->rect);
+
}
static void _emit_hook(Evas_Object *obj,
}
static void
+_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
+{
+ Widget_Data *wd;
+ Elm_Naviframe_Item *it;
+
+ wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ EINA_INLIST_FOREACH(wd->stack, it)
+ edje_object_mirrored_set(it->base.view, rtl);
+ edje_object_mirrored_set(wd->base, rtl);
+}
+
+static void
_item_text_set_hook(Elm_Object_Item *it,
const char *part,
const char *label)
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
- Eina_List *l = NULL;
Elm_Naviframe_Text_Item_Pair *pair = NULL;
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
char buf[1024];
else
snprintf(buf, sizeof(buf), "%s", part);
- EINA_LIST_FOREACH(navi_it->text_list, l, pair)
+ EINA_INLIST_FOREACH(navi_it->text_list, pair)
if (!strcmp(buf, pair->part)) break;
if (!pair)
return;
}
eina_stringshare_replace(&pair->part, buf);
- navi_it->text_list = eina_list_append(navi_it->text_list, pair);
+ navi_it->text_list = eina_inlist_append(navi_it->text_list,
+ EINA_INLIST_GET(pair));
}
eina_stringshare_replace(&pair->text, label);
_item_text_get_hook(const Elm_Object_Item *it, const char *part)
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
- Eina_List *l = NULL;
Elm_Naviframe_Text_Item_Pair *pair = NULL;
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
char buf[1024];
else
snprintf(buf, sizeof(buf), "%s", part);
- EINA_LIST_FOREACH(navi_it->text_list, l, pair)
+ EINA_INLIST_FOREACH(navi_it->text_list, pair)
{
if (!strcmp(buf, pair->part))
return pair->text;
_item_content_get_hook(const Elm_Object_Item *it, const char *part)
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
- Eina_List *l = NULL;
Elm_Naviframe_Content_Item_Pair *pair = NULL;
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
return navi_it->title_next_btn;
//common parts
- EINA_LIST_FOREACH(navi_it->content_list, l, pair)
+ EINA_INLIST_FOREACH(navi_it->content_list, pair)
{
if (!strcmp(part, pair->part))
return pair->content;
_item_content_unset_hook(Elm_Object_Item *it, const char *part)
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
- Eina_List *l = NULL;
Elm_Naviframe_Content_Item_Pair *pair = NULL;
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
Evas_Object *content = NULL;
}
//common parts
- EINA_LIST_FOREACH(navi_it->content_list, l, pair)
+ EINA_INLIST_FOREACH(navi_it->content_list, pair)
{
if (!strcmp(part, pair->part))
{
content = pair->content;
eina_stringshare_del(pair->part);
- navi_it->content_list = eina_list_remove(navi_it->content_list,
- pair);
+ navi_it->content_list = eina_inlist_remove(navi_it->content_list,
+ EINA_INLIST_GET(pair));
free(pair);
break;
}
}
static void
+_item_title_visible_update(Elm_Naviframe_Item *navi_it)
+{
+ if (navi_it->title_visible)
+ edje_object_signal_emit(navi_it->base.view, "elm,state,title,show", "elm");
+ else
+ edje_object_signal_emit(navi_it->base.view, "elm,state,title,hide", "elm");
+}
+
+static void
_sizing_eval(Evas_Object *obj)
{
Widget_Data *wd;
- Eina_List *list;
Elm_Naviframe_Item *it;
wd = elm_widget_data_get(obj);
if (!wd) return;
- list = eina_list_last(wd->stack);
- if (!list) return;
-
- EINA_LIST_FOREACH(wd->stack, list, it)
+ EINA_INLIST_FOREACH(wd->stack, it)
_item_sizing_eval(it);
}
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
- if (wd->pass_events)
+ if (wd->freeze_events)
evas_object_hide(wd->rect);
}
Elm_Naviframe_Item *it = pair->it;
snprintf(buf, sizeof(buf), "elm,state,%s,hide", pair->part);
edje_object_signal_emit(it->base.view, buf, "elm");
- it->content_list = eina_list_remove(it->content_list, pair);
+ it->content_list = eina_inlist_remove(it->content_list,
+ EINA_INLIST_GET(pair));
eina_stringshare_del(pair->part);
free(pair);
}
Elm_Naviframe_Item *it = data;
it->back_btn = EINA_FALSE;
it->title_prev_btn = NULL;
+ edje_object_signal_emit(it->base.view, "elm,state,prev_btn,hide", "elm");
}
static void
{
Elm_Naviframe_Item *it = data;
it->title_next_btn = NULL;
+ edje_object_signal_emit(it->base.view, "elm,state,next_btn,hide", "elm");
}
static void
const char *part,
Evas_Object *content)
{
- Eina_List *l = NULL;
char buf[1024];
- EINA_LIST_FOREACH(it->content_list, l, pair)
+ EINA_INLIST_FOREACH(it->content_list, pair)
if (!strcmp(part, pair->part)) break;
if (!pair)
}
pair->it = it;
eina_stringshare_replace(&pair->part, part);
- it->content_list = eina_list_append(it->content_list, pair);
+ it->content_list = eina_inlist_append(it->content_list,
+ EINA_INLIST_GET(pair));
}
if ((pair->content) && (pair->content != content))
it->title_prev_btn = btn;
- if (!btn) return;
+ if (!btn)
+ {
+ edje_object_signal_emit(it->base.view,
+ "elm,state,prev_btn,hide",
+ "elm");
+ return;
+ }
elm_widget_sub_object_add(it->base.widget, btn);
evas_object_event_callback_add(btn,
_title_prev_btn_del,
it);
edje_object_part_swallow(it->base.view, "elm.swallow.prev_btn", btn);
+ edje_object_signal_emit(it->base.view, "elm,state,prev_btn,show", "elm");
it->back_btn = back_btn;
_item_sizing_eval(it);
it->title_next_btn = btn;
- if (!btn) return;
+ if (!btn)
+ {
+ edje_object_signal_emit(it->base.view,
+ "elm,state,next_btn,hide",
+ "elm");
+ return;
+ }
elm_widget_sub_object_add(it->base.widget, btn);
evas_object_event_callback_add(btn,
_title_next_btn_del,
it);
edje_object_part_swallow(it->base.view, "elm.swallow.next_btn", btn);
+ edje_object_signal_emit(it->base.view, "elm,state,next_btn,show", "elm");
_item_sizing_eval(it);
}
_item_del(Elm_Naviframe_Item *it)
{
Widget_Data *wd;
- Eina_List *l;
Elm_Naviframe_Content_Item_Pair *content_pair;
Elm_Naviframe_Text_Item_Pair *text_pair;
if ((it->content) && (!wd->preserve))
evas_object_del(it->content);
- EINA_LIST_FOREACH(it->content_list, l, content_pair)
+ EINA_INLIST_REVERSE_FOREACH(it->content_list, content_pair)
{
- evas_object_event_callback_del(content_pair->content, EVAS_CALLBACK_DEL, _title_content_del);
+ evas_object_event_callback_del(content_pair->content,
+ EVAS_CALLBACK_DEL,
+ _title_content_del);
evas_object_del(content_pair->content);
eina_stringshare_del(content_pair->part);
+ it->content_list =
+ eina_inlist_remove(it->content_list,
+ EINA_INLIST_GET(content_pair));
free(content_pair);
}
- EINA_LIST_FOREACH(it->text_list, l, text_pair)
+ EINA_INLIST_REVERSE_FOREACH(it->text_list, text_pair)
{
eina_stringshare_del(text_pair->part);
eina_stringshare_del(text_pair->text);
+ it->text_list = eina_inlist_remove(it->text_list,
+ EINA_INLIST_GET(text_pair));
free(text_pair);
}
- eina_list_free(it->content_list);
- eina_list_free(it->text_list);
-
- wd->stack = eina_list_remove(wd->stack, it);
+ wd->stack = eina_inlist_remove(wd->stack, EINA_INLIST_GET(it));
elm_widget_item_del(it);
}
evas_object_smart_callback_call(it->base.widget,
SIG_TRANSITION_FINISHED,
(void *) EINA_TRUE);
- if (wd->pass_events)
+ if (wd->freeze_events)
{
evas_object_hide(wd->rect);
//FIXME:
//base
wd->base = edje_object_add(e);
+ edje_object_mirrored_set(wd->base, elm_widget_mirrored_get(obj));
elm_widget_resize_object_set(obj, wd->base);
_elm_theme_object_set(obj, wd->base, "naviframe", "base", "default");
- //rect:
+ //rect
wd->rect = evas_object_rectangle_add(e);
evas_object_color_set(wd->rect, 0, 0, 0, 0);
elm_widget_sub_object_add(obj, wd->rect);
evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide, obj);
evas_object_smart_callbacks_descriptions_set(obj, _signals);
- wd->pass_events = EINA_TRUE;
+ wd->auto_pushed = EINA_TRUE;
+ wd->freeze_events = EINA_TRUE;
return obj;
}
//item base layout
it->base.view = edje_object_add(evas_object_evas_get(obj));
+ edje_object_mirrored_set(it->base.view, elm_widget_mirrored_get(obj));
evas_object_smart_member_add(it->base.view, wd->base);
elm_widget_sub_object_add(obj, it->base.view);
edje_object_signal_callback_add(it->base.view,
_item_text_set_hook(ELM_CAST(it), "elm.text.title", title_label);
//title buttons
- if ((!prev_btn) && (eina_list_count(wd->stack)))
+ if ((!prev_btn) && wd->auto_pushed && eina_inlist_count(wd->stack))
{
prev_btn = _back_btn_new(obj);
_title_prev_btn_set(it, prev_btn, EINA_TRUE);
prev_it = ELM_CAST(elm_naviframe_top_item_get(obj));
if (prev_it)
{
- if (wd->pass_events)
+ if (wd->freeze_events)
{
evas_object_show(wd->rect);
//FIXME:
"elm");
}
it->title_visible = EINA_TRUE;
- wd->stack = eina_list_append(wd->stack, it);
+ wd->stack = eina_inlist_append(wd->stack, EINA_INLIST_GET(it));
return ELM_CAST(it);
}
elm_naviframe_item_pop(Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
- Elm_Naviframe_Item *it, *prev_it;
+ Elm_Naviframe_Item *it, *prev_it = NULL;
Widget_Data *wd;
Evas_Object *content = NULL;
it = ELM_CAST(elm_naviframe_top_item_get(obj));
if (!it) return NULL;
- wd->stack = eina_list_remove(wd->stack, it);
-
if (wd->preserve)
content = it->content;
- prev_it = ELM_CAST(elm_naviframe_top_item_get(obj));
+ if (wd->stack->last->prev)
+ prev_it = EINA_INLIST_CONTAINER_GET(wd->stack->last->prev,
+ Elm_Naviframe_Item);
if (prev_it)
{
- if (wd->pass_events)
+ if (wd->freeze_events)
{
evas_object_show(wd->rect);
//FIXME:
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
Widget_Data *wd = elm_widget_data_get(navi_it->base.widget);
- Eina_List *l, *prev_l;
+ Eina_Inlist *l, *prev_l;
if (it == elm_naviframe_top_item_get(navi_it->base.widget)) return;
- l = eina_list_last(wd->stack)->prev;
+ l = wd->stack->last->prev;
while(l)
{
- if (l->data == it) break;
+ if (ELM_CAST(EINA_INLIST_CONTAINER_GET(l, Elm_Naviframe_Item)) == it)
+ break;
prev_l = l->prev;
- _item_del(l->data);
+ _item_del(EINA_INLIST_CONTAINER_GET(l, Elm_Naviframe_Item));
l = prev_l;
}
elm_naviframe_item_pop(navi_it->base.widget);
if (it == elm_naviframe_top_item_get(navi_it->base.widget))
{
_item_del(navi_it);
- navi_it = ELM_CAST(eina_list_last(wd->stack)->data);
+ navi_it = ELM_CAST(EINA_INLIST_CONTAINER_GET(wd->stack->last, Elm_Naviframe_Item));
evas_object_show(navi_it->base.view);
evas_object_raise(navi_it->base.view);
edje_object_signal_emit(navi_it->base.view, "elm,state,visible", "elm");
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if ((!wd) || (!wd->stack)) return NULL;
- return eina_list_last(wd->stack)->data;
+ return ELM_CAST(EINA_INLIST_CONTAINER_GET(wd->stack->last,
+ Elm_Naviframe_Item));
}
EAPI Elm_Object_Item*
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if ((!wd) || (!wd->stack)) return NULL;
- return wd->stack->data;
+ return ELM_CAST(EINA_INLIST_CONTAINER_GET(wd->stack,
+ Elm_Naviframe_Item));
}
EAPI void
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
- Eina_List *l;
Elm_Naviframe_Content_Item_Pair *content_pair;
Elm_Naviframe_Text_Item_Pair *text_pair;
+ Widget_Data *wd;
char buf[256];
buf,
elm_widget_style_get(navi_it->base.widget));
//recover item
- EINA_LIST_FOREACH(navi_it->text_list, l, text_pair)
+ EINA_INLIST_FOREACH(navi_it->text_list, text_pair)
_item_text_set_hook(it, text_pair->part, text_pair->text);
- EINA_LIST_FOREACH(navi_it->content_list, l, content_pair)
+ EINA_INLIST_FOREACH(navi_it->content_list, content_pair)
_item_content_set_hook(it, content_pair->part, content_pair->content);
//content
navi_it->title_visible = EINA_TRUE;
_item_sizing_eval(navi_it);
+
+ wd = elm_widget_data_get(navi_it->base.widget);
+ if (wd && wd->freeze_events)
+ {
+ evas_object_hide(wd->rect);
+ //FIXME:
+ evas_object_pass_events_set(wd->base, EINA_FALSE);
+ }
}
EAPI const char *
visible = !!visible;
if (navi_it->title_visible == visible) return;
- if (visible)
- edje_object_signal_emit(navi_it->base.view, "elm,state,title,show", "elm");
- else
- edje_object_signal_emit(navi_it->base.view, "elm,state,title,hide", "elm");
-
navi_it->title_visible = visible;
+ _item_title_visible_update(navi_it);
}
EAPI Eina_Bool
return navi_it->title_visible;
}
+EAPI void
+elm_naviframe_prev_btn_auto_pushed_set(Evas_Object *obj, Eina_Bool auto_pushed)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ wd->auto_pushed = !!auto_pushed;
+}
+
+EAPI Eina_Bool
+elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return EINA_FALSE;
+ return wd->auto_pushed;
+}
+
#ifdef HAVE_ELEMENTARY_X
static Ecore_Event_Handler *_prop_change_handler = NULL;
static Ecore_X_Window _root_1st = 0;
-#define ATOM_COUNT 22
+#define ATOM_COUNT 23
static Ecore_X_Atom _atom[ATOM_COUNT];
static Ecore_X_Atom _atom_config = 0;
static const char *_atom_names[ATOM_COUNT] =
"ENLIGHTENMENT_THUMBSCROLL_MOMENTUM_THRESHOLD",
"ENLIGHTENMENT_THUMBSCROLL_FRICTION",
"ENLIGHTENMENT_THUMBSCROLL_BORDER_FRICTION",
+ "ENLIGHTENMENT_THUMBSCROLL_SENSITIVITY_FRICTION",
"ENLIGHTENMENT_THUMBSCROLL_PAGE_SCROLL_FRICTION",
"ENLIGHTENMENT_THUMBSCROLL_BRING_IN_SCROLL_FRICTION",
"ENLIGHTENMENT_THUMBSCROLL_ZOOM_FRICTION",
#define ATOM_E_THUMBSCROLL_MOMENTUM_THRESHOLD 15
#define ATOM_E_THUMBSCROLL_FRICTION 16
#define ATOM_E_THUMBSCROLL_BORDER_FRICTION 17
-#define ATOM_E_THUMBSCROLL_PAGE_SCROLL_FRICTION 18
-#define ATOM_E_THUMBSCROLL_BRING_IN_SCROLL_FRICTION 19
-#define ATOM_E_THUMBSCROLL_ZOOM_FRICTION 20
-#define ATOM_E_CONFIG 21
+#define ATOM_E_THUMBSCROLL_SENSITIVITY_FRICTION 18
+#define ATOM_E_THUMBSCROLL_PAGE_SCROLL_FRICTION 19
+#define ATOM_E_THUMBSCROLL_BRING_IN_SCROLL_FRICTION 20
+#define ATOM_E_THUMBSCROLL_ZOOM_FRICTION 21
+#define ATOM_E_CONFIG 22
static Eina_Bool _prop_config_get(void);
static Eina_Bool _prop_change(void *data __UNUSED__,
(double)val / 1000.0;
}
}
+ else if (event->atom == _atom[ATOM_E_THUMBSCROLL_SENSITIVITY_FRICTION])
+ {
+ unsigned int val = 1000;
+
+ if (ecore_x_window_prop_card32_get(event->win,
+ event->atom,
+ &val, 1) > 0)
+ {
+ _elm_config->thumbscroll_sensitivity_friction =
+ (double)val / 1000.0;
+ }
+ }
else if (event->atom == _atom[ATOM_E_THUMBSCROLL_PAGE_SCROLL_FRICTION])
{
unsigned int val = 1000;
ELM_CONFIG_VAL(D, T, thumbscroll_friction, T_DOUBLE);
ELM_CONFIG_VAL(D, T, thumbscroll_bounce_friction, T_DOUBLE);
ELM_CONFIG_VAL(D, T, thumbscroll_border_friction, T_DOUBLE);
+ ELM_CONFIG_VAL(D, T, thumbscroll_sensitivity_friction, T_DOUBLE);
ELM_CONFIG_VAL(D, T, page_scroll_friction, T_DOUBLE);
ELM_CONFIG_VAL(D, T, bring_in_scroll_friction, T_DOUBLE);
ELM_CONFIG_VAL(D, T, zoom_friction, T_DOUBLE);
_elm_config->bring_in_scroll_friction = 0.5;
_elm_config->zoom_friction = 0.5;
_elm_config->thumbscroll_border_friction = 0.5;
+ _elm_config->thumbscroll_sensitivity_friction = 0.25; // magic number! just trial and error shows this makes it behave "nicer" and not run off at high speed all the time
_elm_config->scroll_smooth_time_interval = 0.008;
_elm_config->scroll_smooth_amount = 1.0;
_elm_config->scroll_smooth_history_weight = 0.3;
_elm_config->thumbscroll_border_friction = friction;
}
+ s = getenv("ELM_THUMBSCROLL_SENSITIVITY_FRICTION");
+ if (s)
+ {
+ friction = atof(s);
+ if (friction < 0.1)
+ friction = 0.1;
+
+ if (friction > 1.0)
+ friction = 1.0;
+
+ _elm_config->thumbscroll_sensitivity_friction = friction;
+ }
s = getenv("ELM_SCROLL_SMOOTH_TIME_INTERVAL");
if (s) _elm_config->scroll_smooth_time_interval = atof(s);
s = getenv("ELM_SCROLL_SMOOTH_AMOUNT");
}
if (part_type & ELM_CONFORM_SLIDING_WIN_PART)
{
+ //If the virtual keypad uses the swallow area
+ ret = ecore_x_e_illume_keyboard_geometry_get(zone, &sx, &sy, &sw, &sh);
+ if (ret && sh > 0) return;
+
edje_object_part_swallow(wd->base, "elm.swallow.virtualkeypad",
wd->sliding_win);
ret = ecore_x_e_illume_sliding_win_geometry_get(zone, &sx, &sy, &sw, &sh);
{
Widget_Data *wd;
Datefield_Item *it = NULL;
- unsigned int len, idx, location = 0;
+ unsigned int len = 0, idx, location = 0;
char separator[MAX_SEPARATOR_LEN];
char *fmt_ptr;
char cur;
Eina_Bool swipe : 1;
Eina_Bool reorder_mode : 1;
Eina_Bool reorder_pan_move : 1;
- Eina_List *dragging_queue;
struct
{
Evas_Coord x, y;
Eina_Bool effect_mode : 1;
Eina_Bool auto_scrolled : 1;
Eina_Bool pan_changed : 1;
+ Eina_Bool drag_started : 1;
int edit_mode;
Ecore_Animator *item_moving_effect_timer;
Evas_Object *alpha_bg;
Evas_Coord expand_item_gap;
int move_effect_mode;
Ecore_Job *changed_job;
- Elm_Genlist_Item *rename_it;
+ Elm_Genlist_Item *focused_rename_it;
+ Evas_Coord current_scrl_x;
+ Evas_Coord current_scrl_y;
};
struct _Item_Block
{
Widget_Data *wd = elm_widget_data_get(data);
Evas_Coord x, y, w, h;
+ Evas_Coord px, py, pw, ph;
+ Evas_Coord new_x, new_y;
if (!wd) return;
elm_widget_show_region_get(obj, &x, &y, &w, &h);
+ evas_object_geometry_get(wd->pan_smart, &px, &py, &pw, &ph);
+
//x & y are screen coordinates, Add with pan coordinates
- x += wd->pan_x;
- y += wd->pan_y;
- if(wd->rename_it) elm_genlist_item_bring_in(wd->rename_it);
- else elm_smart_scroller_child_region_show(wd->scr, x, y, w, h);
+ new_x = wd->current_scrl_x + x - pw + w;
+ new_y = wd->current_scrl_y + y - ph + h;
+
+ if (((new_y > 0) && wd->pan_changed && (y > ph)) || ((new_x > 0) && wd->pan_changed && (x > pw)))
+ elm_smart_scroller_child_pos_set(wd->scr, new_x, new_y);
+ else
+ elm_smart_scroller_child_pos_set(wd->scr, wd->current_scrl_x, wd->current_scrl_y);
}
static void
if ((adx > minw) || (ady > minh))
{
it->dragging = EINA_TRUE;
- it->wd->dragging_queue = eina_list_append(it->wd->dragging_queue, it);
if (it->long_timer)
{
ecore_timer_del(it->long_timer);
_item_unselect(it);
if (dy < 0)
{
- if (ady > adx)
+ if ((ady > adx) && (!it->wd->drag_started))
evas_object_smart_callback_call(it->base.widget,
SIG_DRAG_START_UP, it);
else
}
else
{
- if (ady > adx)
+ if ((ady > adx) && (!it->wd->drag_started))
evas_object_smart_callback_call(it->base.widget,
SIG_DRAG_START_DOWN, it);
else
Eina_List *list, *l;
it->long_timer = NULL;
- if ((it->disabled) || (it->dragging) || (it->display_only) || (it->wd->rename_it))
+ if ((it->disabled) || (it->dragging) || (it->display_only) || (it->wd->focused_rename_it))
return ECORE_CALLBACK_CANCEL;
it->wd->longpressed = EINA_TRUE;
evas_object_smart_callback_call(it->base.widget, SIG_LONGPRESSED, it);
ecore_timer_del(it->long_timer);
it->long_timer = NULL;
}
- while (it->wd->dragging_queue)
+ if (it->dragging)
{
- Elm_Genlist_Item *dragging_it = NULL;
- dragging_it = eina_list_data_get(it->wd->dragging_queue);
- dragging_it->dragging = EINA_FALSE;
- evas_object_smart_callback_call(dragging_it->base.widget, SIG_DRAG_STOP, dragging_it);
- if (dragging_it->want_unrealize)
- {
- _item_unrealize(dragging_it, EINA_FALSE);
- if (dragging_it->block->want_unrealize)
- _item_block_unrealize(it->block);
- }
- it->wd->dragging_queue = eina_list_remove_list(it->wd->dragging_queue,it->wd->dragging_queue);
+ it->dragging = EINA_FALSE;
+ evas_object_smart_callback_call(it->base.widget, SIG_DRAG_STOP, it);
dragged = 1;
}
if (it->swipe_timer)
it->wd->wasselected = EINA_FALSE;
return;
}
+ if (dragged)
+ {
+ if (it->want_unrealize)
+ {
+ _item_unrealize(it, EINA_FALSE);
+ if (it->block->want_unrealize)
+ _item_block_unrealize(it->block);
+ }
+ }
if ((it->disabled) || (dragged) || (it->display_only)) return;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
if (it->wd->multi)
}
static void
+_mouse_down_scroller(void *data,
+ Evas *evas __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ Widget_Data *wd = elm_widget_data_get(data);
+
+ if (!wd) return;
+ wd->drag_started = EINA_FALSE;
+}
+
+static void
+_mouse_up_scroller(void *data,
+ Evas *evas __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
+{
+ Widget_Data *wd = elm_widget_data_get(data);
+
+ if (!wd) return;
+ wd->drag_started = EINA_FALSE;
+}
+
+static void
+_mouse_move_scroller(void *data,
+ Evas *evas __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info)
+{
+ Widget_Data *wd = elm_widget_data_get(data);
+ Evas_Event_Mouse_Move *ev = event_info;
+ Evas_Coord minw = 0, minh = 0, dx, dy, adx, ady;
+
+ if (!wd) return;
+ if (wd->drag_started) return;
+
+ elm_coords_finger_size_adjust(1, &minw, 1, &minh);
+ dx = ev->cur.canvas.x - ev->prev.canvas.x;
+ dy = ev->cur.canvas.y - ev->prev.canvas.y;
+ adx = dx;
+ ady = dy;
+ if (adx < 0) adx = -dx;
+ if (ady < 0) ady = -dy;
+ if (((ady < minh) && (ady > minh / 2)) && (ady > adx))
+ {
+ if (dy < 0)
+ {
+ evas_object_smart_callback_call(data, SIG_DRAG_START_UP, NULL);
+ wd->drag_started = EINA_TRUE;
+ }
+ else
+ {
+ evas_object_smart_callback_call(data, SIG_DRAG_START_DOWN, NULL);
+ wd->drag_started = EINA_TRUE;
+ }
+ }
+}
+
+static void
_signal_expand_toggle(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
{
Elm_Genlist_Item *it = data;
if (it) it->defer_unrealize = EINA_TRUE;
+ if (it->renamed && (it->wd->focused_rename_it != it)) it->wd->focused_rename_it = it;
}
static void
{
Elm_Genlist_Item *it = data;
if (it) it->defer_unrealize = EINA_FALSE;
+ if (it->renamed && (it->wd->focused_rename_it == it)) it->wd->focused_rename_it = NULL;
}
+static void
_item_del_hook(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Elm_Genlist_Item *it = event_info;
Pan *sd = evas_object_smart_data_get(obj);
Item_Block *itb;
Evas_Coord ox, oy, ow, oh, cvx, cvy, cvw, cvh;
+ Evas_Coord scr_x, scr_y;
int in = 0;
Elm_Genlist_Item *git;
Eina_List *l;
if (!sd) return;
evas_event_freeze(evas_object_evas_get(obj));
-
+ elm_smart_scroller_child_pos_get(sd->wd->scr, &scr_x, &scr_y);
+ sd->wd->current_scrl_x = scr_x;
+ sd->wd->current_scrl_y = scr_y;
if (sd->wd->pan_changed)
{
_calc_job(sd->wd);
elm_widget_on_show_region_hook_set(obj, _show_region_hook, obj);
wd->scr = elm_smart_scroller_add(e);
+ evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_MOUSE_DOWN,
+ _mouse_down_scroller, obj);
+ evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_MOUSE_UP,
+ _mouse_up_scroller, obj);
+ evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_MOUSE_MOVE,
+ _mouse_move_scroller, obj);
elm_smart_scroller_widget_set(wd->scr, obj);
elm_smart_scroller_object_theme_set(obj, wd->scr, "genlist", "base",
elm_widget_style_get(obj));
}
static Evas_Object *
_elm_genlist_item_label_create(void *data,
- Evas_Object *obj __UNUSED__,
- Evas_Object *tooltip,
+ Evas_Object *obj,
void *item __UNUSED__)
{
- Evas_Object *label = elm_label_add(tooltip);
+ Evas_Object *label = elm_label_add(obj);
if (!label)
return NULL;
elm_object_style_set(label, "tooltip");
{
_item_unrealize(it, EINA_FALSE);
it->renamed = EINA_TRUE;
- it->wd->rename_it = it;
it->nocache = EINA_TRUE;
if (it->selected) _item_unselect(it);
{
it->renamed = EINA_FALSE;
it->nocache = EINA_TRUE;
- it->wd->rename_it = NULL;
_item_cache_zero(it->wd);
elm_genlist_item_update(it);
}
#endif
}
+EAPI double
+elm_scroll_thumbscroll_sensitivity_friction_get(void)
+{
+ return _elm_config->thumbscroll_sensitivity_friction;
+}
+
+EAPI void
+elm_scroll_thumbscroll_sensitivity_friction_set(double friction)
+{
+ if (friction < 0.1)
+ friction = 0.1;
+
+ if (friction > 1.0)
+ friction = 1.0;
+
+ _elm_config->thumbscroll_friction = friction;
+}
+
+EAPI void
+elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction)
+{
+ if (friction < 0.1)
+ friction = 0.1;
+
+ if (friction > 1.0)
+ friction = 1.0;
+
+#ifdef HAVE_ELEMENTARY_X
+ static Ecore_X_Atom atom = 0;
+ unsigned int sensitivity_friction_i = (unsigned int)(friction * 1000.0);
+
+ if (!atom)
+ atom = ecore_x_atom_get("ENLIGHTENMENT_THUMBSCROLL_SENSITIVITY_FRICTION");
+ ecore_x_window_prop_card32_set(ecore_x_window_root_first_get(),
+ atom, &sensitivity_friction_i, 1);
+#endif
+}
+
/**
* @defgroup Scrollhints Scrollhints
* @ingroup Main
elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source)
{
elm_widget_item_signal_emit(it, emission, source);
-}
\ No newline at end of file
+}
void _elm_smart_pan_max_get (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
void _elm_smart_pan_min_get (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
void _elm_smart_pan_child_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
+void _elm_smart_pan_gravity_set (Evas_Object *obj, double x, double y);
+void _elm_smart_pan_gravity_get (Evas_Object *obj, double *x, double *y);
// els_scroller.h
typedef enum _Elm_Smart_Scroller_Policy
double zoom_friction;
unsigned char thumbscroll_bounce_enable;
double thumbscroll_border_friction;
+ double thumbscroll_sensitivity_friction;
double scroll_smooth_time_interval;
double scroll_smooth_amount;
double scroll_smooth_history_weight;
return elm_smart_scroller_propagate_events_get(wd->scr);
}
+/**
+ * Set scrolling gravity on a scroller
+ *
+ * It set scrolling gravity. It adds scrolling weight values
+ * to the scroller. Usually it uses for stopping the scroller.
+ * To set y as 0.0 for lower growing child objects,
+ * even though child objects are added to bottom, the scroller doesn't move.
+ * To set y as 1.0 for upper growing child objects. And x is horizontal gravity.
+ * By default 0.0
+ *
+ * @param obj The scroller object
+ * @param x The scrolling horizontal gravity
+ * @param y The scrolling vertical gravity
+ *
+ * @ingroup Scroller
+ */
+EAPI void
+elm_scroller_gravity_set(Evas_Object *obj, double x, double y)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return EINA_FALSE;
+
+ elm_smart_scroller_gravity_set(wd->scr, x, y);
+}
+
+/**
+ * Get scrolling gravity values for a scroller
+ *
+ * This gets gravity values for a scroller. See
+ * elm_scroller_gravity_set() for more information
+ *
+ * @param obj The scroller object
+ * @param x The scrolling horizontal gravity
+ * @param y The scrolling vertical gravity
+ *
+ * @ingroup Scroller
+ */
+EAPI void
+elm_scroller_gravity_get(const Evas_Object *obj, double *x, double *y)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return EINA_FALSE;
+
+ elm_smart_scroller_gravity_get(wd->scr, x, y);
+}
+
EAPI void
elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set)
{
static void
_position_items(Widget_Data *wd)
{
- Eina_List *l;
+ Eina_List *l, *ll;
Elm_Segment_Item *it;
Eina_Bool rtl;
int bx, by, bw, bh, pos;
evas_object_geometry_get(wd->base, &bx, &by, &bw, &bh);
wd->item_width = bw / wd->item_count;
+
rtl = elm_widget_mirrored_get(wd->obj);
if (rtl)
else
pos += wd->item_width;
}
+ ll = eina_list_last(wd->seg_items);
+ it = ll->data;
+ evas_object_resize(it->base.view,
+ (bw - ((wd->item_count - 1) * wd->item_width)),
+ bh);
_sizing_eval(wd->obj);
}
{\r
Widget_Data *wd = (Widget_Data *)data;\r
int i = 0;\r
- int num = eina_list_count(wd->list);\r
+ int num;\r
int x = 0, y = 0;\r
if (!wd) return;\r
- \r
+ num = eina_list_count(wd->list);\r
+\r
for (i =0; i < num; i++)\r
{\r
Elm_Stackedicon_Item *it = NULL;\r
// add shown icons\r
EINA_LIST_REVERSE_FOREACH(wd->list, l, it) \r
{\r
- if (it->index >= MAX_SHOWN_ITEM) continue;\r
- if (it) _add_image_to_buffer(obj, e, it);\r
+ if (it)\r
+ {\r
+ if (it->index >= MAX_SHOWN_ITEM) continue;\r
+ _add_image_to_buffer(obj, e, it);\r
+ }\r
}\r
ecore_evas_show( ee );\r
\r
Evas_Object *child_obj;
Evas_Coord x, y, w, h;
Evas_Coord child_w, child_h, px, py;
+ double gravity_x, gravity_y;
+ Evas_Coord prev_cw, prev_ch, delta_posx, delta_posy;
};
/* local subsystem functions */
if (h) *h = sd->child_h;
}
+void
+_elm_smart_pan_gravity_set(Evas_Object *obj, double x, double y)
+{
+ API_ENTRY return;
+ sd->gravity_x = x;
+ sd->gravity_y = y;
+ sd->prev_cw = sd->child_w;
+ sd->prev_ch = sd->child_h;
+ sd->delta_posx = 0;
+ sd->delta_posy = 0;
+}
+
+void
+_elm_smart_pan_gravity_get(Evas_Object *obj, double *x, double *y)
+{
+ API_ENTRY return;
+ if (x) *x = sd->gravity_x;
+ if (y) *y = sd->gravity_y;
+}
+
/* local subsystem functions */
static void
_smart_child_del_hook(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
static void
_smart_reconfigure(Smart_Data *sd)
{
- evas_object_move(sd->child_obj, sd->x - sd->px, sd->y - sd->py);
+ if (sd->gravity_x || sd->gravity_y)
+ {
+ sd->delta_posx += sd->child_w - sd->prev_cw;
+ sd->prev_cw = sd->child_w;
+ sd->delta_posy += sd->child_h - sd->prev_ch;
+ sd->prev_ch = sd->child_h;
+
+ evas_object_move(sd->child_obj,
+ sd->x - sd->px - (sd->delta_posx*sd->gravity_x),
+ sd->y - sd->py - (sd->delta_posy*sd->gravity_y));
+ sd->px += sd->delta_posx*sd->gravity_x;
+ sd->py += sd->delta_posy*sd->gravity_y;
+
+ }
+ else
+ evas_object_move(sd->child_obj, sd->x - sd->px, sd->y - sd->py);
}
static void
sd->y = 0;
sd->w = 0;
sd->h = 0;
+ sd->gravity_x = 0.0;
+ sd->gravity_y = 0.0;
evas_object_smart_data_set(obj, sd);
}
void _elm_smart_pan_max_get (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
void _elm_smart_pan_min_get (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
void _elm_smart_pan_child_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
+void _elm_smart_pan_gravity_set (Evas_Object *obj, double x, double y);
+void _elm_smart_pan_gravity_get (Evas_Object *obj, double *x, double *y);
+
void (*max_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
void (*min_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
void (*child_size_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
+ void (*gravity_set) (Evas_Object *obj, double x, double y);
+ void (*gravity_get) (Evas_Object *obj, double *x, double *y);
} pan_func;
struct {
sd->pan_func.max_get = _elm_smart_pan_max_get;
sd->pan_func.min_get = _elm_smart_pan_min_get;
sd->pan_func.child_size_get = _elm_smart_pan_child_size_get;
+ sd->pan_func.gravity_set = _elm_smart_pan_gravity_set;
+ sd->pan_func.gravity_get = _elm_smart_pan_gravity_get;
evas_object_event_callback_add(child, EVAS_CALLBACK_DEL, _smart_child_del_hook, sd);
_elm_smart_pan_child_set(sd->pan_obj, child);
sd->pan_func.max_get = pan_max_get;
sd->pan_func.min_get = pan_min_get;
sd->pan_func.child_size_get = pan_child_size_get;
+ sd->pan_func.gravity_set = _elm_smart_pan_gravity_set;
+ sd->pan_func.gravity_get = _elm_smart_pan_gravity_get;
sd->extern_pan = 1;
evas_object_smart_callback_add(sd->pan_obj, "changed", _smart_pan_changed_hook, sd);
evas_object_smart_callback_add(sd->pan_obj, "pan_changed", _smart_pan_pan_changed_hook, sd);
_elm_smart_scroller_wanted_region_set(sd->smart_obj);
}
+void
+elm_smart_scroller_gravity_set(Evas_Object *obj, double x, double y)
+{
+ API_ENTRY return;
+
+ sd->pan_func.gravity_set(sd->pan_obj, x, y);
+}
+
+void
+elm_smart_scroller_gravity_get(Evas_Object *obj, double *x, double *y)
+{
+ API_ENTRY return;
+
+ sd->pan_func.gravity_get(sd->pan_obj, x, y);
+}
+
static void
_smart_event_wheel(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
ax /= (i + 1);
ay /= (i + 1);
at /= (i + 1);
- at *= 4.0; // magic number! just trial and error shows this makes it behave "nicer" and not run off at high speed all the time
+ at /= _elm_config->thumbscroll_sensitivity_friction;
dx = ev->canvas.x - ax;
dy = ev->canvas.y - ay;
if (at > 0)
void elm_smart_scroller_mirrored_set (Evas_Object *obj, Eina_Bool mirrored);
void elm_smart_scroller_hold_set (Evas_Object *obj, Eina_Bool hold);
void elm_smart_scroller_freeze_set (Evas_Object *obj, Eina_Bool freeze);
+void elm_smart_scroller_gravity_set (Evas_Object *obj, double x, double y);
+void elm_smart_scroller_gravity_get (Evas_Object *obj, double *x, double *y);
void elm_smart_scroller_bounce_allow_set (Evas_Object *obj, Eina_Bool horiz, Eina_Bool vert);
void elm_smart_scroller_bounce_allow_get (const Evas_Object *obj, Eina_Bool *horiz, Eina_Bool *vert);
void elm_smart_scroller_paging_set (Evas_Object *obj, double pagerel_h, double pagerel_v, Evas_Coord pagesize_h, Evas_Coord pagesize_v);