Separate header with internal and public
authorSung-jae Park <nicesj.park@samsung.com>
Wed, 19 Nov 2014 04:13:48 +0000 (13:13 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Wed, 19 Nov 2014 04:26:34 +0000 (13:26 +0900)
[model] Redwood,Kiran,B3(Wearable)
[binary_type] AP
[customer] Docomo/Orange/ATT/Open
[issue#] N/A
[problem]
[cause]
[solution]
[team] HomeTF
[request]
[horizontal_expansion]

Change-Id: Ic559119bd1303d48f26967de03d2d1932bb056ea

CMakeLists.txt
include/dynamicbox.h
include/internal/dynamicbox.h [new file with mode: 0644]
packaging/libdynamicbox.spec
src/dynamicbox.c
src/snapshot_window.c
src/virtual_window.c

index 46ef806..882af1f 100644 (file)
@@ -81,6 +81,7 @@ SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
        
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/dynamicbox.h DESTINATION include/${PROJECT_NAME})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/internal/dynamicbox.h DESTINATION include/${PROJECT_NAME}/internal)
 
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME "lib${PROJECT_NAME}")
        
index a7a78d1..660d4a2 100644 (file)
  * limitations under the License.
  */
 
-/**
- * Export by dynamicbox_service
- */
-#include <dynamicbox_buffer.h>
-#include <dynamicbox_script.h>
-
 #ifndef __DYNAMICBOX_UILITY_H
 #define __DYNAMICBOX_UILITY_H
 
