2 * Copyright (c) 2014 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;
27 // Define this so that it is interchangeable
28 // "DP" stands for Device independent Pixels
29 #define DP(x) DemoHelper::ScalePointSize(x)
41 const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg";
42 const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png";
44 const char* const TOOLBAR_TITLE = "Negotiate Size";
45 const int TOOLBAR_HEIGHT = 62;
47 const char* MENU_ICON_IMAGE = DALI_IMAGE_DIR "icon-cluster-none.png";
48 const char* MENU_ICON_IMAGE_SELECTED = DALI_IMAGE_DIR "icon-cluster-none-selected.png";
50 const char* const POPUPS_MENU_ID = "POPUPS_MENU";
51 const char* const TABLEVIEW_MENU_ID = "TABLEVIEW_MENU";
53 const char* const POPUP_BUTTON_EMPTY_ID = "POPUP_BUTTON_EMPTY";
54 const char* const POPUP_BUTTON_TITLE_ID = "POPUP_BUTTON_TITLE";
55 const char* const POPUP_BUTTON_BUTTONS_1_ID = "POPUP_BUTTON_BUTTONS_1";
56 const char* const POPUP_BUTTON_BUTTONS_2_ID = "POPUP_BUTTON_BUTTONS_2";
57 const char* const POPUP_BUTTON_TITLE_BUTTONS_ID = "POPUP_BUTTON_TITLE_BUTTONS";
58 const char* const POPUP_BUTTON_CONTENT_TEXT_ID = "POPUP_BUTTON_CONTENT_TEXT";
59 const char* const POPUP_BUTTON_CONTENT_IMAGE_ID = "POPUP_BUTTON_CONTENT_IMAGE";
60 const char* const POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID = "POPUP_BUTTON_CONTENT_IMAGE_SCALE";
61 const char* const POPUP_BUTTON_CONTENT_IMAGE_FIT_ID = "POPUP_BUTTON_CONTENT_IMAGE_FIT";
62 const char* const POPUP_BUTTON_CONTENT_IMAGE_FILL_ID = "POPUP_BUTTON_CONTENT_IMAGE_FILL";
63 const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT";
64 const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS";
65 const char* const POPUP_BUTTON_COMPLEX_ID = "POPUP_BUTTON_COMPLEX";
67 const char* const TABLEVIEW_BUTTON_EMPTY_ID = "TABLEVIEW_BUTTON_EMPTY";
68 const char* const TABLEVIEW_BUTTON_1CELL_ID = "TABLEVIEW_BUTTON_1CELL";
69 const char* const TABLEVIEW_BUTTON_3CELL_ID = "TABLEVIEW_BUTTON_3CELL";
70 const char* const TABLEVIEW_BUTTON_3X3CELL_ID = "TABLEVIEW_BUTTON_3X3CELL";
71 const char* const TABLEVIEW_BUTTON_FIXED1_ID = "TABLEVIEW_BUTTON_FIXED1";
72 const char* const TABLEVIEW_BUTTON_FIXED2_ID = "TABLEVIEW_BUTTON_FIXED2";
73 const char* const TABLEVIEW_BUTTON_FIT1_ID = "TABLEVIEW_BUTTON_FIT1";
74 const char* const TABLEVIEW_BUTTON_FIT2_ID = "TABLEVIEW_BUTTON_FIT2";
75 const char* const TABLEVIEW_BUTTON_NATURAL1_ID = "TABLEVIEW_BUTTON_NATURAL1";
76 const char* const TABLEVIEW_BUTTON_NATURAL2_ID = "TABLEVIEW_BUTTON_NATURAL2";
77 const char* const TABLEVIEW_BUTTON_NATURAL3_ID = "TABLEVIEW_BUTTON_NATURAL3";
79 const char* const OKAY_BUTTON_ID = "OKAY_BUTTON";
80 const char* const CANCEL_BUTTON_ID = "CANCEL_BUTTON";
82 const char* const CONTENT_TEXT = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
83 const char* const IMAGE1 = DALI_IMAGE_DIR "gallery-medium-5.jpg";
84 const char* const IMAGE2 = DALI_IMAGE_DIR "background-magnifier.jpg";
85 const char* const CHECKBOX_UNCHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-unselected.png";
86 const char* const CHECKBOX_CHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-selected.png";
88 const ButtonItem MENU_ITEMS[] = {
89 { POPUPS_MENU_ID, "Popups" },
90 { TABLEVIEW_MENU_ID, "TableView" }
93 const unsigned int MENU_ITEMS_COUNT = sizeof( MENU_ITEMS ) / sizeof( MENU_ITEMS[0] );
95 const ButtonItem POPUP_BUTTON_ITEMS[] = {
96 { POPUP_BUTTON_COMPLEX_ID, "Complex" },
97 { POPUP_BUTTON_EMPTY_ID, "Empty" },
98 { POPUP_BUTTON_TITLE_ID, "Title" },
99 { POPUP_BUTTON_BUTTONS_1_ID, "1 Button" },
100 { POPUP_BUTTON_BUTTONS_2_ID, "2 Buttons" },
101 { POPUP_BUTTON_TITLE_BUTTONS_ID, "Title & Buttons" },
102 { POPUP_BUTTON_CONTENT_TEXT_ID, "Text" },
103 { POPUP_BUTTON_CONTENT_IMAGE_ID, "Image" },
104 { POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID, "Image Scale" },
105 { POPUP_BUTTON_CONTENT_IMAGE_FIT_ID, "Image Fit" },
106 { POPUP_BUTTON_CONTENT_IMAGE_FILL_ID, "Image Fill" },
107 { POPUP_BUTTON_TITLE_CONTENT_TEXT_ID, "Title Text" },
108 { POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID, "Title, text, buttons" }
112 const int POPUP_BUTTON_ITEMS_COUNT = sizeof( POPUP_BUTTON_ITEMS ) / sizeof( POPUP_BUTTON_ITEMS[0] );
114 const ButtonItem TABLEVIEW_BUTTON_ITEMS[] = {
115 { TABLEVIEW_BUTTON_EMPTY_ID, "Empty" },
116 { TABLEVIEW_BUTTON_1CELL_ID, "1 Cell" },
117 { TABLEVIEW_BUTTON_3CELL_ID, "3 Cell" },
118 { TABLEVIEW_BUTTON_3X3CELL_ID, "3x3 Cells" },
119 { TABLEVIEW_BUTTON_FIXED1_ID, "Fixed 1" },
120 { TABLEVIEW_BUTTON_FIXED2_ID, "Fixed 2" },
121 { TABLEVIEW_BUTTON_FIT1_ID, "Fit Top Bottom" },
122 { TABLEVIEW_BUTTON_FIT2_ID, "Fit Middle" },
123 { TABLEVIEW_BUTTON_NATURAL1_ID, "Natural 1" },
124 { TABLEVIEW_BUTTON_NATURAL2_ID, "Natural 2" },
125 { TABLEVIEW_BUTTON_NATURAL3_ID, "Natural 3" },
128 const unsigned int TABLEVIEW_BUTTON_ITEMS_COUNT = sizeof( TABLEVIEW_BUTTON_ITEMS ) / sizeof( TABLEVIEW_BUTTON_ITEMS[0] );
135 * This example shows the usage of size negotiation.
137 class SizeNegotiationController: public ConnectionTracker, public Toolkit::ItemFactory
141 SizeNegotiationController( Application& application )
142 : mApplication( application ),
146 // Connect to the Application's Init signal
147 mApplication.InitSignal().Connect( this, &SizeNegotiationController::Create );
150 ~SizeNegotiationController()
152 // Nothing to do here
155 void Create( Application& application )
157 // The Init signal is received once (only) during the Application lifetime
159 Stage stage = Stage::GetCurrent();
161 // Respond to key events
162 stage.KeyEventSignal().Connect(this, &SizeNegotiationController::OnKeyEvent);
164 // Creates a default view with a default tool bar.
165 // The view is added to the stage.
166 mContentLayer = DemoHelper::CreateView( application,
173 mTitleActor = DemoHelper::CreateToolBarLabel( "CUSTOM_TOOLBAR_TITLE" );
177 // Create menu button
178 Toolkit::PushButton viewButton = Toolkit::PushButton::New();
179 viewButton.SetButtonImage( ResourceImage::New( MENU_ICON_IMAGE ) );
180 viewButton.SetSelectedImage( ResourceImage::New( MENU_ICON_IMAGE_SELECTED ) );
181 viewButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenu );
182 mToolBar.AddControl( viewButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
184 // Add title to the tool bar.
185 const float padding( DemoHelper::DEFAULT_VIEW_STYLE.mToolBarPadding );
186 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
188 mItemView = Toolkit::ItemView::New( *this );
189 mItemView.SetParentOrigin( ParentOrigin::CENTER );
190 mItemView.SetAnchorPoint( AnchorPoint::CENTER );
191 mItemView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
193 // Use a grid layout for tests
194 Vector2 stageSize = stage.GetSize();
195 Toolkit::ItemLayoutPtr gridLayout = Toolkit::DefaultItemLayout::New( Toolkit::DefaultItemLayout::LIST );
197 gridLayout->GetItemSize( 0, Vector3( stageSize ), itemSize );
198 itemSize.height = stageSize.y / 10;
199 gridLayout->SetItemSize( itemSize );
200 mItemView.AddLayout( *gridLayout );
202 mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
204 mContentLayer.Add( mItemView );
209 std::string subTitle = "";
221 subTitle = "TableView";
231 mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, std::string( std::string( TOOLBAR_TITLE ) + ": " + subTitle ) );
234 bool OnMenu( Toolkit::Button button )
242 Stage stage = Stage::GetCurrent();
243 const float popupWidth = stage.GetSize().x * 0.5f;
245 mMenu = Toolkit::Popup::New();
246 mMenu.SetParentOrigin( ParentOrigin::TOP_LEFT );
247 mMenu.SetAnchorPoint( AnchorPoint::TOP_LEFT );
249 mMenu.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::HideMenu );
250 mMenu.SetSize( popupWidth, 0.0f );
251 mMenu.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
253 Toolkit::TableView tableView = Toolkit::TableView::New( 0, 0 );
254 tableView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
255 tableView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
256 mMenu.Add( tableView );
258 for( unsigned int i = 0; i < MENU_ITEMS_COUNT; ++i )
260 Toolkit::PushButton menuButton = Toolkit::PushButton::New();
261 menuButton.SetName( MENU_ITEMS[ i ].name );
262 menuButton.SetLabel( MENU_ITEMS[ i ].text );
263 menuButton.SetButtonImage( Actor() );
264 menuButton.SetSelectedImage( Actor() );
265 menuButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenuSelect );
267 tableView.Add( menuButton );
268 tableView.SetFitHeight( i );
287 bool OnMenuSelect( Toolkit::Button button )
289 bool refresh = false;
291 if( button.GetName() == POPUPS_MENU_ID )
293 if( mDemoState != POPUP )
299 else if( button.GetName() == TABLEVIEW_MENU_ID )
301 if( mDemoState != TABLEVIEW )
304 mDemoState = TABLEVIEW;
319 Toolkit::Popup CreatePopup()
321 Stage stage = Stage::GetCurrent();
322 const float POPUP_WIDTH_DP = stage.GetSize().width * 0.75f;
324 Toolkit::Popup popup = Toolkit::Popup::New();
325 popup.SetName( "POPUP" );
326 popup.SetParentOrigin( ParentOrigin::CENTER );
327 popup.SetAnchorPoint( AnchorPoint::CENTER );
328 popup.SetSize( POPUP_WIDTH_DP, 0.0f );
331 popup.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::OnPopupOutsideTouched );
336 bool OnButtonClicked( Toolkit::Button button )
338 if( button.GetName() == POPUP_BUTTON_EMPTY_ID )
340 mPopup = CreatePopup();
344 else if( button.GetName() == POPUP_BUTTON_TITLE_ID )
346 mPopup = CreatePopup();
347 mPopup.SetTitle( "Popup!" );
351 else if( button.GetName() == POPUP_BUTTON_BUTTONS_1_ID )
353 mPopup = CreatePopup();
355 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
356 okayButton.SetName( OKAY_BUTTON_ID );
357 okayButton.SetLabel( "OK!" );
359 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
361 mPopup.AddButton( okayButton );
365 else if( button.GetName() == POPUP_BUTTON_BUTTONS_2_ID )
367 mPopup = CreatePopup();
369 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
370 cancelButton.SetName( CANCEL_BUTTON_ID );
371 cancelButton.SetLabel( "Cancel" );
373 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
375 mPopup.AddButton( cancelButton );
377 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
378 okayButton.SetName( OKAY_BUTTON_ID );
379 okayButton.SetLabel( "OK!" );
381 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
383 mPopup.AddButton( okayButton );
387 else if( button.GetName() == POPUP_BUTTON_TITLE_BUTTONS_ID )
389 mPopup = CreatePopup();
390 mPopup.SetTitle( "Popup!" );
392 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
393 cancelButton.SetName( CANCEL_BUTTON_ID );
394 cancelButton.SetLabel( "Cancel" );
396 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
398 mPopup.AddButton( cancelButton );
400 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
401 okayButton.SetName( OKAY_BUTTON_ID );
402 okayButton.SetLabel( "OK!" );
404 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
406 mPopup.AddButton( okayButton );
410 else if( button.GetName() == POPUP_BUTTON_CONTENT_TEXT_ID )
412 mPopup = CreatePopup();
414 TextLabel text = TextLabel::New( CONTENT_TEXT );
415 text.SetName( "POPUP_CONTENT_TEXT" );
416 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
417 text.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
418 text.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
419 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
420 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
421 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
427 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
429 mPopup = CreatePopup();
431 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
432 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
433 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
434 image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
440 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
442 mPopup = CreatePopup();
444 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
445 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
447 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
448 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
454 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
456 mPopup = CreatePopup();
458 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
459 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
461 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
462 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
463 image.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
469 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
471 mPopup = CreatePopup();
473 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
474 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
476 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
477 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
478 image.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO );
484 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
486 mPopup = CreatePopup();
487 mPopup.SetTitle( "Popup!" );
489 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
490 text.SetName( "POPUP_CONTENT_TEXT" );
491 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
492 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
493 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
494 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
500 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
502 mPopup = CreatePopup();
503 mPopup.SetTitle( "Popup!" );
505 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
506 text.SetName( "POPUP_CONTENT_TEXT" );
507 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
508 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
509 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
510 text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
514 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
515 cancelButton.SetName( CANCEL_BUTTON_ID );
516 cancelButton.SetLabel( "Cancel" );
518 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
520 mPopup.AddButton( cancelButton );
522 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
523 okayButton.SetName( OKAY_BUTTON_ID );
524 okayButton.SetLabel( "OK!" );
526 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
528 mPopup.AddButton( okayButton );
532 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
534 mPopup = CreatePopup();
535 mPopup.SetTitle( "Warning" );
538 Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
539 content.SetName( "COMPLEX_TABLEVIEW" );
540 content.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
541 content.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
542 content.SetFitHeight( 0 );
543 content.SetFitHeight( 1 );
544 content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
548 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
549 text.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
550 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
551 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
553 content.AddChild( text, Toolkit::TableView::CellPosition( 0, 0 ) );
558 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) );
559 image.SetName( "COMPLEX_IMAGE" );
560 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
561 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
562 image.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 0.0f ) );
563 content.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) );
568 Toolkit::TableView root = Toolkit::TableView::New( 1, 2 );
569 root.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
570 root.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
571 root.SetFitHeight( 0 );
572 root.SetFitWidth( 0 );
573 root.SetPadding( Padding( 0.0f, 0.0f, 0.0f, 20.0f ) );
575 Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New();
576 checkBox.SetSize( 48, 48 );
578 root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
580 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Don't show again" );
581 Actor textActor = text;
582 textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
584 root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
586 content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0 ) );
589 mPopup.Add( content );
592 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
593 cancelButton.SetName( CANCEL_BUTTON_ID );
594 cancelButton.SetLabel( "Cancel" );
596 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
598 mPopup.AddButton( cancelButton );
600 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
601 okayButton.SetName( OKAY_BUTTON_ID );
602 okayButton.SetLabel( "OK!" );
604 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
606 mPopup.AddButton( okayButton );
610 else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
612 mPopup = CreatePopup();
613 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
614 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
617 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
618 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
624 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
626 mPopup = CreatePopup();
627 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
628 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
631 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
632 table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
633 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
635 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
636 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
637 table.Add( backing );
643 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
645 mPopup = CreatePopup();
646 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
647 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
650 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
651 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
654 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
655 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
656 table.Add( backing );
659 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
660 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
661 table.Add( backing );
664 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
665 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
666 table.Add( backing );
673 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
675 mPopup = CreatePopup();
676 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
677 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
680 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
681 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
685 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
686 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
687 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
690 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
691 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
692 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
695 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
696 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
697 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
702 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
703 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
704 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
707 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
708 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
709 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
712 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
713 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
714 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
719 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
720 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
721 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
724 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
725 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
726 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
729 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
730 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
731 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
738 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
740 mPopup = CreatePopup();
741 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
742 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
745 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
746 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
747 table.SetFixedHeight( 0, 50.0f );
750 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
751 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
752 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
753 text.SetParentOrigin( ParentOrigin::CENTER );
754 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
755 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
756 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
758 table.Add( backing );
761 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
762 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
763 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
764 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
765 text.SetParentOrigin( ParentOrigin::CENTER );
766 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
767 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
769 table.Add( backing );
772 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
773 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
774 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
775 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
776 text.SetParentOrigin( ParentOrigin::CENTER );
777 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
778 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
780 table.Add( backing );
787 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
789 mPopup = CreatePopup();
790 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
791 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
794 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
795 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
796 table.SetFixedHeight( 0, 50.0f );
797 table.SetFixedHeight( 2, 50.0f );
800 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
801 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
802 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
803 text.SetAnchorPoint( AnchorPoint::CENTER );
804 text.SetParentOrigin( ParentOrigin::CENTER );
805 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
806 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
807 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
810 table.Add( backing );
813 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
814 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
815 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
816 text.SetAnchorPoint( AnchorPoint::CENTER );
817 text.SetParentOrigin( ParentOrigin::CENTER );
818 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
819 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
820 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
823 table.Add( backing );
826 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
827 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
828 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
829 text.SetAnchorPoint( AnchorPoint::CENTER );
830 text.SetParentOrigin( ParentOrigin::CENTER );
831 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
832 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
833 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
836 table.Add( backing );
843 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
845 mPopup = CreatePopup();
846 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
847 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
850 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
851 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
852 table.SetFitHeight( 0 );
853 table.SetFitHeight( 2 );
856 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
857 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
858 backing.SetSize( 0.0f, 100.0f );
860 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
861 text.SetAnchorPoint( AnchorPoint::CENTER );
862 text.SetParentOrigin( ParentOrigin::CENTER );
863 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
864 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
865 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
869 table.Add( backing );
872 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
873 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
875 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
876 text.SetAnchorPoint( AnchorPoint::CENTER );
877 text.SetParentOrigin( ParentOrigin::CENTER );
878 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
879 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
880 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
884 table.Add( backing );
887 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
888 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
889 backing.SetSize( 0.0f, 100.0f );
891 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
892 text.SetAnchorPoint( AnchorPoint::CENTER );
893 text.SetParentOrigin( ParentOrigin::CENTER );
894 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
895 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
896 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
900 table.Add( backing );
907 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
909 mPopup = CreatePopup();
910 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
911 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
913 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
914 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
915 table.SetFitHeight( 1 );
918 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
919 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
921 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
922 text.SetAnchorPoint( AnchorPoint::CENTER );
923 text.SetParentOrigin( ParentOrigin::CENTER );
924 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
925 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
926 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
930 table.Add( backing );
933 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
934 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
935 backing.SetSize( 0.0f, 200.0f );
937 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
938 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
939 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
940 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
942 text.SetAnchorPoint( AnchorPoint::CENTER );
943 text.SetParentOrigin( ParentOrigin::CENTER );
946 table.Add( backing );
949 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
950 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
952 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
953 text.SetAnchorPoint( AnchorPoint::CENTER );
954 text.SetParentOrigin( ParentOrigin::CENTER );
955 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
956 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
957 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
961 table.Add( backing );
968 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
970 mPopup = CreatePopup();
971 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
972 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
973 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
975 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
976 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
977 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
978 table.SetFitHeight( 0 );
979 table.SetFitHeight( 1 );
980 table.SetFitHeight( 2 );
983 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
984 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
985 backing.SetSize( 0.0f, 100.0f );
987 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
988 text.SetAnchorPoint( AnchorPoint::CENTER );
989 text.SetParentOrigin( ParentOrigin::CENTER );
990 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
991 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
992 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
996 table.Add( backing );
999 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
1000 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1001 backing.SetSize( 0.0f, 200.0f );
1003 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1004 text.SetAnchorPoint( AnchorPoint::CENTER );
1005 text.SetParentOrigin( ParentOrigin::CENTER );
1006 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1007 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1008 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1010 backing.Add( text );
1012 table.Add( backing );
1015 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1016 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1017 backing.SetSize( 0.0f, 300.0f );
1019 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1020 text.SetAnchorPoint( AnchorPoint::CENTER );
1021 text.SetParentOrigin( ParentOrigin::CENTER );
1022 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1023 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1024 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1026 backing.Add( text );
1028 table.Add( backing );
1031 mPopup.Add( table );
1035 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
1037 mPopup = CreatePopup();
1038 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1039 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1040 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1042 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1043 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1044 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1045 table.SetFitHeight( 0 );
1046 table.SetFitHeight( 1 );
1049 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1050 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1051 backing.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
1052 backing.SetSize( 0.0f, 100.0f );
1054 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1055 text.SetAnchorPoint( AnchorPoint::CENTER );
1056 text.SetParentOrigin( ParentOrigin::CENTER );
1057 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1058 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1059 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1061 backing.Add( text );
1063 table.Add( backing );
1066 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1067 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1068 backing.SetSize( 0.0f, 200.0f );
1070 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1071 text.SetAnchorPoint( AnchorPoint::CENTER );
1072 text.SetParentOrigin( ParentOrigin::CENTER );
1073 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1074 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1075 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1077 backing.Add( text );
1079 table.Add( backing );
1082 mPopup.Add( table );
1086 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
1088 mPopup = CreatePopup();
1089 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1090 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1091 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1093 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1094 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1095 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1096 table.SetFixedHeight( 0, 20.0f );
1097 table.SetFitHeight( 1 );
1100 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1101 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1103 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1104 text.SetAnchorPoint( AnchorPoint::CENTER );
1105 text.SetParentOrigin( ParentOrigin::CENTER );
1106 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1107 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1108 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1110 backing.Add( text );
1112 table.Add( backing );
1115 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1116 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1117 backing.SetSize( 0.0f, 200.0f );
1119 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1120 text.SetAnchorPoint( AnchorPoint::CENTER );
1121 text.SetParentOrigin( ParentOrigin::CENTER );
1122 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1123 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1124 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1126 backing.Add( text );
1128 table.Add( backing );
1131 mPopup.Add( table );
1135 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
1146 void OnPopupOutsideTouched()
1154 void OnKeyEvent( const KeyEvent& event )
1156 if( event.state == KeyEvent::Down )
1158 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
1160 // Exit application when click back or escape.
1161 mApplication.Quit();
1166 public: // From ItemFactory
1169 * @brief Return the number of items to display in the item view
1171 * @return Return the number of items to display
1173 virtual unsigned int GetNumberOfItems()
1175 switch( mDemoState )
1179 return POPUP_BUTTON_ITEMS_COUNT;
1184 return TABLEVIEW_BUTTON_ITEMS_COUNT;
1197 * @brief Create a new item to populate the item view with
1199 * @param[in] itemId The index of the item to create
1200 * @return Return the created actor for the given ID
1202 virtual Actor NewItem(unsigned int itemId)
1204 const ButtonItem* buttonDataArray = NULL;
1205 switch( mDemoState )
1209 buttonDataArray = POPUP_BUTTON_ITEMS;
1215 buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
1225 if( buttonDataArray )
1227 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
1228 popupButton.SetName( buttonDataArray[ itemId ].name );
1229 popupButton.SetLabel( buttonDataArray[ itemId ].text );
1230 popupButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
1232 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
1248 Application& mApplication;
1249 Toolkit::Control mView; ///< The View instance.
1250 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1251 Layer mContentLayer; ///< Content layer
1253 Toolkit::TextLabel mTitleActor; ///< Title text
1255 Toolkit::Popup mMenu; ///< The navigation menu
1256 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
1258 Toolkit::Popup mPopup;
1260 Toolkit::ItemView mItemView; ///< ItemView to hold test images
1262 DemoState mDemoState;
1265 void RunTest( Application& application )
1267 SizeNegotiationController test( application );
1269 application.MainLoop();
1272 // Entry point for Linux & SLP applications
1274 int main( int argc, char **argv )
1276 Application application = Application::New( &argc, &argv, DALI_DEMO_THEME_PATH );
1278 RunTest( application );