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>
24 using Dali::Toolkit::TextLabel;
26 // Define this so that it is interchangeable
27 // "DP" stands for Device independent Pixels
28 #define DP(x) DemoHelper::ScalePointSize(x)
40 const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg";
41 const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png";
43 const char* const TOOLBAR_TITLE = "Negotiate Size";
44 const int TOOLBAR_HEIGHT = 62;
46 const char* MENU_ICON_IMAGE = DALI_IMAGE_DIR "icon-cluster-none.png";
48 const char* const PUSHBUTTON_BUTTON_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
49 const char* const PUSHBUTTON_PRESS_IMAGE = DALI_IMAGE_DIR "button-down.9.png";
51 const char* const POPUPS_MENU_ID = "POPUPS_MENU";
52 const char* const TABLEVIEW_MENU_ID = "TABLEVIEW_MENU";
54 const char* const POPUP_BUTTON_EMPTY_ID = "POPUP_BUTTON_EMPTY";
55 const char* const POPUP_BUTTON_TITLE_ID = "POPUP_BUTTON_TITLE";
56 const char* const POPUP_BUTTON_BUTTONS_1_ID = "POPUP_BUTTON_BUTTONS_1";
57 const char* const POPUP_BUTTON_BUTTONS_2_ID = "POPUP_BUTTON_BUTTONS_2";
58 const char* const POPUP_BUTTON_TITLE_BUTTONS_ID = "POPUP_BUTTON_TITLE_BUTTONS";
59 const char* const POPUP_BUTTON_CONTENT_TEXT_ID = "POPUP_BUTTON_CONTENT_TEXT";
60 const char* const POPUP_BUTTON_CONTENT_IMAGE_ID = "POPUP_BUTTON_CONTENT_IMAGE";
61 const char* const POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID = "POPUP_BUTTON_CONTENT_IMAGE_SCALE";
62 const char* const POPUP_BUTTON_CONTENT_IMAGE_FIT_ID = "POPUP_BUTTON_CONTENT_IMAGE_FIT";
63 const char* const POPUP_BUTTON_CONTENT_IMAGE_FILL_ID = "POPUP_BUTTON_CONTENT_IMAGE_FILL";
64 const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT";
65 const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS";
66 const char* const POPUP_BUTTON_COMPLEX_ID = "POPUP_BUTTON_COMPLEX";
68 const char* const TABLEVIEW_BUTTON_EMPTY_ID = "TABLEVIEW_BUTTON_EMPTY";
69 const char* const TABLEVIEW_BUTTON_1CELL_ID = "TABLEVIEW_BUTTON_1CELL";
70 const char* const TABLEVIEW_BUTTON_3CELL_ID = "TABLEVIEW_BUTTON_3CELL";
71 const char* const TABLEVIEW_BUTTON_3X3CELL_ID = "TABLEVIEW_BUTTON_3X3CELL";
72 const char* const TABLEVIEW_BUTTON_FIXED1_ID = "TABLEVIEW_BUTTON_FIXED1";
73 const char* const TABLEVIEW_BUTTON_FIXED2_ID = "TABLEVIEW_BUTTON_FIXED2";
74 const char* const TABLEVIEW_BUTTON_FIT1_ID = "TABLEVIEW_BUTTON_FIT1";
75 const char* const TABLEVIEW_BUTTON_FIT2_ID = "TABLEVIEW_BUTTON_FIT2";
76 const char* const TABLEVIEW_BUTTON_NATURAL1_ID = "TABLEVIEW_BUTTON_NATURAL1";
77 const char* const TABLEVIEW_BUTTON_NATURAL2_ID = "TABLEVIEW_BUTTON_NATURAL2";
78 const char* const TABLEVIEW_BUTTON_NATURAL3_ID = "TABLEVIEW_BUTTON_NATURAL3";
80 const char* const OKAY_BUTTON_ID = "OKAY_BUTTON";
81 const char* const CANCEL_BUTTON_ID = "CANCEL_BUTTON";
83 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.";
84 const char* const IMAGE1 = DALI_IMAGE_DIR "gallery-medium-5.jpg";
85 const char* const IMAGE2 = DALI_IMAGE_DIR "background-magnifier.jpg";
86 const char* const CHECKBOX_UNCHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-unselected.png";
87 const char* const CHECKBOX_CHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-selected.png";
89 const ButtonItem MENU_ITEMS[] = {
90 { POPUPS_MENU_ID, "Popups" },
91 { TABLEVIEW_MENU_ID, "TableView" }
94 const unsigned int MENU_ITEMS_COUNT = sizeof( MENU_ITEMS ) / sizeof( MENU_ITEMS[0] );
96 const ButtonItem POPUP_BUTTON_ITEMS[] = {
97 { POPUP_BUTTON_COMPLEX_ID, "Complex" },
98 { POPUP_BUTTON_EMPTY_ID, "Empty" },
99 { POPUP_BUTTON_TITLE_ID, "Title" },
100 { POPUP_BUTTON_BUTTONS_1_ID, "1 Button" },
101 { POPUP_BUTTON_BUTTONS_2_ID, "2 Buttons" },
102 { POPUP_BUTTON_TITLE_BUTTONS_ID, "Title & Buttons" },
103 { POPUP_BUTTON_CONTENT_TEXT_ID, "Text" },
104 { POPUP_BUTTON_CONTENT_IMAGE_ID, "Image" },
105 { POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID, "Image Scale" },
106 { POPUP_BUTTON_CONTENT_IMAGE_FIT_ID, "Image Fit" },
107 { POPUP_BUTTON_CONTENT_IMAGE_FILL_ID, "Image Fill" },
108 { POPUP_BUTTON_TITLE_CONTENT_TEXT_ID, "Title Text" },
109 { POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID, "Title, text, buttons" }
113 const int POPUP_BUTTON_ITEMS_COUNT = sizeof( POPUP_BUTTON_ITEMS ) / sizeof( POPUP_BUTTON_ITEMS[0] );
115 const ButtonItem TABLEVIEW_BUTTON_ITEMS[] = {
116 { TABLEVIEW_BUTTON_EMPTY_ID, "Empty" },
117 { TABLEVIEW_BUTTON_1CELL_ID, "1 Cell" },
118 { TABLEVIEW_BUTTON_3CELL_ID, "3 Cell" },
119 { TABLEVIEW_BUTTON_3X3CELL_ID, "3x3 Cells" },
120 { TABLEVIEW_BUTTON_FIXED1_ID, "Fixed 1" },
121 { TABLEVIEW_BUTTON_FIXED2_ID, "Fixed 2" },
122 { TABLEVIEW_BUTTON_FIT1_ID, "Fit Top Bottom" },
123 { TABLEVIEW_BUTTON_FIT2_ID, "Fit Middle" },
124 { TABLEVIEW_BUTTON_NATURAL1_ID, "Natural 1" },
125 { TABLEVIEW_BUTTON_NATURAL2_ID, "Natural 2" },
126 { TABLEVIEW_BUTTON_NATURAL3_ID, "Natural 3" },
129 const unsigned int TABLEVIEW_BUTTON_ITEMS_COUNT = sizeof( TABLEVIEW_BUTTON_ITEMS ) / sizeof( TABLEVIEW_BUTTON_ITEMS[0] );
136 * This example shows the usage of size negotiation.
138 class SizeNegotiationController: public ConnectionTracker, public Toolkit::ItemFactory
142 SizeNegotiationController( Application& application )
143 : mApplication( application ),
147 // Connect to the Application's Init signal
148 mApplication.InitSignal().Connect( this, &SizeNegotiationController::Create );
151 ~SizeNegotiationController()
153 // Nothing to do here
156 void Create( Application& application )
158 // The Init signal is received once (only) during the Application lifetime
160 DemoHelper::RequestThemeChange();
162 Stage stage = Stage::GetCurrent();
164 // Respond to key events
165 stage.KeyEventSignal().Connect(this, &SizeNegotiationController::OnKeyEvent);
167 // Creates a default view with a default tool bar.
168 // The view is added to the stage.
169 mContentLayer = DemoHelper::CreateView( application,
176 mTitleActor = DemoHelper::CreateToolBarLabel( "CUSTOM_TOOLBAR_TITLE" );
180 // Create menu button
181 Toolkit::PushButton viewButton = Toolkit::PushButton::New();
182 viewButton.SetBackgroundImage( ResourceImage::New( MENU_ICON_IMAGE ) );
183 viewButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenu );
184 mToolBar.AddControl( viewButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
186 // Add title to the tool bar.
187 const float padding( DemoHelper::DEFAULT_VIEW_STYLE.mToolBarPadding );
188 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
190 mItemView = Toolkit::ItemView::New( *this );
191 mItemView.SetParentOrigin( ParentOrigin::CENTER );
192 mItemView.SetAnchorPoint( AnchorPoint::CENTER );
193 mItemView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
195 // Use a grid layout for tests
196 Toolkit::GridLayoutPtr gridLayout = Toolkit::GridLayout::New();
197 gridLayout->SetNumberOfColumns( 2 );
198 gridLayout->SetTopMargin( DP(TOOLBAR_HEIGHT) + DP(20.0f) );
199 gridLayout->SetBottomMargin( DP(100.0f) );
200 gridLayout->SetRowSpacing( DP(20.0f) );
201 mItemView.AddLayout( *gridLayout );
203 Vector2 stageSize = stage.GetSize();
204 float layoutWidth = Toolkit::IsHorizontal( gridLayout->GetOrientation() ) ? stageSize.height : stageSize.width;
205 float gridItemSize = ( layoutWidth / gridLayout->GetNumberOfColumns() ) * 0.5f;
206 gridLayout->SetScrollSpeedFactor( gridLayout->GetNumberOfColumns() / gridItemSize * 0.5f );
208 mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
210 mContentLayer.Add( mItemView );
215 std::string subTitle = "";
227 subTitle = "TableView";
237 mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, std::string( std::string( TOOLBAR_TITLE ) + ": " + subTitle ) );
240 bool OnMenu( Toolkit::Button button )
248 Stage stage = Stage::GetCurrent();
249 const float popupWidth = stage.GetSize().x * 0.5f;
251 mMenu = Toolkit::Popup::New();
252 mMenu.SetParentOrigin( ParentOrigin::TOP_LEFT );
253 mMenu.SetAnchorPoint( AnchorPoint::TOP_LEFT );
255 mMenu.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::HideMenu );
256 mMenu.SetSize( popupWidth, 0.0f );
257 mMenu.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
259 Toolkit::TableView tableView = Toolkit::TableView::New( 0, 0 );
260 tableView.SetResizePolicy( FILL_TO_PARENT, WIDTH );
261 tableView.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
262 mMenu.Add( tableView );
264 for( unsigned int i = 0; i < MENU_ITEMS_COUNT; ++i )
266 Toolkit::PushButton menuButton = Toolkit::PushButton::New();
267 menuButton.SetName( MENU_ITEMS[ i ].name );
268 menuButton.SetLabel( MENU_ITEMS[ i ].text );
269 menuButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenuSelect );
271 tableView.Add( menuButton );
272 tableView.SetFitHeight( i );
291 bool OnMenuSelect( Toolkit::Button button )
293 bool refresh = false;
295 if( button.GetName() == POPUPS_MENU_ID )
297 if( mDemoState != POPUP )
303 else if( button.GetName() == TABLEVIEW_MENU_ID )
305 if( mDemoState != TABLEVIEW )
308 mDemoState = TABLEVIEW;
323 Toolkit::Popup CreatePopup()
325 Stage stage = Stage::GetCurrent();
326 const float POPUP_WIDTH_DP = stage.GetSize().width * 0.75f;
328 Toolkit::Popup popup = Toolkit::Popup::New();
329 popup.SetName( "POPUP" );
330 popup.SetParentOrigin( ParentOrigin::CENTER );
331 popup.SetAnchorPoint( AnchorPoint::CENTER );
332 popup.SetSize( POPUP_WIDTH_DP, 0.0f );
335 popup.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::OnPopupOutsideTouched );
340 bool OnButtonClicked( Toolkit::Button button )
342 if( button.GetName() == POPUP_BUTTON_EMPTY_ID )
344 mPopup = CreatePopup();
348 else if( button.GetName() == POPUP_BUTTON_TITLE_ID )
350 mPopup = CreatePopup();
351 mPopup.SetTitle( "Popup!" );
355 else if( button.GetName() == POPUP_BUTTON_BUTTONS_1_ID )
357 mPopup = CreatePopup();
359 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
360 okayButton.SetName( OKAY_BUTTON_ID );
361 okayButton.SetLabel( "OK!" );
362 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
363 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
365 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
367 mPopup.AddButton( okayButton );
371 else if( button.GetName() == POPUP_BUTTON_BUTTONS_2_ID )
373 mPopup = CreatePopup();
375 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
376 cancelButton.SetName( CANCEL_BUTTON_ID );
377 cancelButton.SetLabel( "Cancel" );
378 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
379 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
381 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
383 mPopup.AddButton( cancelButton );
385 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
386 okayButton.SetName( OKAY_BUTTON_ID );
387 okayButton.SetLabel( "OK!" );
388 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
389 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
391 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
393 mPopup.AddButton( okayButton );
397 else if( button.GetName() == POPUP_BUTTON_TITLE_BUTTONS_ID )
399 mPopup = CreatePopup();
400 mPopup.SetTitle( "Popup!" );
402 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
403 cancelButton.SetName( CANCEL_BUTTON_ID );
404 cancelButton.SetLabel( "Cancel" );
405 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
406 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
408 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
410 mPopup.AddButton( cancelButton );
412 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
413 okayButton.SetName( OKAY_BUTTON_ID );
414 okayButton.SetLabel( "OK!" );
415 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
416 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
418 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
420 mPopup.AddButton( okayButton );
424 else if( button.GetName() == POPUP_BUTTON_CONTENT_TEXT_ID )
426 mPopup = CreatePopup();
428 TextLabel text = TextLabel::New( CONTENT_TEXT );
429 text.SetName( "POPUP_CONTENT_TEXT" );
430 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
431 text.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
432 text.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
433 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
439 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
441 mPopup = CreatePopup();
443 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
444 image.SetResizePolicy( FILL_TO_PARENT, WIDTH );
445 image.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
446 image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
452 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
454 mPopup = CreatePopup();
456 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
457 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
459 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
460 image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
466 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
468 mPopup = CreatePopup();
470 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
471 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
473 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
474 image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
475 image.SetSizeScalePolicy( FIT_WITH_ASPECT_RATIO );
481 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
483 mPopup = CreatePopup();
485 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
486 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
488 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
489 image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
490 image.SetSizeScalePolicy( FILL_WITH_ASPECT_RATIO );
496 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
498 mPopup = CreatePopup();
499 mPopup.SetTitle( "Popup!" );
501 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
502 text.SetName( "POPUP_CONTENT_TEXT" );
503 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
504 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
505 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
506 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
512 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
514 mPopup = CreatePopup();
515 mPopup.SetTitle( "Popup!" );
517 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
518 text.SetName( "POPUP_CONTENT_TEXT" );
519 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
520 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
521 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
522 text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
526 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
527 cancelButton.SetName( CANCEL_BUTTON_ID );
528 cancelButton.SetLabel( "Cancel" );
529 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
530 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
532 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
534 mPopup.AddButton( cancelButton );
536 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
537 okayButton.SetName( OKAY_BUTTON_ID );
538 okayButton.SetLabel( "OK!" );
539 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
540 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
542 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
544 mPopup.AddButton( okayButton );
548 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
550 mPopup = CreatePopup();
551 mPopup.SetTitle( "Warning" );
554 Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
555 content.SetName( "COMPLEX_TABLEVIEW" );
556 content.SetResizePolicy( FILL_TO_PARENT, WIDTH );
557 content.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
558 content.SetFitHeight( 0 );
559 content.SetFitHeight( 1 );
560 content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
564 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
565 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
566 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
567 text.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
569 content.AddChild( text, Toolkit::TableView::CellPosition( 0, 0 ) );
574 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) );
575 image.SetName( "COMPLEX_IMAGE" );
576 image.SetResizePolicy( FILL_TO_PARENT, WIDTH );
577 image.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
578 image.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 0.0f ) );
579 content.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) );
584 Toolkit::TableView root = Toolkit::TableView::New( 1, 2 );
585 root.SetResizePolicy( FILL_TO_PARENT, WIDTH );
586 root.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
587 root.SetFitHeight( 0 );
588 root.SetFitWidth( 0 );
589 root.SetPadding( Padding( 0.0f, 0.0f, 0.0f, 20.0f ) );
591 Dali::Image unchecked = Dali::ResourceImage::New( CHECKBOX_UNCHECKED_IMAGE );
592 Dali::Image checked = Dali::ResourceImage::New( CHECKBOX_CHECKED_IMAGE );
593 Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New();
594 checkBox.SetBackgroundImage( unchecked );
595 checkBox.SetSelectedImage( checked );
596 checkBox.SetSize( 48, 48 );
598 root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
600 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Don't show again" );
601 Actor textActor = text;
602 textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
604 root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
606 content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0 ) );
609 mPopup.Add( content );
612 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
613 cancelButton.SetName( CANCEL_BUTTON_ID );
614 cancelButton.SetLabel( "Cancel" );
615 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
616 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
618 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
620 mPopup.AddButton( cancelButton );
622 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
623 okayButton.SetName( OKAY_BUTTON_ID );
624 okayButton.SetLabel( "OK!" );
625 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
626 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
628 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
630 mPopup.AddButton( okayButton );
634 else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
636 mPopup = CreatePopup();
637 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
638 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
641 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
642 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
648 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
650 mPopup = CreatePopup();
651 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
652 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
655 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
656 table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
657 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
659 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
660 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
661 table.Add( backing );
667 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
669 mPopup = CreatePopup();
670 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
671 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
674 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
675 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
678 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
679 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
680 table.Add( backing );
683 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
684 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
685 table.Add( backing );
688 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
689 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
690 table.Add( backing );
697 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
699 mPopup = CreatePopup();
700 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
701 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
704 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
705 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
709 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
710 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
711 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
714 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
715 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
716 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
719 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
720 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
721 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
726 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
727 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
728 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
731 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
732 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
733 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
736 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
737 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
738 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
743 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
744 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
745 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
748 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
749 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
750 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
753 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
754 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
755 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
762 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
764 mPopup = CreatePopup();
765 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
766 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
769 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
770 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
771 table.SetFixedHeight( 0, 50.0f );
774 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
775 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
776 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
777 text.SetParentOrigin( ParentOrigin::CENTER );
778 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
779 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
780 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
782 table.Add( backing );
785 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
786 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
787 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
788 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
789 text.SetParentOrigin( ParentOrigin::CENTER );
790 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
791 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
793 table.Add( backing );
796 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
797 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
798 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
799 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
800 text.SetParentOrigin( ParentOrigin::CENTER );
801 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
802 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
804 table.Add( backing );
811 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
813 mPopup = CreatePopup();
814 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
815 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
818 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
819 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
820 table.SetFixedHeight( 0, 50.0f );
821 table.SetFixedHeight( 2, 50.0f );
824 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
825 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
826 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
827 text.SetAnchorPoint( AnchorPoint::CENTER );
828 text.SetParentOrigin( ParentOrigin::CENTER );
829 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
830 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
831 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
834 table.Add( backing );
837 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
838 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
839 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
840 text.SetAnchorPoint( AnchorPoint::CENTER );
841 text.SetParentOrigin( ParentOrigin::CENTER );
842 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
843 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
844 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
847 table.Add( backing );
850 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
851 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
852 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
853 text.SetAnchorPoint( AnchorPoint::CENTER );
854 text.SetParentOrigin( ParentOrigin::CENTER );
855 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
856 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
857 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
860 table.Add( backing );
867 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
869 mPopup = CreatePopup();
870 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
871 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
874 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
875 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
876 table.SetFitHeight( 0 );
877 table.SetFitHeight( 2 );
880 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
881 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
882 backing.SetSize( 0.0f, 100.0f );
884 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
885 text.SetAnchorPoint( AnchorPoint::CENTER );
886 text.SetParentOrigin( ParentOrigin::CENTER );
887 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
888 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
889 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
893 table.Add( backing );
896 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
897 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
899 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
900 text.SetAnchorPoint( AnchorPoint::CENTER );
901 text.SetParentOrigin( ParentOrigin::CENTER );
902 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
903 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
904 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
908 table.Add( backing );
911 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
912 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
913 backing.SetSize( 0.0f, 100.0f );
915 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
916 text.SetAnchorPoint( AnchorPoint::CENTER );
917 text.SetParentOrigin( ParentOrigin::CENTER );
918 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
919 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
920 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
924 table.Add( backing );
931 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
933 mPopup = CreatePopup();
934 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
935 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
937 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
938 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
939 table.SetFitHeight( 1 );
942 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
943 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
945 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
946 text.SetAnchorPoint( AnchorPoint::CENTER );
947 text.SetParentOrigin( ParentOrigin::CENTER );
948 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
949 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
950 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
954 table.Add( backing );
957 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
958 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
959 backing.SetSize( 0.0f, 200.0f );
961 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
962 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
963 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
964 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
966 text.SetAnchorPoint( AnchorPoint::CENTER );
967 text.SetParentOrigin( ParentOrigin::CENTER );
970 table.Add( backing );
973 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
974 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
976 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
977 text.SetAnchorPoint( AnchorPoint::CENTER );
978 text.SetParentOrigin( ParentOrigin::CENTER );
979 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
980 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
981 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
985 table.Add( backing );
992 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
994 mPopup = CreatePopup();
995 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, WIDTH );
996 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
997 mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
999 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1000 table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1001 table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
1002 table.SetFitHeight( 0 );
1003 table.SetFitHeight( 1 );
1004 table.SetFitHeight( 2 );
1007 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1008 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1009 backing.SetSize( 0.0f, 100.0f );
1011 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1012 text.SetAnchorPoint( AnchorPoint::CENTER );
1013 text.SetParentOrigin( ParentOrigin::CENTER );
1014 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1015 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1016 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1018 backing.Add( text );
1020 table.Add( backing );
1023 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
1024 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1025 backing.SetSize( 0.0f, 200.0f );
1027 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1028 text.SetAnchorPoint( AnchorPoint::CENTER );
1029 text.SetParentOrigin( ParentOrigin::CENTER );
1030 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1031 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1032 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1034 backing.Add( text );
1036 table.Add( backing );
1039 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1040 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1041 backing.SetSize( 0.0f, 300.0f );
1043 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1044 text.SetAnchorPoint( AnchorPoint::CENTER );
1045 text.SetParentOrigin( ParentOrigin::CENTER );
1046 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1047 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1048 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1050 backing.Add( text );
1052 table.Add( backing );
1055 mPopup.Add( table );
1059 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
1061 mPopup = CreatePopup();
1062 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, WIDTH );
1063 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1064 mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
1066 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1067 table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1068 table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
1069 table.SetFitHeight( 0 );
1070 table.SetFitHeight( 1 );
1073 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1074 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1075 backing.SetResizePolicy( FIXED, HEIGHT );
1076 backing.SetSize( 0.0f, 100.0f );
1078 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1079 text.SetAnchorPoint( AnchorPoint::CENTER );
1080 text.SetParentOrigin( ParentOrigin::CENTER );
1081 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1082 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1083 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1085 backing.Add( text );
1087 table.Add( backing );
1090 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1091 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1092 backing.SetSize( 0.0f, 200.0f );
1094 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1095 text.SetAnchorPoint( AnchorPoint::CENTER );
1096 text.SetParentOrigin( ParentOrigin::CENTER );
1097 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1098 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1099 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1101 backing.Add( text );
1103 table.Add( backing );
1106 mPopup.Add( table );
1110 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
1112 mPopup = CreatePopup();
1113 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, WIDTH );
1114 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1115 mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
1117 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1118 table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1119 table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
1120 table.SetFixedHeight( 0, 20.0f );
1121 table.SetFitHeight( 1 );
1124 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1125 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1127 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1128 text.SetAnchorPoint( AnchorPoint::CENTER );
1129 text.SetParentOrigin( ParentOrigin::CENTER );
1130 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1131 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1132 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1134 backing.Add( text );
1136 table.Add( backing );
1139 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1140 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1141 backing.SetSize( 0.0f, 200.0f );
1143 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1144 text.SetAnchorPoint( AnchorPoint::CENTER );
1145 text.SetParentOrigin( ParentOrigin::CENTER );
1146 text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1147 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1148 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1150 backing.Add( text );
1152 table.Add( backing );
1155 mPopup.Add( table );
1159 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
1170 void OnPopupOutsideTouched()
1178 void OnKeyEvent( const KeyEvent& event )
1180 if( event.state == KeyEvent::Down )
1182 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
1184 // Exit application when click back or escape.
1185 mApplication.Quit();
1190 public: // From ItemFactory
1193 * @brief Return the number of items to display in the item view
1195 * @return Return the number of items to display
1197 virtual unsigned int GetNumberOfItems()
1199 switch( mDemoState )
1203 return POPUP_BUTTON_ITEMS_COUNT;
1208 return TABLEVIEW_BUTTON_ITEMS_COUNT;
1221 * @brief Create a new item to populate the item view with
1223 * @param[in] itemId The index of the item to create
1224 * @return Return the created actor for the given ID
1226 virtual Actor NewItem(unsigned int itemId)
1228 const ButtonItem* buttonDataArray = NULL;
1229 switch( mDemoState )
1233 buttonDataArray = POPUP_BUTTON_ITEMS;
1239 buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
1249 if( buttonDataArray )
1251 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
1252 popupButton.SetName( buttonDataArray[ itemId ].name );
1253 popupButton.SetLabel( buttonDataArray[ itemId ].text );
1254 popupButton.SetResizePolicy( USE_NATURAL_SIZE, ALL_DIMENSIONS );
1256 popupButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
1257 popupButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
1259 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
1275 Application& mApplication;
1276 Toolkit::View mView; ///< The View instance.
1277 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1278 Layer mContentLayer; ///< Content layer
1280 Toolkit::TextLabel mTitleActor; ///< Title text
1282 Toolkit::Popup mMenu; ///< The navigation menu
1283 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
1285 Toolkit::Popup mPopup;
1287 Toolkit::ItemView mItemView; ///< ItemView to hold test images
1289 DemoState mDemoState;
1292 void RunTest( Application& application )
1294 SizeNegotiationController test( application );
1296 application.MainLoop();
1299 // Entry point for Linux & SLP applications
1301 int main( int argc, char **argv )
1303 Application application = Application::New( &argc, &argv );
1305 RunTest( application );