{
if( !mWidgetId.empty() && !mInstanceId.empty() )
{
- widget_instance_terminate( mWidgetId.c_str(), mInstanceId.c_str() );
+ widget_instance_terminate( mInstanceId.c_str() );
if( mPermanentDelete )
{
- widget_instance_destroy( mWidgetId.c_str(), mInstanceId.c_str() );
+ widget_instance_destroy( mInstanceId.c_str() );
}
}
bool WidgetView::PauseWidget()
{
- int ret = widget_instance_pause( mWidgetId.c_str(), mInstanceId.c_str() );
+ int ret = widget_instance_pause( mInstanceId.c_str() );
if( ret < 0 )
{
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::PauseWidget: Fail to pause widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
bool WidgetView::ResumeWidget()
{
- int ret = widget_instance_resume( mWidgetId.c_str(), mInstanceId.c_str() );
+ int ret = widget_instance_resume( mInstanceId.c_str() );
if( ret < 0 )
{
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ResumeWidget: Fail to resume widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
const std::string& WidgetView::GetContentInfo()
{
widget_instance_h instance;
- bundle* bundle = NULL;
- bundle_raw* contentInfo = NULL;
- int contentLength = 0;
+ char* contentInfo = NULL;
mContentInfo.clear();
return mContentInfo;
}
- if( widget_instance_get_content( instance, &bundle ) < 0 )
+ if( widget_instance_get_content( instance, &contentInfo ) < 0 )
{
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Failed to get content of widget. [%s]\n", mInstanceId.c_str() );
return mContentInfo;
}
- if( !bundle )
- {
- DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Cotent of widget [%s] is invalid.\n", mInstanceId.c_str() );
- return mContentInfo;
- }
-
- if( bundle_encode( bundle, &contentInfo, &contentLength ) < 0 )
- {
- DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: bundle_encode is failed. [%s]\n", mInstanceId.c_str() );
- return mContentInfo;
- }
-
mContentInfo = reinterpret_cast< char* >( contentInfo );
return mContentInfo;
}
// launch widget again
- mPid = widget_instance_launch( mWidgetId.c_str(), mInstanceId.c_str(), mBundle, mWidth, mHeight );
+ mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidth, mHeight );
if( mPid < 0)
{
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
std::string previewImage;
widget_size_type_e sizeType;
- if( !mContentInfo.empty() )
+ int ret = widget_instance_create( mWidgetId.c_str(), &instanceId );
+ if( ret < 0 || !instanceId )
{
- DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: decode bundle\n" );
-
- mBundle = bundle_decode( reinterpret_cast< const bundle_raw* >( mContentInfo.c_str() ), mContentInfo.length() );
- if( !mBundle )
- {
- DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: Invalid bundle data.\n" );
- return;
- }
-
- bundle_get_str( mBundle, WIDGET_K_INSTANCE, &instanceId );
+ DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is failed [%s].\n", mWidgetId.c_str() );
+ return;
}
- if( !instanceId )
- {
- int ret = widget_instance_create( mWidgetId.c_str(), &instanceId );
- if( ret < 0 || !instanceId )
- {
- DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is failed [%s].\n", mWidgetId.c_str() );
- return;
- }
-
- DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is called. [widget id = %s, instance id = %s]\n",
- mWidgetId.c_str(), instanceId );
- }
+ DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is called. [widget id = %s, instance id = %s]\n",
+ mWidgetId.c_str(), instanceId );
mInstanceId = instanceId;
mPreviewImage.Add( mStateText );
// launch widget
- mPid = widget_instance_launch( mWidgetId.c_str(), instanceId, mBundle, mWidth, mHeight );
+ mPid = widget_instance_launch( instanceId, (char *)mContentInfo.c_str(), mWidth, mHeight );
if( mPid < 0)
{
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
char *widget_id;
char *instance_id;
const char *title;
- bundle *content_info_bundle;
+ char *content_info;
int pid;
double period;
struct widget_info *info;
struct widget_evas_event_info event_info;
const char *smart_signal;
+ char *content_info;
+ widget_instance_h handle;
info = g_hash_table_lookup(s_info.widget_table, instance_id);
if (!info) {
case WIDGET_INSTANCE_EVENT_EXTRA_UPDATED:
event_info.event = WIDGET_EVENT_EXTRA_INFO_UPDATED;
smart_signal = WIDGET_SMART_SIGNAL_EXTRA_INFO_UPDATED;
+ handle = widget_instance_get_instance(info->widget_id, info->instance_id);
+ if (!handle) {
+ ErrPrint("instance handle of widget(%s) is invalid data", info->instance_id);
+ break;
+ }
+
+ if (widget_instance_get_content(handle, &content_info) < 0) {
+ ErrPrint("Failed to get content of widget(%s)", info->instance_id);
+ break;
+ }
+
+ if (content_info) {
+ if (info->content_info)
+ free(info->content_info);
+
+ info->content_info = strdup(content_info);
+ }
break;
case WIDGET_INSTANCE_EVENT_FAULT:
event_info.event = WIDGET_FAULT_DEACTIVATED;
smart_callback_call(info->layout, WIDGET_SMART_SIGNAL_WIDGET_DELETED, &evas_info);
- if (info->widget_id && info->instance_id) {
- widget_instance_terminate(info->widget_id, info->instance_id);
- info->pid = 0;
+ if (info->instance_id) {
+ if (info->permanent_delete)
+ widget_instance_destroy(info->instance_id);
+ else
+ widget_instance_terminate(info->instance_id);
}
- if (info->permanent_delete)
- widget_instance_destroy(info->widget_id, info->instance_id);
-
evas_object_data_del(layout, WIDGET_INFO_TAG);
g_hash_table_remove(s_info.widget_table, info->instance_id);
free(info->widget_id);
free(info->instance_id);
- bundle_free(info->content_info_bundle);
+ free(info->content_info);
free(info);
}
}
_compositor_set_handler(info->instance_id, widget_object_cb, NULL);
- info->pid = widget_instance_launch(info->widget_id, info->instance_id, info->content_info_bundle, w, h);
+ info->pid = widget_instance_launch(info->instance_id, info->content_info, w, h);
if (info->pid < 0) {
struct widget_evas_event_info event_info;
ErrPrint("Failed to launch an widget");
EAPI Evas_Object *widget_viewer_evas_add_widget(Evas_Object *parent, const char *widget_id, const char *content_info, double period)
{
char *instance_id = NULL;
- bundle *content_info_bundle = NULL;
struct widget_info *widget_instance_info = NULL;
- const bundle_raw *bundle_info = NULL;
if (!is_widget_feature_enabled()) {
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
- if (content_info) {
- bundle_info = (bundle_raw *) content_info;
- content_info_bundle = bundle_decode(bundle_info, strlen(content_info));
- if (content_info_bundle == NULL) {
- set_last_result(WIDGET_ERROR_FAULT);
- ErrPrint("Invalid content format: [%s]", content_info);
- }
+ if (widget_instance_create(widget_id, &instance_id) < 0) {
+ set_last_result(WIDGET_ERROR_FAULT);
+ return NULL;
}
- if (content_info_bundle)
- bundle_get_str(content_info_bundle, WIDGET_K_INSTANCE, &instance_id);
-
if (!instance_id) {
- if (widget_instance_create(widget_id, &instance_id) < 0) {
- set_last_result(WIDGET_ERROR_FAULT);
- if (content_info_bundle)
- bundle_free(content_info_bundle);
- return NULL;
- }
-
- if (!instance_id) {
- set_last_result(WIDGET_ERROR_FAULT);
- ErrPrint("Failed to get instance_id: %s", widget_id);
- if (content_info_bundle)
- bundle_free(content_info_bundle);
- return NULL;
- }
+ set_last_result(WIDGET_ERROR_FAULT);
+ ErrPrint("Failed to get instance_id: %s", widget_id);
+ return NULL;
+ }
- widget_instance_info = create_info(parent, widget_id, instance_id, content_info);
- if (!widget_instance_info) {
- set_last_result(WIDGET_ERROR_FAULT);
- ErrPrint("Unable to create an information object");
- widget_instance_destroy(widget_id, instance_id);
- if (content_info_bundle)
- bundle_free(content_info_bundle);
- return NULL;
- }
+ widget_instance_info = create_info(parent, widget_id, instance_id, content_info);
+ if (!widget_instance_info) {
+ set_last_result(WIDGET_ERROR_FAULT);
+ ErrPrint("Unable to create an information object");
+ widget_instance_destroy(instance_id);
+ return NULL;
+ }
- widget_instance_info->content_info_bundle = content_info_bundle;
- widget_instance_info->pid = 0;
- widget_instance_info->period = period;
+ if (content_info)
+ widget_instance_info->content_info = strdup(content_info);
- g_hash_table_insert(s_info.widget_table, instance_id, widget_instance_info);
- } else {
- widget_instance_info = g_hash_table_lookup(s_info.widget_table, instance_id);
- if (!widget_instance_info) {
- widget_instance_info = create_info(parent, widget_id, instance_id, content_info);
- if (!widget_instance_info) {
- set_last_result(WIDGET_ERROR_FAULT);
- if (content_info_bundle)
- bundle_free(content_info_bundle);
- return NULL;
- }
+ widget_instance_info->pid = 0;
+ widget_instance_info->period = period;
- widget_instance_info->content_info_bundle = content_info_bundle;
- widget_instance_info->pid = 0;
- widget_instance_info->period = period;
-
- g_hash_table_insert(s_info.widget_table, instance_id, widget_instance_info);
- }
- }
+ g_hash_table_insert(s_info.widget_table, widget_instance_info->instance_id, widget_instance_info);
/**
* @note
return WIDGET_ERROR_DISABLED;
}
- ret = widget_instance_pause(info->widget_id, info->instance_id);
+ ret = widget_instance_pause(info->instance_id);
if (ret < 0) {
ErrPrint("Fail to pause the widget(%p):(%d)", widget, ret);
return ret;
return WIDGET_ERROR_DISABLED;
}
- ret = widget_instance_resume(info->widget_id, info->instance_id);
+ ret = widget_instance_resume(info->instance_id);
if (ret < 0) {
ErrPrint("Fail to resume the widget(%p):(%d)", widget, ret);
return ret;
EAPI const char *widget_viewer_evas_get_content_info(Evas_Object *widget)
{
struct widget_info *info;
- widget_instance_h handle = NULL;
- bundle_raw *content_info = NULL;
- int content_len = 0;
- bundle *content_info_bundle = NULL;
-
if (!is_widget_feature_enabled()) {
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
- if (!info->widget_id && !info->instance_id) {
- set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
- ErrPrint("widget id(%s) or instance id(%s) is invalid data", info->widget_id, info->instance_id);
- return NULL;
- }
-
- handle = widget_instance_get_instance(info->widget_id, info->instance_id);
-
- if (!handle) {
- set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
- ErrPrint("instance handle of widget(%s) is invalid data", info->instance_id);
- return NULL;
- }
-
- if (widget_instance_get_content(handle, &content_info_bundle) < 0) {
- set_last_result(WIDGET_ERROR_FAULT);
- ErrPrint("Failed to get content of widget(%s)", info->instance_id);
- return NULL;
- }
-
- if (content_info_bundle == NULL) {
- set_last_result(WIDGET_ERROR_FAULT);
- ErrPrint("content of widget(%s) is invalid data", info->instance_id);
- return NULL;
- }
-
- if (bundle_encode(content_info_bundle, &content_info, &content_len) < 0) {
- set_last_result(WIDGET_ERROR_FAULT);
- ErrPrint("Failed to encode (%s)", info->instance_id);
- return NULL;
- }
-
- return (const char*)content_info;
+ return (const char*)info->content_info;
}
EAPI const char *widget_viewer_evas_get_title_string(Evas_Object *widget)
elm_object_signal_emit(info->layout, "enable", "text");
}
- info->pid = widget_instance_launch(info->widget_id, info->instance_id, info->content_info_bundle, w, h);
+ info->pid = widget_instance_launch(info->instance_id, info->content_info, w, h);
if (info->pid < 0) {
ErrPrint("Failed to launch an widget");
event_info.error = info->pid;