DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "permanentDelete", BOOLEAN, PERMANENT_DELETE )
DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "retryText", MAP, RETRY_TEXT )
DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "effect", MAP, EFFECT )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "keepWidgetSize", BOOLEAN, KEEP_WIDGET_SIZE )
// Internal property for compatibility.
-const int TERMINATE_WIDGET = Dali::WidgetView::WidgetView::Property::EFFECT+1;
+const int TERMINATE_WIDGET = Dali::WidgetView::WidgetView::Property::KEEP_WIDGET_SIZE+1;
const int WIDGET_IMAGE = TERMINATE_WIDGET+1;
Dali::PropertyRegistration internalProperty1( typeRegistration, "terminateWidget", TERMINATE_WIDGET, Property::BOOLEAN, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
mInstanceId(),
mContentInfo(),
mTitle(),
- mWidth( 0 ),
- mHeight( 0 ),
+ mWidgetWidth( 0 ),
+ mWidgetHeight( 0 ),
mPid( -1 ),
mUpdatePeriod( 0.0 ),
mLoadingTextString(),
mPaused( false ),
mPausedManually( false ),
mWindowVisible( true ),
- mPreviewEnable( true )
+ mPreviewEnable( true ),
+ mKeepWidgetSize(false)
{
}
mInstanceId(),
mContentInfo( contentInfo ),
mTitle(),
- mWidth( width ),
- mHeight( height ),
+ mWidgetWidth( width ),
+ mWidgetHeight( height ),
mPid( -1 ),
mUpdatePeriod( updatePeriod ),
mLoadingTextString(),
mPaused( false ),
mPausedManually( false ),
mWindowVisible( true ),
- mPreviewEnable( true )
+ mPreviewEnable( true ),
+ mKeepWidgetSize(false)
{
}
return mPermanentDelete;
}
+void WidgetView::SetKeepWidgetSize( bool keepWidgetSize )
+{
+ mKeepWidgetSize = keepWidgetSize;
+}
+
+bool WidgetView::IsKeepWidgetSize()
+{
+ return mKeepWidgetSize;
+}
+
void WidgetView::CreateWidgetRenderer()
{
Dali::Any source;
mCreated = true;
if( mResizeRequired )
{
- widget_instance_resize(mInstanceId.c_str(), mWidth, mHeight);
+ // widget_instance_resize() have to callled after WIDGET_INSTANCE_EVENT_CREATE signal.
+ // if it called before WIDGET_INSTANCE_EVENT_CREATE signal, widget is able to make some problem.
+ ResizeWidget(mWidgetWidth, mWidgetHeight);
mResizeRequired = false;
}
break;
}
break;
}
+ case Dali::WidgetView::WidgetView::Property::KEEP_WIDGET_SIZE:
+ {
+ bool keepWidgetSize;
+ if( value.Get( keepWidgetSize ) )
+ {
+ impl.SetKeepWidgetSize( keepWidgetSize );
+ }
+ break;
+ }
case TERMINATE_WIDGET:
{
bool del = false;
value = impl.IsPermanentDelete();
break;
}
+ case Dali::WidgetView::WidgetView::Property::KEEP_WIDGET_SIZE:
+ {
+ value = impl.IsKeepWidgetSize();
+ break;
+ }
}
}
}
// Preview image
- widget_service_get_size_type( mWidth, mHeight, &sizeType );
+ widget_service_get_size_type( mWidgetWidth, mWidgetHeight, &sizeType );
previewPath = widget_service_get_preview_image_path( mWidgetId.c_str(), sizeType );
if( previewPath )
mPreviewImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
self.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- self.SetProperty( Actor::Property::SIZE, Vector2(mWidth, mHeight));
+ self.SetProperty( Actor::Property::SIZE, Vector2(mWidgetWidth, mWidgetHeight));
self.Add( mPreviewActor );
mPreviewActor.Add( mPreviewImage );
Vector3 WidgetView::GetNaturalSize()
{
Vector3 size;
- size.x = mWidth;
- size.y = mHeight;
+ size.x = mWidgetWidth;
+ size.y = mWidgetHeight;
if( size.x > 0 && size.y > 0 )
{
ops.added_cb = OnBufferAdded;
mWatcherHandle = screen_connector_toolkit_add(&ops, (char *)mInstanceId.c_str(), static_cast<screen_connector_screen_type_e>(SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET | SCREEN_CONNECTOR_SCREEN_TYPE_COMPONENT_BASED), this);
- mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidth, mHeight );
+ mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidgetWidth, mWidgetHeight );
if( mPid < 0)
{
ShowLoadingState( false );
return true;
}
+void WidgetView::ResizeWidget(int width, int height)
+{
+ if( !mKeepWidgetSize )
+ {
+ // When widget is not created, we can't call widget_instance_resize().
+ // in this case, we just save the size and do resize when instance is created.
+ if( mCreated )
+ {
+ widget_instance_resize(mInstanceId.c_str(), width, height);
+ }
+ else
+ {
+ mResizeRequired = true;
+ mWidgetWidth = width;
+ mWidgetHeight = height;
+ }
+ }
+ else
+ {
+ DALI_LOG_RELEASE_INFO("widget instance is not resized(%dx%d), because KEEP_WIDGET_SIZE is true \n", width, height);
+ }
+}
+
void WidgetView::ReloadWidget()
{
if(!mCreated)
void WidgetView::OnRelayout( const Vector2& size, RelayoutContainer& container )
{
Control::OnRelayout( size, container );
-
- // When widget is not created, we can't call widget_instance_resize().
- // in this case, we just save the size and do resize when instance is created.
- if( mCreated )
- {
- widget_instance_resize(mInstanceId.c_str(), size.x, size.y);
- }
- else
- {
- mResizeRequired = true;
- mWidth = size.x;
- mHeight = size.y;
- }
+ ResizeWidget(size.x, size.y);
}
void WidgetView::OnSizeAnimation( Animation& animation, const Vector3& targetSize )
{
Control::OnSizeAnimation( animation, targetSize );
- widget_instance_resize(mInstanceId.c_str(), targetSize.x, targetSize.y);
+ ResizeWidget(targetSize.x, targetSize.y);
}
WidgetView::WidgetViewAccessible::WidgetViewAccessible(Dali::Actor self)