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 = "Size Negotiation";
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.SetResizePolicy( FILL_TO_PARENT, Dali::HEIGHT );
434 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
440 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
442 mPopup = CreatePopup();
444 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
445 image.SetResizePolicy( FILL_TO_PARENT, WIDTH );
446 image.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
447 image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
453 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
455 mPopup = CreatePopup();
457 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
458 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
460 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
461 image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
467 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
469 mPopup = CreatePopup();
471 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
472 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
474 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
475 image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
476 image.SetSizeScalePolicy( FIT_WITH_ASPECT_RATIO );
482 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
484 mPopup = CreatePopup();
486 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
487 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
489 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
490 image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
491 image.SetSizeScalePolicy( FILL_WITH_ASPECT_RATIO );
497 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
499 mPopup = CreatePopup();
500 mPopup.SetTitle( "Popup!" );
502 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
503 text.SetName( "POPUP_CONTENT_TEXT" );
504 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
505 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
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.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
525 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
526 cancelButton.SetName( CANCEL_BUTTON_ID );
527 cancelButton.SetLabel( "Cancel" );
528 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
529 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
531 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
533 mPopup.AddButton( cancelButton );
535 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
536 okayButton.SetName( OKAY_BUTTON_ID );
537 okayButton.SetLabel( "OK!" );
538 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
539 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
541 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
543 mPopup.AddButton( okayButton );
547 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
549 mPopup = CreatePopup();
550 mPopup.SetTitle( "Warning" );
553 Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
554 content.SetName( "COMPLEX_TABLEVIEW" );
555 content.SetResizePolicy( FILL_TO_PARENT, WIDTH );
556 content.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
557 content.SetFitHeight( 0 );
558 content.SetFitHeight( 1 );
559 content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
563 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
564 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
565 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
567 content.AddChild( text, Toolkit::TableView::CellPosition( 0, 0 ) );
572 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) );
573 image.SetName( "COMPLEX_IMAGE" );
574 image.SetResizePolicy( FILL_TO_PARENT, WIDTH );
575 image.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
576 image.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 0.0f ) );
577 content.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) );
582 Toolkit::TableView root = Toolkit::TableView::New( 1, 2 );
583 root.SetResizePolicy( FILL_TO_PARENT, WIDTH );
584 root.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
585 root.SetFitHeight( 0 );
586 root.SetFitWidth( 0 );
587 root.SetPadding( Padding( 0.0f, 0.0f, 0.0f, 20.0f ) );
589 Dali::Image unchecked = Dali::ResourceImage::New( CHECKBOX_UNCHECKED_IMAGE );
590 Dali::Image checked = Dali::ResourceImage::New( CHECKBOX_CHECKED_IMAGE );
591 Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New();
592 checkBox.SetBackgroundImage( unchecked );
593 checkBox.SetSelectedImage( checked );
594 checkBox.SetSize( 48, 48 );
596 root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
598 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Don't show again" );
599 Actor textActor = text;
600 textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
602 root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
604 content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0 ) );
607 mPopup.Add( content );
610 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
611 cancelButton.SetName( CANCEL_BUTTON_ID );
612 cancelButton.SetLabel( "Cancel" );
613 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
614 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
616 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
618 mPopup.AddButton( cancelButton );
620 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
621 okayButton.SetName( OKAY_BUTTON_ID );
622 okayButton.SetLabel( "OK!" );
623 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
624 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
626 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
628 mPopup.AddButton( okayButton );
632 else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
634 mPopup = CreatePopup();
635 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
636 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
639 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
640 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
646 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
648 mPopup = CreatePopup();
649 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
650 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
653 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
654 table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
655 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
657 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
658 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
659 table.Add( backing );
665 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
667 mPopup = CreatePopup();
668 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
669 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
672 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
673 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
676 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
677 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
678 table.Add( backing );
681 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
682 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
683 table.Add( backing );
686 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
687 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
688 table.Add( backing );
695 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
697 mPopup = CreatePopup();
698 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
699 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
702 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
703 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
707 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
708 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
709 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
712 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
713 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
714 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
717 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
718 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
719 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
724 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
725 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
726 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
729 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
730 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
731 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
734 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
735 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
736 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
741 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
742 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
743 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
746 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
747 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
748 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
751 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
752 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
753 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
760 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
762 mPopup = CreatePopup();
763 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
764 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
767 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
768 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
769 table.SetFixedHeight( 0, 50.0f );
772 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
773 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
774 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
775 text.SetAnchorPoint( AnchorPoint::CENTER );
776 text.SetParentOrigin( ParentOrigin::CENTER );
778 table.Add( backing );
781 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
782 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
783 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
784 text.SetAnchorPoint( AnchorPoint::CENTER );
785 text.SetParentOrigin( ParentOrigin::CENTER );
787 table.Add( backing );
790 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
791 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
792 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
793 text.SetAnchorPoint( AnchorPoint::CENTER );
794 text.SetParentOrigin( ParentOrigin::CENTER );
796 table.Add( backing );
803 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
805 mPopup = CreatePopup();
806 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
807 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
810 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
811 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
812 table.SetFixedHeight( 0, 50.0f );
813 table.SetFixedHeight( 2, 50.0f );
816 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
817 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
818 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
819 text.SetAnchorPoint( AnchorPoint::CENTER );
820 text.SetParentOrigin( ParentOrigin::CENTER );
822 table.Add( backing );
825 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
826 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
827 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
828 text.SetAnchorPoint( AnchorPoint::CENTER );
829 text.SetParentOrigin( ParentOrigin::CENTER );
831 table.Add( backing );
834 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
835 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
836 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
837 text.SetAnchorPoint( AnchorPoint::CENTER );
838 text.SetParentOrigin( ParentOrigin::CENTER );
840 table.Add( backing );
847 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
849 mPopup = CreatePopup();
850 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
851 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
854 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
855 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
856 table.SetFitHeight( 0 );
857 table.SetFitHeight( 2 );
860 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
861 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
862 backing.SetSize( 0.0f, 100.0f );
864 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
865 text.SetAnchorPoint( AnchorPoint::CENTER );
866 text.SetParentOrigin( ParentOrigin::CENTER );
869 table.Add( backing );
872 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
873 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
875 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
876 text.SetAnchorPoint( AnchorPoint::CENTER );
877 text.SetParentOrigin( ParentOrigin::CENTER );
880 table.Add( backing );
883 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
884 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
885 backing.SetSize( 0.0f, 100.0f );
887 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
888 text.SetAnchorPoint( AnchorPoint::CENTER );
889 text.SetParentOrigin( ParentOrigin::CENTER );
892 table.Add( backing );
899 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
901 mPopup = CreatePopup();
902 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
903 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
905 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
906 table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
907 table.SetFitHeight( 1 );
910 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
911 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
913 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
914 text.SetAnchorPoint( AnchorPoint::CENTER );
915 text.SetParentOrigin( ParentOrigin::CENTER );
918 table.Add( backing );
921 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
922 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
923 backing.SetSize( 0.0f, 200.0f );
925 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
926 text.SetAnchorPoint( AnchorPoint::CENTER );
927 text.SetParentOrigin( ParentOrigin::CENTER );
930 table.Add( backing );
933 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
934 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
936 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
937 text.SetAnchorPoint( AnchorPoint::CENTER );
938 text.SetParentOrigin( ParentOrigin::CENTER );
941 table.Add( backing );
948 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
950 mPopup = CreatePopup();
951 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, WIDTH );
952 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
953 mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
955 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
956 table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
957 table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
958 table.SetFitHeight( 0 );
959 table.SetFitHeight( 1 );
960 table.SetFitHeight( 2 );
963 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
964 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
965 backing.SetSize( 0.0f, 100.0f );
967 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
968 text.SetAnchorPoint( AnchorPoint::CENTER );
969 text.SetParentOrigin( ParentOrigin::CENTER );
972 table.Add( backing );
975 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
976 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
977 backing.SetSize( 0.0f, 200.0f );
979 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
980 text.SetAnchorPoint( AnchorPoint::CENTER );
981 text.SetParentOrigin( ParentOrigin::CENTER );
984 table.Add( backing );
987 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
988 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
989 backing.SetSize( 0.0f, 300.0f );
991 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
992 text.SetAnchorPoint( AnchorPoint::CENTER );
993 text.SetParentOrigin( ParentOrigin::CENTER );
996 table.Add( backing );
1003 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
1005 mPopup = CreatePopup();
1006 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, WIDTH );
1007 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1008 mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
1010 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1011 table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1012 table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
1013 table.SetFitHeight( 0 );
1014 table.SetFitHeight( 1 );
1017 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1018 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1019 backing.SetResizePolicy( FIXED, HEIGHT );
1020 backing.SetSize( 0.0f, 100.0f );
1022 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1023 text.SetAnchorPoint( AnchorPoint::CENTER );
1024 text.SetParentOrigin( ParentOrigin::CENTER );
1025 backing.Add( text );
1027 table.Add( backing );
1030 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1031 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1032 backing.SetSize( 0.0f, 200.0f );
1034 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1035 text.SetAnchorPoint( AnchorPoint::CENTER );
1036 text.SetParentOrigin( ParentOrigin::CENTER );
1037 backing.Add( text );
1039 table.Add( backing );
1042 mPopup.Add( table );
1046 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
1048 mPopup = CreatePopup();
1049 mPopup.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, WIDTH );
1050 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1051 mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
1053 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1054 table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1055 table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
1056 table.SetFixedHeight( 0, 20.0f );
1057 table.SetFitHeight( 1 );
1060 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1061 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1063 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1064 text.SetAnchorPoint( AnchorPoint::CENTER );
1065 text.SetParentOrigin( ParentOrigin::CENTER );
1066 backing.Add( text );
1068 table.Add( backing );
1071 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1072 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1073 backing.SetSize( 0.0f, 200.0f );
1075 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1076 text.SetAnchorPoint( AnchorPoint::CENTER );
1077 text.SetParentOrigin( ParentOrigin::CENTER );
1078 backing.Add( text );
1080 table.Add( backing );
1083 mPopup.Add( table );
1087 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
1098 void OnPopupOutsideTouched()
1106 void OnKeyEvent( const KeyEvent& event )
1108 if( event.state == KeyEvent::Down )
1110 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
1112 // Exit application when click back or escape.
1113 mApplication.Quit();
1118 public: // From ItemFactory
1121 * @brief Return the number of items to display in the item view
1123 * @return Return the number of items to display
1125 virtual unsigned int GetNumberOfItems()
1127 switch( mDemoState )
1131 return POPUP_BUTTON_ITEMS_COUNT;
1136 return TABLEVIEW_BUTTON_ITEMS_COUNT;
1149 * @brief Create a new item to populate the item view with
1151 * @param[in] itemId The index of the item to create
1152 * @return Return the created actor for the given ID
1154 virtual Actor NewItem(unsigned int itemId)
1156 const ButtonItem* buttonDataArray = NULL;
1157 switch( mDemoState )
1161 buttonDataArray = POPUP_BUTTON_ITEMS;
1167 buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
1177 if( buttonDataArray )
1179 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
1180 popupButton.SetName( buttonDataArray[ itemId ].name );
1181 popupButton.SetLabel( buttonDataArray[ itemId ].text );
1182 popupButton.SetResizePolicy( USE_NATURAL_SIZE, ALL_DIMENSIONS );
1184 popupButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
1185 popupButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
1187 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
1203 Application& mApplication;
1204 Toolkit::View mView; ///< The View instance.
1205 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1206 Layer mContentLayer; ///< Content layer
1208 Toolkit::TextLabel mTitleActor; ///< Title text
1210 Toolkit::Popup mMenu; ///< The navigation menu
1211 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
1213 Toolkit::Popup mPopup;
1215 Toolkit::ItemView mItemView; ///< ItemView to hold test images
1217 DemoState mDemoState;
1220 void RunTest( Application& application )
1222 SizeNegotiationController test( application );
1224 application.MainLoop();
1227 // Entry point for Linux & SLP applications
1229 int main( int argc, char **argv )
1231 Application application = Application::New( &argc, &argv );
1233 RunTest( application );