@@ -39,272 +33,13 @@ extern "C" {
  */
 
 /**
- * @internal
- * @brief Definition for COLOR BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_COLOR "color"
-
-/**
- * @internal
- * @brief Definition for TEXT BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_TEXT "text"
-
-/**
- * @internal
- * @brief Definition for IMAGE BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_IMAGE "image"
-
-/**
- * @internal
- * @brief Definition for SIGNAL BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_SIGNAL "signal"
-
-/**
- * @internal
- * @brief Definition for INFO BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_INFO "info"
-
-/**
- * @internal
- * @brief Definition for DRAG BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_DRAG "drag"
-
-/**
- * @internal
- * @brief Definition for SCRIPT SCRIPT.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_SCRIPT "script"
-
-/**
- * @internal
- * @brief Definition for ACCESSIBILITY INFORMATION BLOCK.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_ACCESS "access"
-
-/**
- * @internal
- * @brief Definition for accessibility operation.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_TYPE_ACCESS_OPERATION "access,operation"
-
-/**
- * @internal
- * @brief Definition for set highlight on specified part.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_SET "set,hl"
-
-/**
- * @internal
- * @brief Definition for remove highlight from specified part.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_UNSET "unset,hl"
-
-/**
- * @internal
- * @brief Definition for move the highlight to next part.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_NEXT "next,hl"
-
-/**
- * @internal
- * @brief Definition for move the highlight to previous part.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_PREV "prev,hl"
-
-/**
- * @internal
- * @brief Definition for reset the chain of accessibility highlight list.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_DATA_ACCESS_OPERATION_RESET "reset,focus"
-
-/**
- * @internal
- * @brief Definition for specify the highlight move option.
- * @details If the highlight list reaches to the last object, move back to the first object.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_OPTION_ACCESS_HL_LOOP "cycle"
-
-/**
- * @internal
- * @brief Definition for specify the highlight move option.
- * @details If the highlight list reaches to the last object(or the first object),
- * the "prev,hl", "next,hl" will be failed.
- * @since_tizen 2.3
- */
-#define DBOX_DESC_OPTION_ACCESS_HL_NOLOOP "no,cycle"
-
-/**
- * @internal
- * @brief Dynamic Box description data handle.
- * @since_tizen 2.3
- */
-typedef struct dynamicbox_desc *dynamicbox_desc_h;
-
-/**
- * @internal
- * @brief Flush Callback for snapshot window
- * @since_tizen 2.3
- */
-typedef void (*dynamicbox_flush_cb)(void *snapshot_window, const char *id, int status, void *data);
-
-/**
- * @internal
- * @brief Updates a description file.
- * @since_tizen 2.3
- * @remarks Must be used only by Inhouse Dynamic Box.
- * @param[in] id Dynamic Box Instance Id
- * @param[in] gbar 1 for Glance Bar or 0
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return Handle of desc instance
- * @retval @c NULL Failed to create a desc instance, dynamicbox_last_status() will returns reason of failure
- * @pre Should be loaded by data-provider-slave.
- * @post Should be destroyed(flushed) using dynamicbox_desc_close() API.
- * @see dynamicbox_desc_close()
- */
-extern dynamicbox_desc_h dynamicbox_desc_open(const char *id, int gbar);
-
-/**
- * @internal
- * @brief Completes the description file update.
- * @details Only if this API is called, the description data will be applied to the content of Dynamic Box (or GBar).
- * @since_tizen 2.3
- * @remarks Must be used only by Inhouse Dynamic Box.
- * @param[in] handle Handle which is created by dynamicbox_desc_open() function
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_NONE If the flushing description data is successfully done
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER If the given handle is not valid
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @pre Handle must be created by dynamicbox_desc_open()
- * @post Handle must not be used after return from this function.
- * @see dynamicbox_desc_open()
- */
-extern int dynamicbox_desc_close(dynamicbox_desc_h handle);
-
-/**
- * @internal
- * @brief Sets the category information of current description data.
- * @details Creates a new description block for updating category information of layout object.
- * @since_tizen 2.3
- * @param[in] handle Handle which is created by dynamicbox_desc_open() function
- * @param[in] id Id string of target object
- * @param[in] category Category string that will be used by layout object
- * @return int type
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle
- * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Memory is not enough to add this block
- * @retval index Index(>=0) of added block, which can be used by dynamicbox_desc_set_id()
- * @pre Must be called after create a handle using dynamicbox_desc_open()
- * @see dynamicbox_desc_set_id()
- */
-extern int dynamicbox_desc_set_category(dynamicbox_desc_h handle, const char *id, const char *category);
-
-/**
- * @internal
- * @brief Sets the content size.
- * @details Sets the content size of layout.
- * @since_tizen 2.3
- * @param[in] handle Handle which is created by dynamicbox_desc_open() function
- * @param[in] id Id string of target object
- * @param[in] w Width in pixel
- * @param[in] h Height in pixel
- * @return int type
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory to add a new block
- * @retval index Index(>=0) of added block Successfully added
- * @see dynamicbox_desc_open()
- * @see dynamicbox_desc_set_id()
- */
-extern int dynamicbox_desc_set_size(dynamicbox_desc_h handle, const char *id, int w, int h);
-
-/**
- * @internal
- * @brief Sets the target id of the given block.
- * @details Only available for the script block.
- * @since_tizen 2.3
- * @param[in] handle Handle which is created by dynamicbox_desc_open() function
- * @param[in] idx Index of target block
- * @param[in] id Id String which will be used by other dynamicbox_desc_XXX functions
- * @return int type
- * @retval #DBOX_STATUS_ERROR_NONE Id is successfully updated for given idx of desc block
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @retval #DBOX_STATUS_ERROR_NOT_EXIST Given index of desc block is not exists
- * @pre Desc block should be exists which has given index "idx".
- * @post Specified Id string("id") can be used by other dynamicbox_desc_XXXX functions.
- * @see dynamicbox_desc_open()
- * @see dynamicbox_desc_set_id()
- */
-extern int dynamicbox_desc_set_id(dynamicbox_desc_h handle, int idx, const char *id);
-
-/**
- * @internal
- * @brief Adds a new block.
- * @since_tizen 2.3
- * @param[in] handle Handle which is created by the dynamicbox_desc_open() function
- * @param[in] id ID of source script object
- * @param[in] type Type (image|text|script|signal|.. etc)
- * @param[in] part Target part to update with given content(data)
- * @param[in] data Content for specified part
- * @param[in] option Option for the block. (script: group, image: option, ...)
- * @return Index of current description block
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory to add a new desc block
- * @retval index Index(>=0) of added desc block
- * @pre Handle must be created using dynamicbox_desc_open.
- * @see dynamicbox_desc_set_id()
- * @see dynamicbox_desc_del_block()
- */
-extern int dynamicbox_desc_add_block(dynamicbox_desc_h handle, const char *id, const char *type, const char *part, const char *data, const char *option);
-
-/**
- * @internal
- * @brief Deletes an added block.
- * @since_tizen 2.3
- * @details If you discard the added desc block, use this API and the index of the created desc block.
- * @param[in] handle Handle which is created by dynamicbox_desc_open() function
- * @param[in] idx Index of added block, returned from dynamicbox_desc_add_block(), dynamicbox_desc_set_size(), dynamicbox_desc_set_category(), etc
- * @return int type
- * @retval #DBOX_STATUS_ERROR_NONE Successfully deleted
- * @retval #DBOX_STATUS_ERROR_NOT_EXIST Given index of desc block is not exists
- * @pre Index must be exists.
- * @see dynamicbox_desc_add_block()
- * @see dynamicbox_desc_open()
- */
-extern int dynamicbox_desc_del_block(dynamicbox_desc_h handle, int idx);
-
-/**
  * @brief Creates an Object to create an elm_win object.
  * @details Creating a new Object using Dynamic Box frame buffer.
  * @since_tizen 2.3
  * @param[in] id Instance Id
  * @param[in] gbar 1 if this object is created for Glance Bar or 0 (for Dynamic Box)
  * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  * @return void* Object type
@@ -337,290 +72,117 @@ extern void *dynamicbox_get_evas_object(const char *id, int gbar);
  */
 extern int dynamicbox_set_extra_info(const char *id, const char *content, const char *title, const char *icon, const char *name);
 
-
-/**
- * @internal
- * @brief Structure for a Dynamic Box buffer defined by a provider.
- * @since_tizen 2.3
- */
-typedef struct dynamicbox_buffer *dynamicbox_buffer_h;
-
 /**
  * @brief Return values of dynamicbox programming interfaces: Operation is successfully done.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_DONE;
 
 /**
  * @brief Return values of dynamicbox programming interfaces: Contents are updated.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_OUTPUT_UPDATED;
 
 /**
  * @brief Return values of dynamicbox programming interfaces: Need to call the dynamicbox_need_to_update and dynamicbox_update_content.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_NEED_TO_SCHEDULE;
 
 /**
  * @brief Return values of dynamicbox programming interfaces: Need to do force update.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_FORCE_TO_SCHEDULE;
 
 /**
- * @internal
- * @brief Return values of dynamicbox programming interfaces: Need to create a new instance.
- * @since_tizen 2.3
- */
-extern const int DBOX_NEED_TO_CREATE;
-
-/**
  * @brief Return values of dynamicbox programming interfaces: Need to destroy this instance.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_NEED_TO_DESTROY;
 
 /**
  * @brief Return values of dynamicbox programming interfaces: Need to update.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_NEED_TO_UPDATE;
 
 /**
- * @internal
- * @brief Return values of dynamicbox programming interfaces: Using network.
- * @since_tizen 2.3
- */
-extern const int DBOX_USE_NET;
-
-/**
  * @brief System event type: System font is changed.
  * @since_tizen 2.3
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  */
 extern const int DBOX_SYS_EVENT_FONT_CHANGED;
 
 /**
  * @brief System event type: System language is changed.
  * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_LANG_CHANGED;
-
-/**
- * @brief System event type: System time is changed.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_TIME_CHANGED;
-
-/**
- * @brief System event type: Region changed.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_REGION_CHANGED;
-
-/**
- * @brief System event type: Accessibility mode changed.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_TTS_CHANGED;
-
-/**
- * @brief System event type: Dynamic Box is paused.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_PAUSED;
-
-/**
- * @brief System event type: Dynamic Box is resumed.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_RESUMED;
-
-/**
- * @internal
- * @brief System event type: MMC Status change event.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_MMC_STATUS_CHANGED;
-
-/**
- * @brief System event type: Dynamic Box instance is removed from a viewer.
- * @since_tizen 2.3
- */
-extern const int DBOX_SYS_EVENT_DELETED;
-
-/**
- * @internal
- * @brief Notifies the updated content to the provider.
- * @details Forcedly notifies the updated contents.
- *    This function can be used from async callback function to notify the updated content.
- * @since_tizen 2.3
- * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
- * @param[in] gbar 1 for updating content of Glance Bar or 0(for content of Dynamic Box)
- * @return int type
- * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @retval #DBOX_STATUS_ERROR_IO_ERROR I/O failed, Cannot access given resource file(id)
- * @retval #DBOX_STATUS_ERROR_NONE Successfully notified
- * @pre This API only can be used after loaded into the data-provider-slave process.
- */
-extern int dynamicbox_content_is_updated(const char *id, int gbar);
-
-/**
- * @internal
- * @brief Acquires a buffer for GBar or DBox, currently only the GBar is supported.
- * @since_tizen 2.3
- * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
- * @param[in] gbar 1 for Glance Bar or 0 for Dynamic Box
- * @param[in] width Width in pixel
- * @param[in] height Height in pixel
- * @param[in] pixels Size of a pixel in bytes
- * @param[in] handler Event handling callback
- * @param[in] data User data for event handling callback
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return Buffer handle
- * @retval @c NULL Failed to acquire buffer, dynamicbox_last_status() will returns reason of failure.
- * @retval handler Handle object
- * @pre Given instance must be specify its type as buffer. or this API will be fail.
- * @post Allocated buffer object must be released via dynamicbox_release_buffer().
- * @see dynamicbox_release_buffer()
  */
-extern dynamicbox_buffer_h dynamicbox_create_buffer(const char *id, int gbar, int auto_align, int (*handler)(dynamicbox_buffer_h, dynamicbox_buffer_event_data_t, void *), void *data);
+extern const int DBOX_SYS_EVENT_LANG_CHANGED;
 
 /**
- * @internal
- * @brief Acquire a buffer for GBar or DBox.
+ * @brief System event type: System time is changed.
  * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @param[in] idx Index of a buffer, DBOX_PRIMARY_BUFFER is used for accessing primary buffer
- * @param[in] width Width of a buffer
- * @param[in] height Height of a buffer
- * @param[in] pixels Pixel size in byte
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int status
- * @retval #DBOX_STATUS_ERROR_NONE Successfully allocated
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #DBOX_STATUS_ERROR_FAULT Unrecoverable error occurred
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @pre dynamicbox_create_buffer() must be called
- * @see dynamicbox_create_buffer()
- * @see dynamicbox_release_buffer()
  */
-extern int dynamicbox_acquire_buffer(dynamicbox_buffer_h handle, int idx, int width, int height, int pixels);
-
-/**
- * @internal
- * @brief Acquires the Id of Resource (window system).
- * @details Only if the provider uses Resource for providing render buffer.
- * @since_tizen 2.3
- * @remarks Pixmap Id can be destroyed if you call the dynamicbox_release_buffer(). Then this Resource Id is not guaranteed to use.
- * @param[in] handle Buffer handle
- * @param[in] idx Index of a buffer, #c DBOX_PRIMARY_BUFFER is used for accessing the primary buffer
- * @return unsigned int Resource Id
- * @retval >0 Resource Id
- * @retval 0 Failed to get Resource Id
- * @pre The system must be set to use the Resource Id method for content sharing.
- * @see dynamicbox_acquire_buffer()
- */
-extern unsigned int dynamicbox_resource_id(dynamicbox_buffer_h handle, int idx);
+extern const int DBOX_SYS_EVENT_TIME_CHANGED;
 
 /**
- * @internal
- * @brief Releases the buffer of dynamicbox.
+ * @brief System event type: Region changed.
  * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @param[in] idx Index of a buffer, #c DBOX_PRIMARY_BUFFER is used for accessing the primary buffer
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int status
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @retval #DBOX_STATUS_ERROR_NONE Successfully released
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @pre Handle must be created using dynamicbox_acquire_buffer().
- * @see dynamicbox_acquire_buffer()
  */
-extern int dynamicbox_release_buffer(dynamicbox_buffer_h handle, int idx);
+extern const int DBOX_SYS_EVENT_REGION_CHANGED;
 
 /**
- * @internal
- * @brief Destroy a buffer of dynamicbox
+ * @brief System event type: Accessibility mode changed.
  * @since_tizen 2.3
- * @param[in] handle buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int status
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMTER Invalid argument
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_NONE Successfully destroyed
- * @see dynamicbox_create_buffer()
  */
-extern int dynamicbox_destroy_buffer(dynamicbox_buffer_h handle);
+extern const int DBOX_SYS_EVENT_TTS_CHANGED;
 
 /**
- * @internal
- * @brief Gets the address of buffer for S/W rendering.
- * @details If you try to use this, after dynamicbox_create_hw_buffer(), you will get @c NULL.
- *          This API only be used for primary buffer. you cannot access the extra buffer
+ * @brief System event type: Dynamic Box is paused.
  * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return void* address of the render buffer
- * @retval @c NULL If it falis to get buffer address, dynamicbox_last_status() will returns reason of failure.
- * @retval address If it succeed to get the buffer address
- * @see dynamicbox_unref_buffer()
  */
-extern void *dynamicbox_ref_buffer(dynamicbox_buffer_h handle);
+extern const int DBOX_SYS_EVENT_PAUSED;
 
 /**
- * @internal
- * @brief Releases the S/W render buffer.
+ * @brief System event type: Dynamic Box is resumed.
  * @since_tizen 2.3
- * @param[in] buffer Address of render buffer
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_NONE Successfully unreference
- * @pre dynamicbox_ref_buffer() must be called.
- * @see dynamicbox_ref_buffer()
  */
-extern int dynamicbox_unref_buffer(void *buffer);
+extern const int DBOX_SYS_EVENT_RESUMED;
 
 /**
- * @internal
- * @brief Synchronizes the updated buffer.
- * @details This is only needed for non-H/W accelerated buffer.
- *          This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @brief System event type: Dynamic Box instance is removed from a viewer.
  * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_NONE Successfully sync'd
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @see dynamicbox_acquire_buffer()
  */
-extern int dynamicbox_sync_buffer(dynamicbox_buffer_h handle);
+extern const int DBOX_SYS_EVENT_DELETED;
 
 /**
  * @brief Requests to schedule the update operation to a provider.
@@ -635,154 +197,11 @@ extern int dynamicbox_sync_buffer(dynamicbox_buffer_h handle);
  * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory
  * @retval #DBOX_STATUS_ERROR_NOT_EXIST Given id instance is not exist
  * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_DISABLED in case of direct request for updating is disabled
  */
 extern int dynamicbox_request_update(const char *id);
 
 /**
- * @internal
- * @brief Checks whether the dynamicbox supports H/W acceleration or not.
- *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @return int type
- * @retval 1 If the buffer handle support the H/W acceleration buffer
- * @retval 0 If it doesn not supported
- * @see dynamicbox_acquire_buffer()
- */
-extern int dynamicbox_support_hw_buffer(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Creates the H/W accelerated buffer.
- *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_ALREADY H/W buffer is already created
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_NONE Successfully created
- * @pre Must be checked whether the H/W buffer is supported or not.
- * @post Must be destroyed if it is not necessary.
- * @see dynamicbox_support_hw_buffer()
- */
-extern int dynamicbox_create_hw_buffer(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Destroys the H/W accelerated buffer.
- *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_NONE Successfully destroyed
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @pre Must be created h/w buffer using dynamicbox_create_hw_buffer.
- * @see dynamicbox_create_hw_buffer()
- */
-extern int dynamicbox_destroy_hw_buffer(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Gets the address of the accelerated H/W buffer.
- *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return void* type
- * @retval @c NULL Failed to get H/W accelerated buffer address, dynamicbox_last_status() will returns reason of failure.
- * @retval addr H/W accelerated buffer address
- * @see dynamicbox_create_hw_buffer()
- */
-extern void *dynamicbox_buffer_hw_buffer(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Get the stride information from the buffer info
- *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @return int stride size
- * @retval positive_value length of stride
- * @return #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameter
- * @return #DBOX_STATUS_ERROR_FAULT Unrecoverable error
- * @see dynamicbox_create_hw_buffer()
- */
-extern int dynamicbox_buffer_stride(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Pre-processes for rendering content.
- * @details This is only needed for accessing H/W accelerated buffer.
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_NONE Successfully done
- * @post dynamicbox_buffer_post_render must be called after the rendering (accessing buffer) is completed.
- * @see dynamicbox_support_hw_buffer()
- * @see dynamicbox_buffer_post_render()
- */
-extern int dynamicbox_buffer_pre_render(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Post-processes for rendering content.
- * @since_tizen 2.3
- * @param[in] handle Buffer handle
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return If succes returns 0 or return less than 0
- * @retval #DBOX_STATUS_ERROR_NONE If succeed
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
- * @pre dynamicbox_buffer_pre_render must be called.
- * @see dynamicbox_support_hw_buffer()
- * @see dynamicbox_buffer_pre_render()
- */
-extern int dynamicbox_buffer_post_render(dynamicbox_buffer_h handle);
-
-/**
- * @internal
- * @brief Sends a request to the viewer (homescreen) to close the GBar.
- * @details Even though you call this function. the homescreen can ignore it.
- * @since_tizen 2.3
- * @param[in] dboxid Dynamic Box Package Id
- * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
- * @param[in] reason #DBOX_STATUS_ERROR_NONE(0)
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int type
- * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameters
- * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #DBOX_STATUS_ERROR_FAULT Failed to send a request
- * @retval #DBOX_STATUS_ERROR_NONE Successfully requested
- */
-extern int dynamicbox_request_close_glance_bar(const char *dboxid, const char *id, int reason);
-
-/**
  * @brief Send a freeze request to the viewer (homescreen)
  * @details
  *        The viewer will get this request via event callback.
@@ -792,7 +211,7 @@ extern int dynamicbox_request_close_glance_bar(const char *dboxid, const char *i
  * @param[in] dboxid Dynamic Box Package Id
  * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
  * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  * @return int type
@@ -815,7 +234,7 @@ extern int dynamicbox_freeze_scroller(const char *dboxid, const char *id);
  * @param[in] dboxid Dynamic Box Package Id
  * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
  * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
  * @feature http://developer.samsung.com/tizen/feature/samsung_extension
  * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
  * @return int type
@@ -829,55 +248,6 @@ extern int dynamicbox_freeze_scroller(const char *dboxid, const char *id);
 extern int dynamicbox_thaw_scroller(const char *dboxid, const char *id);
 
 /**
- * @internal
- * @brief Create a snapshot window
- * @details
- *         If you want create a snapshot image of contents, create this snapshot window
- *         But it will not renders object asynchronously,
- *         So you have to render the objects immediately, the delayed rendering object will not be on the canvas
- *         After flush it to a file.
- * @since_tizen 2.3
- * @param[in] id
- * @param[in] size_type
- * @return void* window
- * @retval @c NULL failed to create a snapshot window, dynamicbox_last_status() will returns reason of failure.
- * @retval Object window object (ex, elementary window)
- * @see dynamicbox_snapshot_window_flush()
- */
-extern void *dynamicbox_snapshot_window_add(const char *id, int size_type);
-
-/**
- * @internal
- * @brief Flush to a file for snapshot window
- * @since_tizen 2.3
- * @param[in] snapshot_win Snapshot window
- * @param[in] timeout After this, the image file will be created
- * @param[in] flush_cb Right after flush an image file, this callback will be called
- * @param[in] data Callback data for flush_cb
- * @return int status
- * @retval #DBOX_STATUS_ERROR_NONE Successfully flushed (flush timer added)
- * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid paramter
- * @retval #DBOX_STATUS_ERROR_FAULT Failed to create a flush timer
- * @see dynamicbox_snapshot_window_add()
- */
-extern int dynamicbox_snapshot_window_flush(void *snapshot_win, double timeout, dynamicbox_flush_cb flush_cb, void *data);
-
-/**
- * @internal
- * @brief Sending the updated event to the viewer
- * @since_tizen 2.3
- * @param[in] handle Dynamicbox Buffer Handle
- * @param[in] idx Index of a buffer
- * @privlevel public
- * @privilege %http://developer.samsung.com/tizen/privilege/shell.appwidget.provider
- * @feature http://developer.samsung.com/tizen/feature/samsung_extension
- * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
- * @return int status
- * @retval #DBOX_STATUS_ERROR_NONE Successfully sent
- */
-extern int dynamicbox_send_updated_by_idx(dynamicbox_buffer_h handle, int idx);
-
-/**
  * @}
  */
 
diff --git a/include/internal/dynamicbox.h b/include/internal/dynamicbox.h
new file mode 100644 (file)
index 0000000..e6a0253
--- /dev/null
@@ -0,0 +1,702 @@
+/*
+ * Copyright 2013  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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.
+ */
+
+/**
+ * Export by dynamicbox_service
+ */
+#include <dynamicbox_buffer.h>
+#include <dynamicbox_script.h>
+
+#ifndef __DYNAMICBOX_UILITY_INTERNAL_H
+#define __DYNAMICBOX_UILITY_INTERNAL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file dynamicbox_internal.h
+ * @brief This file declares API of libdynamicbox library
+ * @since_tizen 2.3
+ */
+
+/**
+ * @addtogroup CAPI_DYNAMICBOX_UTILITY_MODULE
+ * @{
+ */
+
+/**
+ * @internal
+ * @brief Definition for COLOR BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_COLOR "color"
+
+/**
+ * @internal
+ * @brief Definition for TEXT BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_TEXT "text"
+
+/**
+ * @internal
+ * @brief Definition for IMAGE BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_IMAGE "image"
+
+/**
+ * @internal
+ * @brief Definition for SIGNAL BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_SIGNAL "signal"
+
+/**
+ * @internal
+ * @brief Definition for INFO BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_INFO "info"
+
+/**
+ * @internal
+ * @brief Definition for DRAG BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_DRAG "drag"
+
+/**
+ * @internal
+ * @brief Definition for SCRIPT SCRIPT.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_SCRIPT "script"
+
+/**
+ * @internal
+ * @brief Definition for ACCESSIBILITY INFORMATION BLOCK.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_ACCESS "access"
+
+/**
+ * @internal
+ * @brief Definition for accessibility operation.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_TYPE_ACCESS_OPERATION "access,operation"
+
+/**
+ * @internal
+ * @brief Definition for set highlight on specified part.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_SET "set,hl"
+
+/**
+ * @internal
+ * @brief Definition for remove highlight from specified part.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_UNSET "unset,hl"
+
+/**
+ * @internal
+ * @brief Definition for move the highlight to next part.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_NEXT "next,hl"
+
+/**
+ * @internal
+ * @brief Definition for move the highlight to previous part.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_DATA_ACCESS_OPERATION_HL_PREV "prev,hl"
+
+/**
+ * @internal
+ * @brief Definition for reset the chain of accessibility highlight list.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_DATA_ACCESS_OPERATION_RESET "reset,focus"
+
+/**
+ * @internal
+ * @brief Definition for specify the highlight move option.
+ * @details If the highlight list reaches to the last object, move back to the first object.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_OPTION_ACCESS_HL_LOOP "cycle"
+
+/**
+ * @internal
+ * @brief Definition for specify the highlight move option.
+ * @details If the highlight list reaches to the last object(or the first object),
+ * the "prev,hl", "next,hl" will be failed.
+ * @since_tizen 2.3
+ */
+#define DBOX_DESC_OPTION_ACCESS_HL_NOLOOP "no,cycle"
+
+/**
+ * @internal
+ * @brief Dynamic Box description data handle.
+ * @since_tizen 2.3
+ */
+typedef struct dynamicbox_desc *dynamicbox_desc_h;
+
+/**
+ * @internal
+ * @brief Flush Callback for snapshot window
+ * @since_tizen 2.3
+ */
+typedef void (*dynamicbox_flush_cb)(void *snapshot_window, const char *id, int status, void *data);
+
+/**
+ * @internal
+ * @brief Updates a description file.
+ * @since_tizen 2.3
+ * @remarks Must be used only by Inhouse Dynamic Box.
+ * @param[in] id Dynamic Box Instance Id
+ * @param[in] gbar 1 for Glance Bar or 0
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return Handle of desc instance
+ * @retval @c NULL Failed to create a desc instance, dynamicbox_last_status() will returns reason of failure
+ * @pre Should be loaded by data-provider-slave.
+ * @post Should be destroyed(flushed) using dynamicbox_desc_close() API.
+ * @see dynamicbox_desc_close()
+ */
+extern dynamicbox_desc_h dynamicbox_desc_open(const char *id, int gbar);
+
+/**
+ * @internal
+ * @brief Completes the description file update.
+ * @details Only if this API is called, the description data will be applied to the content of Dynamic Box (or GBar).
+ * @since_tizen 2.3
+ * @remarks Must be used only by Inhouse Dynamic Box.
+ * @param[in] handle Handle which is created by dynamicbox_desc_open() function
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_NONE If the flushing description data is successfully done
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER If the given handle is not valid
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Handle must be created by dynamicbox_desc_open()
+ * @post Handle must not be used after return from this function.
+ * @see dynamicbox_desc_open()
+ */
+extern int dynamicbox_desc_close(dynamicbox_desc_h handle);
+
+/**
+ * @internal
+ * @brief Sets the category information of current description data.
+ * @details Creates a new description block for updating category information of layout object.
+ * @since_tizen 2.3
+ * @param[in] handle Handle which is created by dynamicbox_desc_open() function
+ * @param[in] id Id string of target object
+ * @param[in] category Category string that will be used by layout object
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle
+ * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Memory is not enough to add this block
+ * @retval index Index(>=0) of added block, which can be used by dynamicbox_desc_set_id()
+ * @pre Must be called after create a handle using dynamicbox_desc_open()
+ * @see dynamicbox_desc_set_id()
+ */
+extern int dynamicbox_desc_set_category(dynamicbox_desc_h handle, const char *id, const char *category);
+
+/**
+ * @internal
+ * @brief Sets the content size.
+ * @details Sets the content size of layout.
+ * @since_tizen 2.3
+ * @param[in] handle Handle which is created by dynamicbox_desc_open() function
+ * @param[in] id Id string of target object
+ * @param[in] w Width in pixel
+ * @param[in] h Height in pixel
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory to add a new block
+ * @retval index Index(>=0) of added block Successfully added
+ * @see dynamicbox_desc_open()
+ * @see dynamicbox_desc_set_id()
+ */
+extern int dynamicbox_desc_set_size(dynamicbox_desc_h handle, const char *id, int w, int h);
+
+/**
+ * @internal
+ * @brief Sets the target id of the given block.
+ * @details Only available for the script block.
+ * @since_tizen 2.3
+ * @param[in] handle Handle which is created by dynamicbox_desc_open() function
+ * @param[in] idx Index of target block
+ * @param[in] id Id String which will be used by other dynamicbox_desc_XXX functions
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_NONE Id is successfully updated for given idx of desc block
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_NOT_EXIST Given index of desc block is not exists
+ * @pre Desc block should be exists which has given index "idx".
+ * @post Specified Id string("id") can be used by other dynamicbox_desc_XXXX functions.
+ * @see dynamicbox_desc_open()
+ * @see dynamicbox_desc_set_id()
+ */
+extern int dynamicbox_desc_set_id(dynamicbox_desc_h handle, int idx, const char *id);
+
+/**
+ * @internal
+ * @brief Adds a new block.
+ * @since_tizen 2.3
+ * @param[in] handle Handle which is created by the dynamicbox_desc_open() function
+ * @param[in] id ID of source script object
+ * @param[in] type Type (image|text|script|signal|.. etc)
+ * @param[in] part Target part to update with given content(data)
+ * @param[in] data Content for specified part
+ * @param[in] option Option for the block. (script: group, image: option, ...)
+ * @return Index of current description block
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory to add a new desc block
+ * @retval index Index(>=0) of added desc block
+ * @pre Handle must be created using dynamicbox_desc_open.
+ * @see dynamicbox_desc_set_id()
+ * @see dynamicbox_desc_del_block()
+ */
+extern int dynamicbox_desc_add_block(dynamicbox_desc_h handle, const char *id, const char *type, const char *part, const char *data, const char *option);
+
+/**
+ * @internal
+ * @brief Deletes an added block.
+ * @since_tizen 2.3
+ * @details If you discard the added desc block, use this API and the index of the created desc block.
+ * @param[in] handle Handle which is created by dynamicbox_desc_open() function
+ * @param[in] idx Index of added block, returned from dynamicbox_desc_add_block(), dynamicbox_desc_set_size(), dynamicbox_desc_set_category(), etc
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully deleted
+ * @retval #DBOX_STATUS_ERROR_NOT_EXIST Given index of desc block is not exists
+ * @pre Index must be exists.
+ * @see dynamicbox_desc_add_block()
+ * @see dynamicbox_desc_open()
+ */
+extern int dynamicbox_desc_del_block(dynamicbox_desc_h handle, int idx);
+
+/**
+ * @internal
+ * @brief Structure for a Dynamic Box buffer defined by a provider.
+ * @since_tizen 2.3
+ */
+typedef struct dynamicbox_buffer *dynamicbox_buffer_h;
+
+/**
+ * @internal
+ * @brief Return values of dynamicbox programming interfaces: Need to create a new instance.
+ * @since_tizen 2.3
+ */
+extern const int DBOX_NEED_TO_CREATE;
+
+/**
+ * @internal
+ * @brief Return values of dynamicbox programming interfaces: Using network.
+ * @since_tizen 2.3
+ */
+extern const int DBOX_USE_NET;
+
+/**
+ * @internal
+ * @brief System event type: MMC Status change event.
+ * @since_tizen 2.3
+ */
+extern const int DBOX_SYS_EVENT_MMC_STATUS_CHANGED;
+
+/**
+ * @internal
+ * @brief Notifies the updated content to the provider.
+ * @details Forcedly notifies the updated contents.
+ *    This function can be used from async callback function to notify the updated content.
+ * @since_tizen 2.3
+ * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
+ * @param[in] gbar 1 for updating content of Glance Bar or 0(for content of Dynamic Box)
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Not enough memory
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_IO_ERROR I/O failed, Cannot access given resource file(id)
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully notified
+ * @pre This API only can be used after loaded into the data-provider-slave process.
+ */
+extern int dynamicbox_content_is_updated(const char *id, int gbar);
+
+/**
+ * @internal
+ * @brief Acquires a buffer for GBar or DBox, currently only the GBar is supported.
+ * @since_tizen 2.3
+ * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
+ * @param[in] gbar 1 for Glance Bar or 0 for Dynamic Box
+ * @param[in] width Width in pixel
+ * @param[in] height Height in pixel
+ * @param[in] pixels Size of a pixel in bytes
+ * @param[in] handler Event handling callback
+ * @param[in] data User data for event handling callback
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return Buffer handle
+ * @retval @c NULL Failed to acquire buffer, dynamicbox_last_status() will returns reason of failure.
+ * @retval handler Handle object
+ * @pre Given instance must be specify its type as buffer. or this API will be fail.
+ * @post Allocated buffer object must be released via dynamicbox_release_buffer().
+ * @see dynamicbox_release_buffer()
+ */
+extern dynamicbox_buffer_h dynamicbox_create_buffer(const char *id, int gbar, int auto_align, int (*handler)(dynamicbox_buffer_h, dynamicbox_buffer_event_data_t, void *), void *data);
+
+/**
+ * @internal
+ * @brief Acquire a buffer for GBar or DBox.
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @param[in] idx Index of a buffer, DBOX_PRIMARY_BUFFER is used for accessing primary buffer
+ * @param[in] width Width of a buffer
+ * @param[in] height Height of a buffer
+ * @param[in] pixels Pixel size in byte
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int status
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully allocated
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #DBOX_STATUS_ERROR_FAULT Unrecoverable error occurred
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @pre dynamicbox_create_buffer() must be called
+ * @see dynamicbox_create_buffer()
+ * @see dynamicbox_release_buffer()
+ */
+extern int dynamicbox_acquire_buffer(dynamicbox_buffer_h handle, int idx, int width, int height, int pixels);
+
+/**
+ * @internal
+ * @brief Acquires the Id of Resource (window system).
+ * @details Only if the provider uses Resource for providing render buffer.
+ * @since_tizen 2.3
+ * @remarks Pixmap Id can be destroyed if you call the dynamicbox_release_buffer(). Then this Resource Id is not guaranteed to use.
+ * @param[in] handle Buffer handle
+ * @param[in] idx Index of a buffer, #c DBOX_PRIMARY_BUFFER is used for accessing the primary buffer
+ * @return unsigned int Resource Id
+ * @retval >0 Resource Id
+ * @retval 0 Failed to get Resource Id
+ * @pre The system must be set to use the Resource Id method for content sharing.
+ * @see dynamicbox_acquire_buffer()
+ */
+extern unsigned int dynamicbox_resource_id(dynamicbox_buffer_h handle, int idx);
+
+/**
+ * @internal
+ * @brief Releases the buffer of dynamicbox.
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @param[in] idx Index of a buffer, #c DBOX_PRIMARY_BUFFER is used for accessing the primary buffer
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int status
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully released
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Handle must be created using dynamicbox_acquire_buffer().
+ * @see dynamicbox_acquire_buffer()
+ */
+extern int dynamicbox_release_buffer(dynamicbox_buffer_h handle, int idx);
+
+/**
+ * @internal
+ * @brief Destroy a buffer of dynamicbox
+ * @since_tizen 2.3
+ * @param[in] handle buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int status
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMTER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully destroyed
+ * @see dynamicbox_create_buffer()
+ */
+extern int dynamicbox_destroy_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Gets the address of buffer for S/W rendering.
+ * @details If you try to use this, after dynamicbox_create_hw_buffer(), you will get @c NULL.
+ *          This API only be used for primary buffer. you cannot access the extra buffer
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return void* address of the render buffer
+ * @retval @c NULL If it falis to get buffer address, dynamicbox_last_status() will returns reason of failure.
+ * @retval address If it succeed to get the buffer address
+ * @see dynamicbox_unref_buffer()
+ */
+extern void *dynamicbox_ref_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Releases the S/W render buffer.
+ * @since_tizen 2.3
+ * @param[in] buffer Address of render buffer
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully unreference
+ * @pre dynamicbox_ref_buffer() must be called.
+ * @see dynamicbox_ref_buffer()
+ */
+extern int dynamicbox_unref_buffer(void *buffer);
+
+/**
+ * @internal
+ * @brief Synchronizes the updated buffer.
+ * @details This is only needed for non-H/W accelerated buffer.
+ *          This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully sync'd
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @see dynamicbox_acquire_buffer()
+ */
+extern int dynamicbox_sync_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Checks whether the dynamicbox supports H/W acceleration or not.
+ *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @return int type
+ * @retval 1 If the buffer handle support the H/W acceleration buffer
+ * @retval 0 If it doesn not supported
+ * @see dynamicbox_acquire_buffer()
+ */
+extern int dynamicbox_support_hw_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Creates the H/W accelerated buffer.
+ *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_ALREADY H/W buffer is already created
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully created
+ * @pre Must be checked whether the H/W buffer is supported or not.
+ * @post Must be destroyed if it is not necessary.
+ * @see dynamicbox_support_hw_buffer()
+ */
+extern int dynamicbox_create_hw_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Destroys the H/W accelerated buffer.
+ *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully destroyed
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @pre Must be created h/w buffer using dynamicbox_create_hw_buffer.
+ * @see dynamicbox_create_hw_buffer()
+ */
+extern int dynamicbox_destroy_hw_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Gets the address of the accelerated H/W buffer.
+ *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return void* type
+ * @retval @c NULL Failed to get H/W accelerated buffer address, dynamicbox_last_status() will returns reason of failure.
+ * @retval addr H/W accelerated buffer address
+ * @see dynamicbox_create_hw_buffer()
+ */
+extern void *dynamicbox_buffer_hw_buffer(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Get the stride information from the buffer info
+ *        This API is only supported for primary buffer (#c DBOX_PRIMARY_BUFFER)
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @return int stride size
+ * @retval positive_value length of stride
+ * @return #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameter
+ * @return #DBOX_STATUS_ERROR_FAULT Unrecoverable error
+ * @see dynamicbox_create_hw_buffer()
+ */
+extern int dynamicbox_buffer_stride(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Pre-processes for rendering content.
+ * @details This is only needed for accessing H/W accelerated buffer.
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid handle
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully done
+ * @post dynamicbox_buffer_post_render must be called after the rendering (accessing buffer) is completed.
+ * @see dynamicbox_support_hw_buffer()
+ * @see dynamicbox_buffer_post_render()
+ */
+extern int dynamicbox_buffer_pre_render(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Post-processes for rendering content.
+ * @since_tizen 2.3
+ * @param[in] handle Buffer handle
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return If succes returns 0 or return less than 0
+ * @retval #DBOX_STATUS_ERROR_NONE If succeed
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid argument
+ * @pre dynamicbox_buffer_pre_render must be called.
+ * @see dynamicbox_support_hw_buffer()
+ * @see dynamicbox_buffer_pre_render()
+ */
+extern int dynamicbox_buffer_post_render(dynamicbox_buffer_h handle);
+
+/**
+ * @internal
+ * @brief Sends a request to the viewer (homescreen) to close the GBar.
+ * @details Even though you call this function. the homescreen can ignore it.
+ * @since_tizen 2.3
+ * @param[in] dboxid Dynamic Box Package Id
+ * @param[in] id Instance Id which is passed to you via the first parameter of every dynamicbox_XXXX interface functions
+ * @param[in] reason #DBOX_STATUS_ERROR_NONE(0)
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int type
+ * @retval #DBOX_STATUS_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid parameters
+ * @retval #DBOX_STATUS_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #DBOX_STATUS_ERROR_FAULT Failed to send a request
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully requested
+ */
+extern int dynamicbox_request_close_glance_bar(const char *dboxid, const char *id, int reason);
+
+/**
+ * @internal
+ * @brief Create a snapshot window
+ * @details
+ *         If you want create a snapshot image of contents, create this snapshot window
+ *         But it will not renders object asynchronously,
+ *         So you have to render the objects immediately, the delayed rendering object will not be on the canvas
+ *         After flush it to a file.
+ * @since_tizen 2.3
+ * @param[in] id
+ * @param[in] size_type
+ * @return void* window
+ * @retval @c NULL failed to create a snapshot window, dynamicbox_last_status() will returns reason of failure.
+ * @retval Object window object (ex, elementary window)
+ * @see dynamicbox_snapshot_window_flush()
+ */
+extern void *dynamicbox_snapshot_window_add(const char *id, int size_type);
+
+/**
+ * @internal
+ * @brief Flush to a file for snapshot window
+ * @since_tizen 2.3
+ * @param[in] snapshot_win Snapshot window
+ * @param[in] timeout After this, the image file will be created
+ * @param[in] flush_cb Right after flush an image file, this callback will be called
+ * @param[in] data Callback data for flush_cb
+ * @return int status
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully flushed (flush timer added)
+ * @retval #DBOX_STATUS_ERROR_INVALID_PARAMETER Invalid paramter
+ * @retval #DBOX_STATUS_ERROR_FAULT Failed to create a flush timer
+ * @see dynamicbox_snapshot_window_add()
+ */
+extern int dynamicbox_snapshot_window_flush(void *snapshot_win, double timeout, dynamicbox_flush_cb flush_cb, void *data);
+
+/**
+ * @internal
+ * @brief Sending the updated event to the viewer
+ * @since_tizen 2.3
+ * @param[in] handle Dynamicbox Buffer Handle
+ * @param[in] idx Index of a buffer
+ * @privlevel public
+ * @privilege %http://developer.samsung.com/tizen/privilege/dynamicbox.provider
+ * @feature http://developer.samsung.com/tizen/feature/samsung_extension
+ * @feature http://developer.samsung.com/tizen/feature/in_house/shell.appwidget
+ * @return int status
+ * @retval #DBOX_STATUS_ERROR_NONE Successfully sent
+ */
+extern int dynamicbox_send_updated_by_idx(dynamicbox_buffer_h handle, int idx);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* End of a file */
index 61acda0..51d2d1c 100644 (file)
@@ -82,6 +82,7 @@ mkdir -p %{buildroot}/%{_datarootdir}/license
 %defattr(-,root,root,-)
 %manifest %{name}.manifest
 %{_includedir}/dynamicbox/dynamicbox.h
+%{_includedir}/dynamicbox/internal/dynamicbox.h
 %{_libdir}/pkgconfig/*.pc
 
 # End of a file
index 946a078..9afde2b 100644 (file)
@@ -37,6 +37,7 @@
 #include "dlist.h"
 #include "util.h"
 #include "dynamicbox.h"
+#include "internal/dynamicbox.h"
 
 #define PUBLIC __attribute__((visibility("default")))
 
index 9374f4c..0956faf 100644 (file)
@@ -25,6 +25,7 @@
 #include <dynamicbox_errno.h>
 
 #include "dynamicbox.h"
+#include "internal/dynamicbox.h"
 #include "debug.h"
 
 #define QUALITY_N_COMPRESS "quality=100 compress=1"
index f7819c8..bae5dc7 100644 (file)
@@ -33,6 +33,7 @@
 #include <dynamicbox_buffer.h>
 
 #include "dynamicbox.h"
+#include "internal/dynamicbox.h"
 #include "debug.h"
 
 #define IS_GBAR 1