* @section CAPI_PANEL_ATTACH_MODULE_FEATURE Related Features
* This API is related with the following features: \n
* - %http://tizen.org/feature/camera \n
- * - %http://tizen.org/feature/microphone
+ * - %http://tizen.org/feature/microphone \n
+ * - %http://tizen.org/feature/attach_panel\n
* It is recommended to design feature related codes in your application for reliability. \n
* You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n
* To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n
ATTACH_PANEL_ERROR_NOT_INITIALIZED = TIZEN_ERROR_PANEL | 0x02, /**< The panel is not initialized yet */
ATTACH_PANEL_ERROR_UNSUPPORTED_CONTENT_CATEGORY = TIZEN_ERROR_PANEL | 0x03, /**< Not supported content category */
ATTACH_PANEL_ERROR_ALREADY_DESTROYED = TIZEN_ERROR_PANEL | 0x05, /**< The panel is already removed */
+ ATTACH_PANEL_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported (Since 5.0) */
+
} attach_panel_error_e;
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #ATTACH_PANEL_ERROR_ALREADY_EXISTS Already exists
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @see attach_panel_destroy()
* @see attach_panel_add_content_category()
* @see attach_panel_remove_content_category()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @see attach_panel_create()
* @see attach_panel_add_content_category()
* @see attach_panel_remove_content_category()
* @retval #ATTACH_PANEL_ERROR_NOT_INITIALIZED not initialized
* @retval #ATTACH_PANEL_ERROR_UNSUPPORTED_CONTENT_CATEGORY not supported content category
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_NOT_INITIALIZED not initialized
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
* @retval #ATTACH_PANEL_ERROR_OUT_OF_MEMORY Fail to set the extra data
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @post The result_cb set with attach_panel_set_result_cb() will be called after an user select something to attach.
* @see attach_panel_create()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
*
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
*
* @pre Call attach_panel_create() before calling this function.
* @post The event_cb set with attach_panel_set_event_cb() will be called after publishing reserved events.
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED The panel has been already destroyed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_show()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED The panel has been already destroyed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_hide()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_create()
* @see attach_panel_destroy()
* @retval #ATTACH_PANEL_ERROR_NONE Successful
* @retval #ATTACH_PANEL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #ATTACH_PANEL_ERROR_ALREADY_DESTROYED already removed
+ * @retval #ATTACH_PANEL_ERROR_NOT_SUPPORTED Not supported
*
* @pre Call attach_panel_create() before calling this function.
* @see attach_panel_state_e
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ATTACH_PANEL_PRIVATE_H__
+#define __ATTACH_PANEL_PRIVATE_H__
+
+#include <system_info.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define ATTACH_PANEL_FEATURE "http://tizen.org/feature/attach_panel"
+#define CHECK_ATTACH_PANEL_FEATURE() \
+ do { \
+ bool is_supported = false; \
+ if (!system_info_get_platform_bool(ATTACH_PANEL_FEATURE, &is_supported)) { \
+ if (is_supported == false) { \
+ _E("[%s] feature is disabled", ATTACH_PANEL_FEATURE); \
+ return ATTACH_PANEL_ERROR_NOT_SUPPORTED; \
+ } \
+ } \
+ } while (0)
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __ATTACH_PANEL_PRIVATE_H__ */
int width = 0;
int height = 0;
int base_height = 0;
-
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!conformant, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_destroy(attach_panel_h attach_panel)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
_D("%s : attach panel will be destroyed", __func__);
int ret = SYSTEM_INFO_ERROR_NONE;
bool value = false;
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_NOT_INITIALIZED);
retv_if(content_category < ATTACH_PANEL_CONTENT_CATEGORY_IMAGE, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
content_s *content_info = NULL;
Eina_List *l = NULL;
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_NOT_INITIALIZED);
retv_if(content_category < ATTACH_PANEL_CONTENT_CATEGORY_IMAGE, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
int ret = ATTACH_PANEL_ERROR_NONE;
int bundle_is_op = 0;
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_NOT_INITIALIZED);
retv_if(content_category < ATTACH_PANEL_CONTENT_CATEGORY_IMAGE, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_set_result_cb(attach_panel_h attach_panel, attach_panel_result_cb result_cb, void *user_data)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!result_cb, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_unset_result_cb(attach_panel_h attach_panel)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
if (EINA_TRUE == attach_panel->is_delete) {
EXPORT_API int attach_panel_set_event_cb(attach_panel_h attach_panel, attach_panel_event_cb event_cb, void *user_data)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!event_cb, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_unset_event_cb(attach_panel_h attach_panel)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
if (EINA_TRUE == attach_panel->is_delete) {
content_s *content_info = NULL;
int height = 0;
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
content_s *content_info = NULL;
int height = 0;
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_hide(attach_panel_h attach_panel)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_hide_without_animation(attach_panel_h attach_panel)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!attach_panel->ui_manager, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_get_visibility(attach_panel_h attach_panel, bool *visible)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!visible, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
EXPORT_API int attach_panel_get_state(attach_panel_h attach_panel, attach_panel_state_e *state)
{
+ CHECK_ATTACH_PANEL_FEATURE();
retv_if(!attach_panel, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
retv_if(!state, ATTACH_PANEL_ERROR_INVALID_PARAMETER);
attach_panel->result_cb(attach_panel
, content_info->innate_content_info->content_category
, attach_panel->reply
- , attach_panel->result
+ , attach_panel->result
, attach_panel->result_data);
app_control_destroy(attach_panel->reply);
attach_panel->reply = NULL;