Fixed some TCT tests 48/37648/3
authorPaul Wisbey <p.wisbey@samsung.com>
Wed, 1 Apr 2015 15:47:10 +0000 (16:47 +0100)
committerPaul Wisbey <p.wisbey@samsung.com>
Wed, 1 Apr 2015 17:24:51 +0000 (18:24 +0100)
Change-Id: I7ebf6ba557f311fe42322c680d84392bab1b408c

automated-tests/src/dali-toolkit-internal/utc-Dali-PushButton.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h
dali-toolkit/internal/controls/popup/popup-impl.cpp
dali-toolkit/internal/controls/popup/popup-impl.h
dali-toolkit/public-api/controls/popup/popup.cpp
dali-toolkit/public-api/controls/popup/popup.h

index 05ced5a76ef082be3cf8ffc26f007ec1c0f8b8a1..8d2734be86cdca77e8b751203bb14337eb3bc636 100644 (file)
@@ -713,7 +713,7 @@ int UtcDaliPushButtonProperties(void)
   //  Button::PROPERTY_LABEL_ACTOR
   {
     button.SetLabel( "LABEL_TEXT_CUSTOM" );
-    DALI_TEST_EQUALS( "TextView", button.GetProperty( Button::Property::LABEL_ACTOR ).GetValue( "type" ).Get< std::string >(), TEST_LOCATION );
+    DALI_TEST_EQUALS( "TextLabel", button.GetProperty( Button::Property::LABEL_ACTOR ).GetValue( "type" ).Get< std::string >(), TEST_LOCATION );
 
     Property::Map map;
     map[ "type" ] = "Actor";
index e2b419ef3af2e60ff9480e39e8c75773e69984a5..3557c0de57c76b55b8c6e62bf2da88c4aecead7a 100644 (file)
@@ -110,8 +110,7 @@ DummyControlImplOverride::~DummyControlImplOverride() { }
 
 
 void DummyControlImplOverride::OnInitialize() { initializeCalled = true; }
-void DummyControlImplOverride::OnThemeChange(StyleManager change) { themeChangeCalled = true;}
-void DummyControlImplOverride::OnFontChange(bool defaultFontChange, bool defaultFontSizeChange) { fontChangeCalled = true; }
+void DummyControlImplOverride::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange change ) { themeChangeCalled = change.themeChange; fontChangeCalled = change.defaultFontSizeChange; }
 void DummyControlImplOverride::OnPinch(const PinchGesture& pinch) { pinchCalled = true; }
 void DummyControlImplOverride::OnPan(const PanGesture& pan) { panCalled = true; }
 void DummyControlImplOverride::OnTap(const TapGesture& tap) { tapCalled = true; }
index d923ac185af1b3423f80e64be740834679a9a64f..473a01d3df57262643dce7aa10a9f0e4356841d5 100644 (file)
@@ -102,8 +102,7 @@ private:
 private: // From Internal::Control
 
   virtual void OnInitialize();
-  virtual void OnThemeChange( StyleManager styleManager );
-  virtual void OnFontChange(bool defaultFontChange, bool defaultFontSizeChange);
+  virtual void OnStyleChange( Toolkit::StyleManager styleManager, StyleChange change );
   virtual void OnPinch(const PinchGesture& pinch);
   virtual void OnPan(const PanGesture& pan);
   virtual void OnTap(const TapGesture& tap);
index b67bdcc41a732a98707d13324bf6333dda7d49d7..23df7aa6d91344659d9c8b33d894b187e6a60b6e 100755 (executable)
@@ -263,13 +263,35 @@ void Popup::SetButtonAreaImage( Actor image )
 
 void Popup::SetTitle( const std::string& text )
 {
-// TODO
+  // Replaces the current title actor.
+  if( mPopupLayout )
+  {
+    mPopupLayout.RemoveChildAt( Toolkit::TableView::CellPosition( 0, 0 ) );
+  }
+
+  mTitle = Toolkit::TextLabel::New( text );
+  mTitle.SetName( "POPUP_TITLE" );
+  mTitle.SetColor( Color::BLACK );
+
+  if( mPopupLayout )
+  {
+    mTitle.SetPadding( Padding( 0.0f, 0.0f, mPopupStyle->margin, mPopupStyle->margin ) );
+    mTitle.SetResizePolicy( FILL_TO_PARENT, WIDTH );
+    mTitle.SetDimensionDependency( HEIGHT, WIDTH ); // HeightForWidth
+    mPopupLayout.AddChild( mTitle, Toolkit::TableView::CellPosition( 0, 0 ) );
+  }
+
+  RelayoutRequest();
 }
 
