Commit 794a38e615c95caf64acf00acd8eeafd85b7f73b

Authored by Anton Obzhirov
1 parent cfe02c3a

Add alignment button in LinearExample.

Change-Id: I1a1005f16497d57fe1df817b8d53e3d6fc81d75b
examples/layouting/linear-example.cpp
@@ -39,6 +39,9 @@ const char* RTL_SELECTED_IMAGE( DEMO_IMAGE_DIR "icon-reverse-selected.png" ); @@ -39,6 +39,9 @@ const char* RTL_SELECTED_IMAGE( DEMO_IMAGE_DIR "icon-reverse-selected.png" );
39 const char* ROTATE_CLOCKWISE_IMAGE( DEMO_IMAGE_DIR "icon-reset.png" ); 39 const char* ROTATE_CLOCKWISE_IMAGE( DEMO_IMAGE_DIR "icon-reset.png" );
40 const char* ROTATE_CLOCKWISE_SELECTED_IMAGE( DEMO_IMAGE_DIR "icon-reset-selected.png" ); 40 const char* ROTATE_CLOCKWISE_SELECTED_IMAGE( DEMO_IMAGE_DIR "icon-reset-selected.png" );
41 41
  42 +const char* ALIGN_IMAGE( DEMO_IMAGE_DIR "icon-replace.png" );
  43 +const char* ALIGN_SELECTED_IMAGE( DEMO_IMAGE_DIR "icon-replace-selected.png" );
  44 +
