Tizen Native API  9.0
Tizen WS Shell Quickpanel

Request to handle the quickpanel service.

Required Header

#include <tzsh_quickpanel.h>

Overview

The Tizen WS Shell(TZSH) Quickpanel API provides functions to handle the quickpanel service.

The TZSH Quickpanel is a library for quick panel user applications that provides methods to obtain and modify the status of the Quickpanel service application.
The TZSH Quickpanel library offers ways to create and delete tzsh_quickpanel handles. The user application can utilize this handle to retrieve various states of the quickpanel service and modify specific status.
For instance, if you want your application to pause video playback while the quickpanel is displayed, you may check the visible state of the quickpanel service using this library and perform the desired action accordingly.

Functions

tzsh_quickpanel_h tzsh_quickpanel_create (tzsh_h tzsh, tzsh_window win) TIZEN_DEPRECATED_API
 Creates a tzsh_quickpanel_h object which handles the quickpanel service.
tzsh_quickpanel_h tzsh_quickpanel_create_with_type (tzsh_h tzsh, tzsh_window win, tzsh_quickpanel_type_e type)
 Creates a tzsh_quickpanel_h object for a specific tzsh_quickpanel_type_e which handles the quickpanel service.
int tzsh_quickpanel_destroy (tzsh_quickpanel_h quickpanel)
 Destroys the given tzsh_quickpanel_h object.
int tzsh_quickpanel_type_get (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_type_e *type)
 Gets the type of the quickpanel.
int tzsh_quickpanel_show (tzsh_quickpanel_h quickpanel)
 Shows the quickpanel service window if it is currently scrollable.
int tzsh_quickpanel_hide (tzsh_quickpanel_h quickpanel)
 Hides the quickpanel service window.
int tzsh_quickpanel_visible_get (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_state_visible_e *visible)
 Gets the visible state of the quickpanel.
int tzsh_quickpanel_scrollable_set (tzsh_quickpanel_h quickpanel, bool scrollable) TIZEN_DEPRECATED_API
 Sets the scrollable state of a quickpanel service window.
int tzsh_quickpanel_scrollable_get (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_state_scrollable_e *scrollable) TIZEN_DEPRECATED_API
 Checks if the quickpanel service window is scrollable.
int tzsh_quickpanel_scrollable_state_set (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_state_scrollable_e state)
 Sets the window's scrollable state of the quickpanel service window.
int tzsh_quickpanel_scrollable_state_get (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_state_scrollable_e *state)
 Gets the window's scrollable state of the quickpanel service window.
int tzsh_quickpanel_orientation_get (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_state_orientation_e *orientation)
 Gets the orientation of the quickpanel.
tzsh_quickpanel_event_handler_h tzsh_quickpanel_event_handler_add (tzsh_quickpanel_h quickpanel, int type, tzsh_quickpanel_event_cb func, void *user_data)
 Adds an event handler.
int tzsh_quickpanel_event_handler_del (tzsh_quickpanel_h quickpanel, tzsh_quickpanel_event_handler_h event_handler)
 Removes the registered event handler.
int tzsh_quickpanel_event_visible_get (tzsh_quickpanel_event_info_h event_info, tzsh_quickpanel_state_visible_e *visible)
 Gets the visible state from given event info.
int tzsh_quickpanel_event_orientation_get (tzsh_quickpanel_event_info_h event_info, tzsh_quickpanel_state_orientation_e *orientation)
 Gets the orientation state from given event info.

Typedefs

typedef struct _tzsh_quickpanel_s * tzsh_quickpanel_h
 Handle for the Tizen quickpanel client.
typedef struct
_tzsh_event_handler_s * 
tzsh_quickpanel_event_handler_h
 Handle for the event handler of the quickpanel.
typedef struct
_tzsh_quickpanel_event_info_s * 
tzsh_quickpanel_event_info_h
 Handle for the event information of the quickpanel.
