Use the input style changed signal to update the gui. 19/81819/5
authorVictor Cebollada <v.cebollada@samsung.com>
Wed, 27 Jul 2016 07:09:15 +0000 (08:09 +0100)
committerVíctor Cebollada <v.cebollada@samsung.com>
Mon, 15 Aug 2016 10:49:41 +0000 (03:49 -0700)
Change-Id: Idc1940ad0e27ec5a20641912d982b3d5865fbc20
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
examples/text-editor/text-editor-example.cpp

index eb83eecf984ab8b6c0fbdc6cd1ca4e1befe19ba5..d2a05d76d649851539a3bce8b5d413c114247e40 100644 (file)
@@ -62,7 +62,6 @@ const unsigned int NUMBER_OF_COLORS = sizeof( COLORS ) / sizeof( Vector4 );
 class TextEditorExample : public ConnectionTracker
 {
 public:
-
   TextEditorExample( Application& application )
   : mApplication( application )
   {
@@ -152,6 +151,8 @@ public:
                          "Asšúm sapěret usu ůť.\n"
                          "Síť ut apeirián laboramúš percipitur, sůas hařum ín éos?\n" );
 
+    mEditor.InputStyleChangedSignal().Connect( this, &TextEditorExample::OnTextInputStyleChanged );
+
     contents.Add( mEditor );
   }
 
@@ -222,18 +223,36 @@ public:
   {
     const std::string& name = button.GetName();
 
+    Vector4 color;
     if( "color" == name.substr( 0u, 5u ) )
     {
       const unsigned int index = strtoul( name.substr( 5u, 1u ).c_str(), NULL, 10u );
-      mEditor.SetProperty( TextEditor::Property::INPUT_COLOR, COLORS[index] );
+      color = COLORS[index];
+      mEditor.SetProperty( TextEditor::Property::INPUT_COLOR, color );
     }
 
+    mColorButtonOption.SetProperty( Button::Property::UNSELECTED_COLOR, color );
+    mColorButtonOption.SetProperty( Button::Property::SELECTED_COLOR, color );
+
     mButtonContainer.SetVisible( false );
     mButtonContainer.SetSensitive( false );
 
     return true;
   }
 
+  void OnTextInputStyleChanged( TextEditor editor, TextEditor::InputStyle::Mask mask )
+  {
+    if( TextEditor::InputStyle::NONE != static_cast<TextEditor::InputStyle::Mask>( mask & TextEditor::InputStyle::COLOR ) )
+    {
+      const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
+
+      mColorButtonOption.SetProperty( Button::Property::UNSELECTED_COLOR, color );
+      mColorButtonOption.SetProperty( Button::Property::SELECTED_COLOR, color );
+    }
+
+    editor.Reset();
+  }
+
 private:
 
   Application& mApplication;