Tizen Native API
4.0
|
To enhance the Add to home feature.
#include <shortcut_manager.h>
It provides function of creating shortcut. Developers can use the "shortcut_add_to_home" API to create their shortcut to a home screen.
This API is related with the following features:
Functions | |
int | shortcut_add_to_home (const char *name, shortcut_type type, const char *uri, const char *icon, int allow_duplicate, result_cb_t result_cb, void *data) |
Adds a shortcut to home, asynchronously. | |
int | shortcut_add_to_home_widget (const char *name, shortcut_widget_size_e size, const char *widget_id, const char *icon, double period, int allow_duplicate, result_cb_t result_cb, void *data) |
Adds a widget to home, asynchronously. | |
int | shortcut_remove_from_home (const char *name, result_cb_t result_cb, void *user_data) |
Removes a shortcut from home, asynchronously. | |
int | shortcut_get_list (const char *package_name, shortcut_list_cb list_cb, void *data) |
Gets the preset list of shortcut template from the installed package, synchronously. | |
int | shortcut_set_request_cb (shortcut_request_cb request_cb, void *data) |
Registers a callback function to listen requests from applications. | |
void | shortcut_unset_request_cb (void) |
Unregisters a callback for the shortcut request. | |
int | shortcut_set_remove_cb (shortcut_remove_cb remove_cb, void *data) |
Registers the callback function to listen the remove requests from applications. | |
void | shortcut_unset_remove_cb (void) |
Unregisters a callback for the shortcut remove. | |
Typedefs | |
typedef enum _shortcut_type | shortcut_type |
Enumeration for shortcut types. | |
typedef enum shortcut_widget_size | shortcut_widget_size_e |
Enumeration for sizes of shortcut widget. | |
typedef int(* | result_cb_t )(int ret, void *data) |
Called to receive the result of shortcut_add_to_home(). | |
typedef int(* | shortcut_list_cb )(const char *package_name, const char *icon, const char *name, const char *extra_key, const char *extra_data, void *user_data) |
Called to receive the result of shortcut_get_list(). | |
typedef int(* | shortcut_request_cb )(const char *package_name, const char *name, int type, const char *content_info, const char *icon, int pid, double period, int allow_duplicate, void *data) |
Called to the add_to_home request. | |
typedef int(* | shortcut_remove_cb )(const char *package_name, const char *name, int sender_pid, void *user_data) |
Called to the shortcut_remove_from_home request. |
typedef int(* result_cb_t)(int ret, void *data) |
Called to receive the result of shortcut_add_to_home().
[in] | ret | The result value, it could be 0 if it succeeds to add a shortcut, otherwise it returns an errno |
[in] | data | The callback data |
0
if there is no error, otherwise errno typedef int(* shortcut_list_cb)(const char *package_name, const char *icon, const char *name, const char *extra_key, const char *extra_data, void *user_data) |
Called to receive the result of shortcut_get_list().
[in] | package_name | The name of package |
[in] | icon | The absolute path of an icon file for this shortcut |
[in] | name | The name of the created shortcut icon |
[in] | extra_key | The user data. A property of shortcut element in manifest file |
[in] | extra_data | The user data. A property of shortcut element in manifest file |
[in] | user_data | The callback user data |
typedef int(* shortcut_remove_cb)(const char *package_name, const char *name, int sender_pid, void *user_data) |
Called to the shortcut_remove_from_home request.
[in] | package_name | The name of package |
[in] | name | The name of the created shortcut icon |
[in] | sender_pid | The process ID of who request shortcut_remove_from_home |
[in] | user_data | The user data passed from the callback register function |
0
if the remove_from_home request is handled successfully, otherwise it returns a proper errno. typedef int(* shortcut_request_cb)(const char *package_name, const char *name, int type, const char *content_info, const char *icon, int pid, double period, int allow_duplicate, void *data) |
Called to the add_to_home request.
The homescreen should define a callback as this type and implement the service code for adding a new application shortcut.
[in] | package_name | The name of package |
[in] | name | The name of the created shortcut icon |
[in] | type | One of the three defined types |
[in] | content_info | The specific information for creating a new shortcut |
[in] | icon | The absolute path of an icon file for this shortcut |
[in] | pid | The process ID of who request add_to_home |
[in] | allow_duplicate | 1 if the shortcut can be duplicated, otherwise a shourtcut should exist only once |
[in] | data | The callback data |
0
if the add_to_home request is handled successfully, otherwise it returns a proper errno typedef enum _shortcut_type shortcut_type |
Enumeration for shortcut types.
Basically, two types of shortcuts are defined. Every homescreen developer should support these types of shortcuts. Or return, a proper errno to figure out why the application failed to add a shortcut. LAUNCH_BY_APP is used for adding a package itself as a shortcut. LAUNCH_BY_URI is used for adding a shortcut for "uri" data.
typedef enum shortcut_widget_size shortcut_widget_size_e |
Enumeration for sizes of shortcut widget.
enum _shortcut_type |
Enumeration for shortcut types.
Basically, two types of shortcuts are defined. Every homescreen developer should support these types of shortcuts. Or return, a proper errno to figure out why the application failed to add a shortcut. LAUNCH_BY_APP is used for adding a package itself as a shortcut. LAUNCH_BY_URI is used for adding a shortcut for "uri" data.
enum shortcut_error_e |
Enumeration for values of shortcut response types.
enum shortcut_widget_size |
Enumeration for sizes of shortcut widget.
int shortcut_add_to_home | ( | const char * | name, |
shortcut_type | type, | ||
const char * | uri, | ||
const char * | icon, | ||
int | allow_duplicate, | ||
result_cb_t | result_cb, | ||
void * | data | ||
) |
Adds a shortcut to home, asynchronously.
[in] | name | The name of the created shortcut icon |
[in] | type | The type of shortcuts |
[in] | uri | The specific information for delivering to the viewer for creating a shortcut |
[in] | icon | The absolute path of an icon file |
[in] | allow_duplicate | 1 if it accepts the duplicated shortcut, otherwise 0 |
[in] | result_cb | The address of the callback function that is called when the result comes back from the viewer |
[in] | data | The callback data that is used in the callback function |
0
on success, otherwise a negative error value SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_INVALID_PARAMETER | Invalid function parameter |
SHORTCUT_ERROR_OUT_OF_MEMORY | Out of memory |
SHORTCUT_ERROR_IO_ERROR | I/O Error |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
SHORTCUT_ERROR_RESOURCE_BUSY | Device or resource busy |
SHORTCUT_ERROR_NO_SPACE | There is no space to add a new shortcut |
SHORTCUT_ERROR_EXIST | Shortcut is already exist |
SHORTCUT_ERROR_FAULT | Unrecoverable error |
SHORTCUT_ERROR_COMM | Connection not established or communication problem |
#include <stdio.h> #include <shortcut_manager.h> static int result_cb(int ret, int pid, void *data) { if (ret < 0) dlog_print("Failed to add a shortcut: %s\n", perror(ret)); dlog_print("Processed by the %d\n", pid); return 0; } static int app_create(void *data) { char* data_path = app_get_data_path(); int path_len = strlen(data_path)+10; char * path = malloc(path_len); memset(path, 0, path_len); strncat(path, data_path, path_len); strncat(path, "Friend.jpg", path_len); shortcut_add_to_home("With friends", LAUNCH_BY_URI, "gallery:0000-0000", path, 0, result_cb, NULL); free(path); return 0; }
int shortcut_add_to_home_widget | ( | const char * | name, |
shortcut_widget_size_e | size, | ||
const char * | widget_id, | ||
const char * | icon, | ||
double | period, | ||
int | allow_duplicate, | ||
result_cb_t | result_cb, | ||
void * | data | ||
) |
Adds a widget to home, asynchronously.
[in] | name | The name of the created widget which will be shown when the widget is not prepared |
[in] | size | The size of widget |
[in] | widget_id | Widget ID |
[in] | icon | The absolute path of an icon file which will be shown when the widget is not prepared |
[in] | period | The Update period in seconds |
[in] | allow_duplicate | 1 if it accepts the duplicated widget, otherwise 0 |
[in] | result_cb | The address of the callback function that is called when the result comes back from the viewer |
[in] | data | The callback data that is used in the callback function |
0
on success, otherwise a negative error value SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_INVALID_PARAMETER | Invalid function parameter |
SHORTCUT_ERROR_OUT_OF_MEMORY | Out of memory |
SHORTCUT_ERROR_IO_ERROR | I/O Error |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
SHORTCUT_ERROR_FAULT | Unrecoverable error |
SHORTCUT_ERROR_COMM | Connection not established or communication problem |
#include <stdio.h> #include <shortcut.h> #include <storage.h> #define TIZEN_PATH_MAX 1024 static int result_cb(int ret, int pid, void *data) { if (ret < 0) dlog_print("Failed to add a widget: %s\n", perror(ret)); dlog_print("Processed by the %d\n", pid); return 0; } static int app_create(void *data) { char *image_root = NULL; char image_path[TIZEN_PATH_MAX] = {0,}; storage_get_directory(STORAGE_TYPE_INTERNAL, STORAGE_DIRECTORY_IMAGES, &image_root); snprintf(image_path, TIZEN_PATH_MAX, "%s/alter_icon.png", image_root); shortcut_add_to_home_widget("alter_name", WIDGET_SIZE_1x1, "org.tizen.testwidget", image_path, -1.0f, 0, result_cb, NULL); return 0; }
int shortcut_get_list | ( | const char * | package_name, |
shortcut_list_cb | list_cb, | ||
void * | data | ||
) |
Gets the preset list of shortcut template from the installed package, synchronously.
[in] | package_name | The package name |
[in] | list_cb | The callback function to get the shortcut item information |
[in] | data | The callback data that is used in the callback function |
@c | N Number of items (call count of the callback function) |
SHORTCUT_ERROR_INVALID_PARAMETER | Invalid function parameter |
SHORTCUT_ERROR_OUT_OF_MEMORY | Out of memory |
SHORTCUT_ERROR_IO_ERROR | I/O Error |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
SHORTCUT_ERROR_FAULT | Unrecoverable error |
SHORTCUT_ERROR_COMM | Connection not established or communication problem |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
int shortcut_remove_from_home | ( | const char * | name, |
result_cb_t | result_cb, | ||
void * | user_data | ||
) |
Removes a shortcut from home, asynchronously.
If the callback function registered for a widget, the shortcut deletion is possible.
[in] | name | The name of the created shortcut icon |
[in] | result_cb | The address of the callback function that is called when the result comes back from the viewer |
[in] | user_data | The callback data that is used in the callback function |
SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_INVALID_PARAMETER | Invalid function parameter |
SHORTCUT_ERROR_OUT_OF_MEMORY | Out of memory |
SHORTCUT_ERROR_IO_ERROR | I/O Error |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
SHORTCUT_ERROR_COMM | Connection not established or communication problem |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
#include <shortcut_manager.h> int result_cb(int ret, void *data) { if (ret < 0) dlog_print("Failed to remove a shortcut: %d\n", ret); return 0; } { int result; result = shortcut_remove_from_home("shortcut_name", result_cb, NULL); if (result != SHORTCUT_ERROR_NONE) { dlog_print("Failed to remove a shortcut: %d\n", result); return result; } }
int shortcut_set_remove_cb | ( | shortcut_remove_cb | remove_cb, |
void * | data | ||
) |
Registers the callback function to listen the remove requests from applications.
[in] | remove_cb | The callback function pointer that is invoked when remove_from_home is requested |
[in] | data | The callback data to deliver to the callback function |
SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_INVALID_PARAMETER | Invalid function parameter |
SHORTCUT_ERROR_OUT_OF_MEMORY | Out of memory |
SHORTCUT_ERROR_IO_ERROR | I/O Error |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
SHORTCUT_ERROR_COMM | Connection not established or communication problem |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
int shortcut_set_request_cb | ( | shortcut_request_cb | request_cb, |
void * | data | ||
) |
Registers a callback function to listen requests from applications.
[in] | request_cb | The callback function pointer that is invoked when add_to_home is requested |
[in] | data | The callback data to deliver to the callback function |
0
on success, otherwise a negative error value SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_INVALID_PARAMETER | Invalid function parameter |
SHORTCUT_ERROR_OUT_OF_MEMORY | Out of memory |
SHORTCUT_ERROR_IO_ERROR | I/O Error |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
SHORTCUT_ERROR_COMM | Connection not established or communication problem |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
void shortcut_unset_remove_cb | ( | void | ) |
Unregisters a callback for the shortcut remove.
SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |
void shortcut_unset_request_cb | ( | void | ) |
Unregisters a callback for the shortcut request.
SHORTCUT_ERROR_NONE | Successful |
SHORTCUT_ERROR_NOT_SUPPORTED | Not supported |
SHORTCUT_ERROR_PERMISSION_DENIED | Permission denied |