typedef void(* tzsh_quickpanel_event_cb )(int type, tzsh_quickpanel_event_info_h event_info, void *user_data)
 Called when a quickpanel event occurs.

Typedef Documentation

typedef void(* tzsh_quickpanel_event_cb)(int type, tzsh_quickpanel_event_info_h event_info, void *user_data)

Called when a quickpanel event occurs.

This is the interface of the callback function that is called when the state of the quickpanel service window changes. When the value of the event type set during tzsh_quickpanel_event_handler_add is changed, the registered function as an event callback is invoked, allowing you to retrieve each event type and its corresponding change values within the callback function for necessary actions.

Since :
3.0
Remarks:
The event_info handle is only valid until the callbacks exits. After the callback exits, the event_info handle is not valid and should not be used. The event_info should not be released.
Parameters:
[in]typeThe event type (TZSH_QUICKPANEL_EVENT_VISIBLE, TZSH_QUICKPANEL_EVENT_ORIENTATION)
[in]event_infoThe tzsh_quickpanel_event_info_h handle
[in]user_dataThe user data
Example
  #include <tzsh_quickpanel.h>

  tzsh_quickpanel_h qp = NULL;
  tzsh_quickpanel_event_handler_h handler[2] = {NULL, NULL};

  static void _cb_vis_changed (int type, tzsh_quickpanel_event_info_h ev_info, void *data)
  {
      tzsh_quickpanel_state_visible_e state;

      if (type != TZSH_QUICKPANEL_EVENT_VISIBLE)
      {
          return;
      }

      tzsh_quickpanel_event_visible_get(ev_info, &state);
      if (state == TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN)
      {
          // quick panel is shown
      }
      else if (state == TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN)
      {
          // quick panel is hidden
      }
      else
      {
          // quick panel's state is unknown
      }
  }

  static void _cb_orientation_changed(int type, tzsh_quickpanel_event_info_h ev_info, void *data)
  {
      tzsh_quickpanel_state_orientation_e state;

      if (type != TZSH_QUICKPANEL_EVENT_ORIENTATION)
      {
          return;
      }

      tzsh_quickpanel_event_orientation_get(ev_info, &state);
      switch (state)
      {
          case TZSH_QUICKPANEL_STATE_ORIENTATION_0:
              // quickpanel is 0 degree
              break;

          case TZSH_QUICKPANEL_STATE_ORIENTATION_90:
              // quickpanel is 90 degree
              break;

          case TZSH_QUICKPANEL_STATE_ORIENTATION_180:
              // quickpanel is 180 degree
              break;

          case TZSH_QUICKPANEL_STATE_ORIENTATION_270:
              // quickpanel is 270 degree
              break;

          default:
              // quickpanel's degree is unknown
              break;
      }
  }

  void create_window(void)
  {
      ...

      qp = tzsh_quickpanel_create_with_type(tzsh, tz_win,
                                            TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
      ...

     handler[0] = tzsh_quickpanel_event_handler_add(qp, TZSH_QUICKPANEL_EVENT_VISIBLE, _cb_vis_changed, NULL);
     handler[1] = tzsh_quickpanel_event_handler_add(qp, TZSH_QUICKPANEL_EVENT_ORIENTATION, _cb_orientation_changed, NULL);
     ...
  }
typedef struct _tzsh_event_handler_s* tzsh_quickpanel_event_handler_h

Handle for the event handler of the quickpanel.

This is the handler for tzsh_quickpanel_event. It is created and returned from tzsh_quickpanel_event_handler_add and used to manage the lifecycle of the event handler.

Since :
3.0
typedef struct _tzsh_quickpanel_event_info_s* tzsh_quickpanel_event_info_h

Handle for the event information of the quickpanel.

This is the handler used to obtain information about events on tzsh_quickpanel_event_cb.

Since :
3.0
See also:
tzsh_quickpanel_event_visible_get()
tzsh_quickpanel_event_orientation_get()
typedef struct _tzsh_quickpanel_s* tzsh_quickpanel_h

Handle for the Tizen quickpanel client.

Since :
3.0

Enumeration Type Documentation

Enumeration for orientation state of quickpanel.

Since :
3.0
Enumerator:
TZSH_QUICKPANEL_STATE_ORIENTATION_UNKNOWN 

Unknown state. There is no quickpanel service.

TZSH_QUICKPANEL_STATE_ORIENTATION_0 

0

TZSH_QUICKPANEL_STATE_ORIENTATION_90 

90

TZSH_QUICKPANEL_STATE_ORIENTATION_180 

180

TZSH_QUICKPANEL_STATE_ORIENTATION_270 

270

Enumeration for scrollable state of quickpanel.

Since :
3.0
Enumerator:
TZSH_QUICKPANEL_STATE_SCROLLABLE_UNKNOWN 

Unknown state. There is no quickpanel service.

TZSH_QUICKPANEL_STATE_SCROLLABLE_SET 

Scrollable state.

TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET 

Not scrollable state.

TZSH_QUICKPANEL_STATE_SCROLLABLE_RETAIN 

Retain scrollable state. (Since: 5.5)

Enumeration for visible state of quickpanel.

Since :
3.0
Enumerator:
TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN 

Unknown state. There is no quickpanel service.

TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN 

Shown state.

TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN 

Hidden state.

Enumeration for type of quickpanel.

Since :
5.5
Enumerator:
TZSH_QUICKPANEL_TYPE_UNKNOWN 

Unknown type. There is no quickpanel service.

TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT 

System default type.

TZSH_QUICKPANEL_TYPE_CONTEXT_MENU 

Context menu type.

TZSH_QUICKPANEL_TYPE_APPS_MENU 

Apps menu type. (Since 6.0)


Function Documentation

Creates a tzsh_quickpanel_h object which handles the quickpanel service.

Deprecated:
Deprecated since 5.5. Use the return value of tzsh_quickpanel_create_with_type() instead.

This is the creator of the tzsh_quickpanel handler for the quickpanel clients. It creates and returns a handler of the tzsh_quickpanel using the given tzsh handler and the native window to utilize tzsh_quickpanel. By default, it generates with TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT. To acquire the handler of a specified quickpanel type, should be used tzsh_quickpanel_create_with_type.

Since :
3.0
Remarks:
The returned handle should be released using tzsh_quickpanel_destroy(). The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. Since 5.5, this function creates tzsh_quickpanel_h object only with system default type.
Parameters:
[in]tzshThe tzsh_h instance
[in]winThe native window
Returns:
tzsh_quickpanel_h object on success, NULL otherwise
Exceptions:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
Precondition:
You have to create a tzsh_h instance using tzsh_create() before calling this function. You can get the tzsh_window instance using the toolkit API such as elm_win_window_id_get().
See also:
tzsh_create()
tzsh_quickpanel_create_with_type()
tzsh_quickpanel_destroy()
Example
  #include <tzsh_quickpanel.h>

  tzsh_h tzsh = NULL;
  tzsh_quickpanel_h qp = NULL;
  Evas_Object *win;

  void init_tzsh(void)
  {
      tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
      ...
  }

  void create_window(void)
  {
      tzsh_window tz_win;

      win = elm_win_add(NULL, "sample", ELM_WIN_BASIC);
      ...

      tz_win = elm_win_window_id_get(win);
      ...

      qp = tzsh_quickpanel_create(tzsh, tz_win);
      ...
  }

Creates a tzsh_quickpanel_h object for a specific tzsh_quickpanel_type_e which handles the quickpanel service.

This is the creator of the tzsh_quickpanel handler for clients requiring a specific type of quick panel. Using the given tzsh handler, the native window to utilize tzsh_quickpanel, and the type of target quickpanel as arguments, it creates and returns a specific tzsh_quickpanel handler corresponding to the given type.

Since :
5.5
Remarks:
The returned handle should be released using tzsh_quickpanel_destroy(). The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
Parameters:
[in]tzshThe tzsh_h instance
[in]winThe native window
[in]typeThe type of tzsh_quickpanel_h object
Returns:
tzsh_quickpanel_h object on success, NULL otherwise
Exceptions:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
Precondition:
You have to create a tzsh_h instance using tzsh_create() before calling this function. You can get the tzsh_window instance using the toolkit API such as elm_win_window_id_get().
See also:
tzsh_create()
tzsh_quickpanel_destroy()
Example
  #include <tzsh_quickpanel.h>

  tzsh_h tzsh = NULL;
  tzsh_quickpanel_h qp = NULL;
  Evas_Object *win;

  void init_tzsh(void)
  {
      tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
      ...
  }

  void create_window(void)
  {
      tzsh_window tz_win;

      win = elm_win_add(NULL, "sample", ELM_WIN_BASIC);
      ...

      tz_win = elm_win_window_id_get(win);
      ...

      qp = tzsh_quickpanel_create_with_type(tzsh, tz_win,
                                            TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
      ...
  }

Destroys the given tzsh_quickpanel_h object.

Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object to be destroyed
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
See also:
tzsh_quickpanel_create_with_type()
Example
  #include <tzsh_quickpanel.h>

  tzsh_h tzsh = NULL;
  tzsh_quickpanel_h qp = NULL;
  Evas_Object *win;

  void create_window(void)
  {
      tzsh_window tz_win;

      win = elm_win_add(NULL, "sample", ELM_WIN_BASIC);
      ...

      tz_win = (tzsh_window)elm_win_window_id_get(win);
      ...

      qp = tzsh_quickpanel_create_with_type(tzsh, tz_win,
                                            TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
      ...
  }

  void destroy_window(void)
  {
      ...
      tzsh_quickpanel_destroy(qp);
      qp = NULL;
      ...
  }

Adds an event handler.

Register an event handler function for the given event type. The registered event handler function is called when the argument value changed of the given event type.

Since :
3.0
Remarks:
The returned tzsh_quickpanel_event_handler_h object should be released using tzsh_quickpanel_event_handler_del(). The type parameter is the integer of the event type that will trigger this callback to be called. The callback func is called when this event is processed and will be passed the event type, a pointer to the private event structure that is specific to that event type, and a data pointer that is provided in this call as the user_data parameter.
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[in]typeThe event type (TZSH_QUICKPANEL_EVENT_VISIBLE, TZSH_QUICKPANEL_EVENT_ORIENTATION)
[in]funcThe callback function to be called
[in]user_dataThe data passed to the callback function
Returns:
tzsh_quickpanel_event_handler_h instance on success, NULL otherwise
Precondition:
tzsh_quickpanel_create_with_type() should be called, to generate event type IDs
See also:
TZSH_QUICKPANEL_EVENT_VISIBLE
TZSH_QUICKPANEL_EVENT_ORIENTATION
tzsh_quickpanel_event_cb()
tzsh_quickpanel_event_handler_del()

Removes the registered event handler.

Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[in]event_handlerThe tzsh_quickpanel_event_handler_h object
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
See also:
tzsh_quickpanel_event_handler_add()

Gets the orientation state from given event info.

Since :
3.0
Remarks:
This will be used in the event handler for the TZSH_QUICKPANEL_EVENT_ORIENTATION event.
Parameters:
[in]event_infoThe tzsh_quickpanel_event_info_h object
[out]orientationThe orientation state of quickpanel
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
See also:
TZSH_QUICKPANEL_EVENT_ORIENTATION

Gets the visible state from given event info.

Since :
3.0
Remarks:
This will be used in the event handler for the TZSH_QUICKPANEL_EVENT_VISIBLE event.
Parameters:
[in]event_infoThe tzsh_quickpanel_event_info_h object
[out]visibleThe visible state of quickpanel
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
See also:
TZSH_QUICKPANEL_EVENT_VISIBLE

Hides the quickpanel service window.

Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Gets the orientation of the quickpanel.

Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[out]orientationThe orientation of the quickpanel service window
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Checks if the quickpanel service window is scrollable.

Deprecated:
Deprecated since 5.5. Use the return value of tzsh_quickpanel_scrollable_state_get() instead.
Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[out]scrollableThe scrollable state of the quickpanel service window
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist
See also:
tzsh_quickpanel_scrollable_state_get()
int tzsh_quickpanel_scrollable_set ( tzsh_quickpanel_h  quickpanel,
bool  scrollable 
)

Sets the scrollable state of a quickpanel service window.

Deprecated:
Deprecated since 5.5. Use the return value of tzsh_quickpanel_scrollable_state_set() instead.

This function is useful when the application does not need to show the quickpanel service window. If the application set the scrollable to false, the quickpanel service window does not show on the display as long as the application window is shown. Default scrollable state of the window is true.

Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[in]scrollableThe scrollable state
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist
See also:
tzsh_quickpanel_scrollable_state_set()

Gets the window's scrollable state of the quickpanel service window.

Retrieves the scrollable state of the Quickpanel Service window corresponding to the given tzsh_quickpanel handler. The scrollable_state determines whether the Quickpanel Service window is scrollable or not. And the scrollable_state value can be affect the visibility of the Quickpanel Service window.

Since :
5.5
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[out]stateThe scrollable state of the quickpanel service window
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Sets the window's scrollable state of the quickpanel service window.

This function is useful when the window does not need to show the quickpanel service window. Each window has it's own scrollable state of the quickpanel window. If the window set the state to TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET, the quickpanel service window is not shown on the display as long as the window is shown. Default scrollable state of the window is TZSH_QUICKPANEL_STATE_SCROLLABLE_SET. If the window set the state to TZSH_QUICKPANEL_STATE_SCROLLABLE_RETAIN, it follows the scrollable state of the previously shown window. For instance, if the state of the previously shown window was TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET, then the quickpanel service window is not shown on the display. If the state of the previously shown window was TZSH_QUICKPANEL_STATE_SCROLLABLE_SET, then the quickpanel service window can be shown on the display.

Since :
5.5
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[in]stateThe scrollable state
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Shows the quickpanel service window if it is currently scrollable.

Since :
3.0
Remarks:
If the quickpanel is not scrollable, nothing will happen.
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Gets the type of the quickpanel.

Retrieves the type of the Quickpanel Service window corresponding to the given handler of tzsh_quickpanel.

Since :
5.5
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[out]typeThe type of the tzsh_quickpanel_h object
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Gets the visible state of the quickpanel.

Retrieves the visible state of the Quickpanel Service window corresponding to the given handler of tzsh_quickpanel. This visible state indicates whether or not the Quickpanel Service window is displayed at the time of invocation.

Since :
3.0
Parameters:
[in]quickpanelThe tzsh_quickpanel_h object
[out]visibleThe visible state of the quickpanel service window
Returns:
0 on success, otherwise a negative error value
Return values:
TZSH_ERROR_NONESuccessful
TZSH_ERROR_INVALID_PARAMETERInvalid parameter
TZSH_ERROR_NO_SERVICEService does not exist

Variable Documentation

Tizen event type for the quickpanel orientation.

Since :
3.0
Remarks:
This event occurs when the orientation of the quickpanel service window is changed. The value identifying this event type is generated and written to the TZSH_QUICKPANEL_EVENT_ORIENTATION global variable upon tzsh_quickpanel_create_with_type() call. Then this variable can be used to identify a type when setting a callback and checking event type in a callback.

Tizen event type for the quickpanel visible state.

Since :
3.0
Remarks:
This event occurs when the visible state of the quickpanel service window is changed. The value identifying this event type is generated and written to the TZSH_QUICKPANEL_EVENT_VISIBLE global variable upon tzsh_quickpanel_create_with_type() call. Then this variable can be used to identify a type when setting a callback and checking event type in a callback.