2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "shared/view.h"
19 #include <dali/dali.h>
20 #include <dali-toolkit/dali-toolkit.h>
21 #include <dali-toolkit/devel-api/controls/popup/popup.h>
25 using Dali::Toolkit::TextLabel;
36 const char* const BACKGROUND_IMAGE = DEMO_IMAGE_DIR "background-gradient.jpg";
37 const char* const TOOLBAR_IMAGE = DEMO_IMAGE_DIR "top-bar.png";
38 const char* const IMAGE = DEMO_IMAGE_DIR "background-magnifier.jpg";
40 const char* const TOOLBAR_TITLE = "Negotiate Size";
42 // This example contains size negotiation tests for TableView and Popup.
43 const char* const TABLEVIEW_BUTTON_1CELL_ID = "TABLEVIEW_BUTTON_1CELL";
44 const char* const TABLEVIEW_BUTTON_3CELL_ID = "TABLEVIEW_BUTTON_3CELL";
45 const char* const TABLEVIEW_BUTTON_3X3CELL_ID = "TABLEVIEW_BUTTON_3X3CELL";
46 const char* const TABLEVIEW_BUTTON_FIXED1_ID = "TABLEVIEW_BUTTON_FIXED1";
47 const char* const TABLEVIEW_BUTTON_FIXED2_ID = "TABLEVIEW_BUTTON_FIXED2";
48 const char* const TABLEVIEW_BUTTON_FIT1_ID = "TABLEVIEW_BUTTON_FIT1";
49 const char* const TABLEVIEW_BUTTON_FIT2_ID = "TABLEVIEW_BUTTON_FIT2";
50 const char* const TABLEVIEW_BUTTON_NATURAL1_ID = "TABLEVIEW_BUTTON_NATURAL1";
51 const char* const TABLEVIEW_BUTTON_NATURAL2_ID = "TABLEVIEW_BUTTON_NATURAL2";
52 const char* const TABLEVIEW_BUTTON_NATURAL3_ID = "TABLEVIEW_BUTTON_NATURAL3";
53 const char* const POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID = "POPUP_BUTTON_CONTENT_IMAGE_SCALE";
54 const char* const POPUP_BUTTON_CONTENT_IMAGE_FIT_ID = "POPUP_BUTTON_CONTENT_IMAGE_FIT";
55 const char* const POPUP_BUTTON_CONTENT_IMAGE_FILL_ID = "POPUP_BUTTON_CONTENT_IMAGE_FILL";
57 const ButtonItem TABLEVIEW_BUTTON_ITEMS[] = {
58 { TABLEVIEW_BUTTON_1CELL_ID, "1 Cell" },
59 { TABLEVIEW_BUTTON_3CELL_ID, "3 Cell" },
60 { TABLEVIEW_BUTTON_3X3CELL_ID, "3x3 Cells" },
61 { TABLEVIEW_BUTTON_FIXED1_ID, "Fixed 1" },
62 { TABLEVIEW_BUTTON_FIXED2_ID, "Fixed 2" },
63 { TABLEVIEW_BUTTON_FIT1_ID, "Fit Top Bottom" },
64 { TABLEVIEW_BUTTON_FIT2_ID, "Fit Middle" },
65 { TABLEVIEW_BUTTON_NATURAL1_ID, "Natural 1" },
66 { TABLEVIEW_BUTTON_NATURAL2_ID, "Natural 2" },
67 { TABLEVIEW_BUTTON_NATURAL3_ID, "Natural 3" },
68 { POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID, "Image Scale" },
69 { POPUP_BUTTON_CONTENT_IMAGE_FIT_ID, "Image Fit" },
70 { POPUP_BUTTON_CONTENT_IMAGE_FILL_ID, "Image Fill" },
73 const unsigned int TABLEVIEW_BUTTON_ITEMS_COUNT = sizeof( TABLEVIEW_BUTTON_ITEMS ) / sizeof( TABLEVIEW_BUTTON_ITEMS[0] );
75 } // anonymous namespace
79 * This example shows the usage of size negotiation.
81 class SizeNegotiationController: public ConnectionTracker, public Toolkit::ItemFactory
85 SizeNegotiationController( Application& application )
86 : mApplication( application )
88 // Connect to the Application's Init signal
89 mApplication.InitSignal().Connect( this, &SizeNegotiationController::Create );
92 ~SizeNegotiationController()
97 void Create( Application& application )
99 // The Init signal is received once (only) during the Application lifetime
100 Stage stage = Stage::GetCurrent();
102 // Respond to key events
103 stage.KeyEventSignal().Connect(this, &SizeNegotiationController::OnKeyEvent);
105 // Creates a default view with a default tool bar.
106 // The view is added to the stage.
107 mContentLayer = DemoHelper::CreateView( application,
114 mTitleActor = DemoHelper::CreateToolBarLabel( "CUSTOM_TOOLBAR_TITLE" );
115 mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, TOOLBAR_TITLE );
117 // Add title to the tool bar.
118 const float padding( DemoHelper::DEFAULT_VIEW_STYLE.mToolBarPadding );
119 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
121 mItemView = Toolkit::ItemView::New( *this );
122 mItemView.SetParentOrigin( ParentOrigin::CENTER );
123 mItemView.SetAnchorPoint( AnchorPoint::CENTER );
124 mItemView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
126 // Use a grid layout for tests
127 Vector2 stageSize = stage.GetSize();
128 Toolkit::ItemLayoutPtr gridLayout = Toolkit::DefaultItemLayout::New( Toolkit::DefaultItemLayout::LIST );
130 gridLayout->GetItemSize( 0, Vector3( stageSize ), itemSize );
131 itemSize.height = stageSize.y / 10;
132 gridLayout->SetItemSize( itemSize );
133 mItemView.AddLayout( *gridLayout );
135 mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
137 mContentLayer.Add( mItemView );
140 void StagePopup( Toolkit::Popup popup )
142 Stage::GetCurrent().Add( popup );
143 popup.SetDisplayState( Toolkit::Popup::SHOWN );
146 void OnPopupOutsideTouched()
150 mPopup.SetDisplayState( Toolkit::Popup::HIDDEN );
163 Toolkit::Popup CreatePopup()
165 Stage stage = Stage::GetCurrent();
166 const float POPUP_WIDTH_DP = stage.GetSize().width * 0.75f;
168 Toolkit::Popup popup = Toolkit::Popup::New();
169 popup.SetName( "popup" );
170 popup.SetParentOrigin( ParentOrigin::CENTER );
171 popup.SetAnchorPoint( AnchorPoint::CENTER );
172 popup.SetSize( POPUP_WIDTH_DP, 0.0f );
173 popup.SetProperty( Toolkit::Popup::Property::TAIL_VISIBILITY, false );
175 popup.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::OnPopupOutsideTouched );
176 popup.HiddenSignal().Connect( this, &SizeNegotiationController::PopupHidden );
181 bool OnButtonClicked( Toolkit::Button button )
183 if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
185 mPopup = CreatePopup();
186 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
187 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
189 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
190 table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
191 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
193 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
194 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
195 table.Add( backing );
199 StagePopup( mPopup );
201 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
203 mPopup = CreatePopup();
204 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
205 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
207 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
208 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
211 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
212 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
213 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
216 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
217 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
218 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
221 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
222 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
223 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
226 mPopup.SetContent( table );
228 StagePopup( mPopup );
230 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
232 mPopup = CreatePopup();
233 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
234 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
236 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
237 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
241 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
242 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
243 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
246 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
247 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
248 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
251 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
252 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
253 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
258 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
259 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
260 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
263 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
264 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
265 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
268 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
269 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
270 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
275 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
276 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
277 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
280 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
281 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
282 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
285 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
286 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
287 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
292 StagePopup( mPopup );
294 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
296 mPopup = CreatePopup();
297 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
298 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
300 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
301 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
302 table.SetFixedHeight( 0, 50.0f );
305 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
306 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
307 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
308 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
309 text.SetParentOrigin( ParentOrigin::CENTER );
310 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
311 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
312 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
314 table.Add( backing );
317 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
318 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
319 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
320 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
321 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
322 text.SetParentOrigin( ParentOrigin::CENTER );
323 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
324 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
326 table.Add( backing );
329 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
330 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
331 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
332 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
333 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
334 text.SetParentOrigin( ParentOrigin::CENTER );
335 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
336 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
338 table.Add( backing );
343 StagePopup( mPopup );
345 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
347 mPopup = CreatePopup();
348 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
349 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
351 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
352 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
353 table.SetFixedHeight( 0, 50.0f );
354 table.SetFixedHeight( 2, 50.0f );
357 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
358 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
359 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
360 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
361 text.SetAnchorPoint( AnchorPoint::CENTER );
362 text.SetParentOrigin( ParentOrigin::CENTER );
363 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
364 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
365 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
368 table.Add( backing );
371 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
372 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
373 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
374 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
375 text.SetAnchorPoint( AnchorPoint::CENTER );
376 text.SetParentOrigin( ParentOrigin::CENTER );
377 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
378 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
379 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
382 table.Add( backing );
385 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
386 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
387 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
388 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
389 text.SetAnchorPoint( AnchorPoint::CENTER );
390 text.SetParentOrigin( ParentOrigin::CENTER );
391 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
392 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
393 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
396 table.Add( backing );
401 StagePopup( mPopup );
403 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
405 mPopup = CreatePopup();
406 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
407 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
409 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
410 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
411 table.SetFitHeight( 0 );
412 table.SetFitHeight( 2 );
415 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
416 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
417 backing.SetSize( 0.0f, 100.0f );
419 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
420 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
421 text.SetAnchorPoint( AnchorPoint::CENTER );
422 text.SetParentOrigin( ParentOrigin::CENTER );
423 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
424 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
425 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
429 table.Add( backing );
432 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
433 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
435 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
436 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
437 text.SetAnchorPoint( AnchorPoint::CENTER );
438 text.SetParentOrigin( ParentOrigin::CENTER );
439 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
440 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
441 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
445 table.Add( backing );
448 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
449 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
450 backing.SetSize( 0.0f, 100.0f );
452 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
453 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
454 text.SetAnchorPoint( AnchorPoint::CENTER );
455 text.SetParentOrigin( ParentOrigin::CENTER );
456 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
457 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
458 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
462 table.Add( backing );
467 StagePopup( mPopup );
469 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
471 mPopup = CreatePopup();
472 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
473 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
475 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
476 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
477 table.SetFitHeight( 1 );
480 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
481 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
483 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
484 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
485 text.SetAnchorPoint( AnchorPoint::CENTER );
486 text.SetParentOrigin( ParentOrigin::CENTER );
487 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
488 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
489 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
493 table.Add( backing );
496 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
497 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
498 backing.SetSize( 0.0f, 200.0f );
500 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
501 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
502 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
503 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
504 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
506 text.SetAnchorPoint( AnchorPoint::CENTER );
507 text.SetParentOrigin( ParentOrigin::CENTER );
510 table.Add( backing );
513 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
514 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
516 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
517 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
518 text.SetAnchorPoint( AnchorPoint::CENTER );
519 text.SetParentOrigin( ParentOrigin::CENTER );
520 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
521 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
522 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
526 table.Add( backing );
531 StagePopup( mPopup );
533 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
535 mPopup = CreatePopup();
536 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
537 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
538 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
540 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
541 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
542 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
543 table.SetFitHeight( 0 );
544 table.SetFitHeight( 1 );
545 table.SetFitHeight( 2 );
548 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
549 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
550 backing.SetSize( 0.0f, 100.0f );
552 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
553 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
554 text.SetAnchorPoint( AnchorPoint::CENTER );
555 text.SetParentOrigin( ParentOrigin::CENTER );
556 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
557 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
558 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
562 table.Add( backing );
565 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
566 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
567 backing.SetSize( 0.0f, 200.0f );
569 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
570 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
571 text.SetAnchorPoint( AnchorPoint::CENTER );
572 text.SetParentOrigin( ParentOrigin::CENTER );
573 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
574 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
575 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
579 table.Add( backing );
582 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
583 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
584 backing.SetSize( 0.0f, 300.0f );
586 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
587 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
588 text.SetAnchorPoint( AnchorPoint::CENTER );
589 text.SetParentOrigin( ParentOrigin::CENTER );
590 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
591 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
592 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
596 table.Add( backing );
601 StagePopup( mPopup );
603 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
605 mPopup = CreatePopup();
606 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
607 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
608 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
610 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
611 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
612 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
613 table.SetFitHeight( 0 );
614 table.SetFitHeight( 1 );
617 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
618 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
619 backing.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
620 backing.SetSize( 0.0f, 100.0f );
622 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
623 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
624 text.SetAnchorPoint( AnchorPoint::CENTER );
625 text.SetParentOrigin( ParentOrigin::CENTER );
626 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
627 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
628 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
632 table.Add( backing );
635 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
636 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
637 backing.SetSize( 0.0f, 200.0f );
639 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
640 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
641 text.SetAnchorPoint( AnchorPoint::CENTER );
642 text.SetParentOrigin( ParentOrigin::CENTER );
643 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
644 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
645 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
649 table.Add( backing );
654 StagePopup( mPopup );
656 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
658 mPopup = CreatePopup();
659 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
660 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
661 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
663 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
664 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
665 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
666 table.SetFixedHeight( 0, 20.0f );
667 table.SetFitHeight( 1 );
670 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
671 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
673 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
674 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
675 text.SetAnchorPoint( AnchorPoint::CENTER );
676 text.SetParentOrigin( ParentOrigin::CENTER );
677 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
678 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
679 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
683 table.Add( backing );
686 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
687 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
688 backing.SetSize( 0.0f, 200.0f );
690 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
691 text.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
692 text.SetAnchorPoint( AnchorPoint::CENTER );
693 text.SetParentOrigin( ParentOrigin::CENTER );
694 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
695 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
696 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
700 table.Add( backing );
704 StagePopup( mPopup );
706 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
708 mPopup = CreatePopup();
709 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
710 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
712 Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE );
713 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
717 StagePopup( mPopup );
719 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
721 mPopup = CreatePopup();
722 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
723 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
725 Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE );
726 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
727 image.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
731 StagePopup( mPopup );
733 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
735 mPopup = CreatePopup();
736 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
737 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
739 Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE );
740 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
741 image.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO );
745 StagePopup( mPopup );
751 void OnKeyEvent( const KeyEvent& event )
753 if( event.state == KeyEvent::Down )
755 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
757 // Exit application when click back or escape.
763 public: // From ItemFactory
766 * @brief Return the number of items to display in the item view
768 * @return Return the number of items to display
770 virtual unsigned int GetNumberOfItems()
772 return TABLEVIEW_BUTTON_ITEMS_COUNT;
776 * @brief Create a new item to populate the item view with
778 * @param[in] itemId The index of the item to create
779 * @return Return the created actor for the given ID
781 virtual Actor NewItem(unsigned int itemId)
783 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
784 popupButton.SetName( TABLEVIEW_BUTTON_ITEMS[ itemId ].name );
785 popupButton.SetLabelText( TABLEVIEW_BUTTON_ITEMS[ itemId ].text );
786 popupButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
788 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
795 Application& mApplication;
796 Toolkit::Control mView; ///< The View instance.
797 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
798 Layer mContentLayer; ///< Content layer.
800 Toolkit::TextLabel mTitleActor; ///< Title text.
801 Toolkit::Popup mMenu; ///< The navigation menu todor.
802 Toolkit::Popup mPopup; ///< The current example popup.
804 Toolkit::ItemView mItemView; ///< ItemView to hold test images.
808 void RunTest( Application& application )
810 SizeNegotiationController test( application );
812 application.MainLoop();
815 // Entry point for Linux & SLP applications
816 int DALI_EXPORT_API main( int argc, char **argv )
818 Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
820 RunTest( application );