42 // Child image filenames 45 // Child image filenames
43 const char* IMAGE_PATH[] = { 46 const char* IMAGE_PATH[] = {
44 DEMO_IMAGE_DIR "application-icon-101.png", 47 DEMO_IMAGE_DIR "application-icon-101.png",
@@ -97,11 +100,22 @@ void LinearExample::Create() @@ -97,11 +100,22 @@ void LinearExample::Create()
97 mRotateButton.SetSize(75, 75); 100 mRotateButton.SetSize(75, 75);
98 stage.Add( mRotateButton ); 101 stage.Add( mRotateButton );
99 102
  103 + mAlignmentButton = PushButton::New();
  104 + mAlignmentButton.SetProperty( PushButton::Property::UNSELECTED_ICON, ALIGN_IMAGE );
  105 + mAlignmentButton.SetProperty( PushButton::Property::SELECTED_ICON, ALIGN_SELECTED_IMAGE );
  106 + mAlignmentButton.ClickedSignal().Connect( this, &LinearExample::OnAlignmentClicked );
  107 + mAlignmentButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
  108 + mAlignmentButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
  109 + mAlignmentButton.SetSize(75, 75);
  110 +
  111 + stage.Add( mAlignmentButton );
  112 +
100 // Create a linear layout 113 // Create a linear layout
101 mLinearContainer = Control::New(); 114 mLinearContainer = Control::New();
102 auto layout = LinearLayout::New(); 115 auto layout = LinearLayout::New();
103 layout.SetAnimateLayout(true); 116 layout.SetAnimateLayout(true);
104 - layout.SetOrientation( LinearLayout::Orientation::VERTICAL ); 117 + layout.SetOrientation( LinearLayout::Orientation::HORIZONTAL );
  118 + layout.SetAlignment( LinearLayout::Alignment::CENTER_VERTICAL );
105 DevelControl::SetLayout( mLinearContainer, layout ); 119 DevelControl::SetLayout( mLinearContainer, layout );
106 120
107 mLinearContainer.SetParentOrigin( ParentOrigin::CENTER ); 121 mLinearContainer.SetParentOrigin( ParentOrigin::CENTER );
@@ -127,6 +141,7 @@ void LinearExample::Remove() @@ -127,6 +141,7 @@ void LinearExample::Remove()
127 { 141 {
128 UnparentAndReset( mDirectionButton ); 142 UnparentAndReset( mDirectionButton );
129 UnparentAndReset( mRotateButton ); 143 UnparentAndReset( mRotateButton );
  144 + UnparentAndReset( mAlignmentButton );
130 UnparentAndReset( mLinearContainer); 145 UnparentAndReset( mLinearContainer);
131 } 146 }
132 } 147 }
@@ -134,6 +149,8 @@ void LinearExample::Remove() @@ -134,6 +149,8 @@ void LinearExample::Remove()
134 // Mirror items in layout 149 // Mirror items in layout
135 bool LinearExample::OnDirectionClicked( Button button ) 150 bool LinearExample::OnDirectionClicked( Button button )
136 { 151 {
  152 + auto layout = LinearLayout::DownCast( DevelControl::GetLayout( mLinearContainer ) );
  153 + layout.SetOrientation( LinearLayout::Orientation::HORIZONTAL );
137 if( !mLTRDirection ) 154 if( !mLTRDirection )
138 { 155 {
139 mDirectionButton.SetProperty( PushButton::Property::UNSELECTED_ICON, LTR_IMAGE ); 156 mDirectionButton.SetProperty( PushButton::Property::UNSELECTED_ICON, LTR_IMAGE );
@@ -157,10 +174,41 @@ bool LinearExample::OnRotateClicked( Button button ) @@ -157,10 +174,41 @@ bool LinearExample::OnRotateClicked( Button button )
157 if( layout.GetOrientation() == LinearLayout::Orientation::VERTICAL ) 174 if( layout.GetOrientation() == LinearLayout::Orientation::VERTICAL )
158 { 175 {
159 layout.SetOrientation( LinearLayout::Orientation::HORIZONTAL ); 176 layout.SetOrientation( LinearLayout::Orientation::HORIZONTAL );
  177 + layout.SetAlignment(LinearLayout::Alignment::CENTER_VERTICAL );
160 } 178 }
161 else 179 else
162 { 180 {
163 layout.SetOrientation( LinearLayout::Orientation::VERTICAL ); 181 layout.SetOrientation( LinearLayout::Orientation::VERTICAL );
  182 + layout.SetAlignment( LinearLayout::Alignment::CENTER_HORIZONTAL );
  183 + }
  184 + return true;
  185 +}
  186 +
  187 +bool LinearExample::OnAlignmentClicked( Button button )
  188 +{
  189 + auto layout = LinearLayout::DownCast( DevelControl::GetLayout( mLinearContainer ) );
  190 + if ( layout.GetAlignment() == LinearLayout::Alignment::CENTER_VERTICAL ) {
  191 + layout.SetAlignment( LinearLayout::Alignment::BEGIN );
  192 + }
  193 + else if ( layout.GetAlignment() == LinearLayout::Alignment::BEGIN )
  194 + {
  195 + layout.SetAlignment( LinearLayout::Alignment::END );
  196 + }
  197 + else if ( layout.GetAlignment() == LinearLayout::Alignment::END )
  198 + {
  199 + layout.SetAlignment( LinearLayout::Alignment::CENTER_HORIZONTAL);
  200 + }
  201 + else if ( layout.GetAlignment() == LinearLayout::Alignment::CENTER_HORIZONTAL )
  202 + {
  203 + layout.SetAlignment( LinearLayout::Alignment::TOP );
  204 + }
  205 + else if ( layout.GetAlignment() == LinearLayout::Alignment::TOP )
  206 + {
  207 + layout.SetAlignment( LinearLayout::Alignment::BOTTOM );
  208 + }
  209 + else if ( layout.GetAlignment() == LinearLayout::Alignment::BOTTOM )
  210 + {
  211 + layout.SetAlignment( LinearLayout::Alignment::CENTER_VERTICAL );
164 } 212 }
165 return true; 213 return true;
166 } 214 }
examples/layouting/linear-example.h
@@ -53,9 +53,13 @@ private: @@ -53,9 +53,13 @@ private:
53 // Alternates the linear layout from horizontal to vertical 53 // Alternates the linear layout from horizontal to vertical
54 bool OnRotateClicked( Button button ); 54 bool OnRotateClicked( Button button );
55 55
  56 + // Cycles through alignment options
  57 + bool OnAlignmentClicked( Button button );
  58 +
56 private: 59 private:
57 PushButton mDirectionButton; 60 PushButton mDirectionButton;
58 PushButton mRotateButton; 61 PushButton mRotateButton;
  62 + PushButton mAlignmentButton;
59 Control mLinearContainer; 63 Control mLinearContainer;
60 bool mLTRDirection; 64 bool mLTRDirection;
61 }; // class LinearContainer 65 }; // class LinearContainer