-const std::string& Popup::GetTitle() const
+std::string Popup::GetTitle() const
 {
-  static std::string temp("");
-  return temp;
+  if( mTitle )
+  {
+    return mTitle.GetProperty<std::string>( Toolkit::TextLabel::Property::TEXT );
+  }
+
+  return std::string();
 }
 
 void Popup::CreateFooter()
@@ -712,6 +734,29 @@ Vector3 Popup::GetNaturalSize()
 
   Vector3 naturalSize( 0.0f, 0.0f, 0.0f );
 
+  if ( mTitle )
+  {
+    Vector3 titleNaturalSize = mTitle.GetImplementation().GetNaturalSize();
+    // Buffer to avoid errors. The width of the popup could potentially be the width of the title text.
+    // It was observed in this case that text wrapping was then inconsistent when seen on device
+    const float titleBuffer = 0.5f;
+    titleNaturalSize.width += titleBuffer;
+
+    // As TextLabel GetNaturalSize does not take wrapping into account, limit the width
+    // to that of the stage
+    if( titleNaturalSize.width >= maxWidth)
+    {
+      naturalSize.width = maxWidth;
+      naturalSize.height = mTitle.GetImplementation().GetHeightForWidth( naturalSize.width );
+    }
+    else
+    {
+      naturalSize += titleNaturalSize;
+    }
+
+    naturalSize.height += mPopupStyle->margin;
+  }
+
   if( mContent )
   {
     Vector3 contentSize = mContent.GetNaturalSize();
@@ -742,6 +787,12 @@ float Popup::GetHeightForWidth( float width )
   float height( 0.0f );
   float popupWidth( width - 2.f * ( POPUP_OUT_MARGIN_WIDTH + mPopupStyle->margin ) );
 
+  if ( mTitle )
+  {
+    height += mTitle.GetImplementation().GetHeightForWidth( popupWidth );
+    height += mPopupStyle->margin;
+  }
+
   if( mContent )
   {
     height += mContent.GetHeightForWidth( popupWidth ) + mPopupStyle->margin;
index 3fe2abaff1d5601d6a063e61e50f42f32b3b6743..efdac513d18d86fbe066bb15a803ea84f1ccbdea 100755 (executable)
@@ -28,6 +28,7 @@
 #include <dali-toolkit/public-api/controls/popup/popup.h>
 #include <dali-toolkit/internal/controls/popup/popup-style-impl.h>
 #include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
 
 namespace Dali
 {
@@ -86,7 +87,7 @@ public:
   /**
    * @copydoc Toolkit::Popup::GetTitle
    */
-  const std::string& GetTitle() const;
+  std::string GetTitle() const;
 
   /**
    * @copydoc Toolkit::Popup::AddButton
@@ -320,6 +321,7 @@ private:
 
   Actor mBackgroundImage;                 ///< Stores the background image.
   Actor mButtonAreaImage;                 ///< Stores the button background image.
+  Toolkit::TextLabel mTitle;               ///< Stores the text title.
   Actor mContent;                         ///< Stores popup's content.
   Actor mBottomBg;                        ///< bottom button bar background. ImageActor is replaced with Actor due to hidden image.
   Actor mTailImage;                       ///< Stores the tail image
index 1bb3fab72551b541954608a48f64be4660629c43..b557f01ebe799c99510441ab61ef9f138b66edc5 100644 (file)
@@ -87,7 +87,7 @@ void Popup::SetTitle( const std::string& text )
   GetImpl(*this).SetTitle( text );
 }
 
-const std::string& Popup::GetTitle() const
+std::string Popup::GetTitle() const
 {
   return GetImpl(*this).GetTitle();
 }
index 108dd9e6ccaccb2d87207f85be101bdb5af740b3..1ab708bc0e7163827b897b2f435879bdf2d900ff 100644 (file)
@@ -170,7 +170,7 @@ public:
    *
    * @return The text to appear as the heading for this Popup
    */
-  const std::string& GetTitle() const;
+  std::string GetTitle() const;
 
   /**
    * @brief Adds a button to this Popup.