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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
259 Toolkit::TableView tableView = Toolkit::TableView::New( 0, 0 );
260 tableView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
261 tableView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
434 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
435 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
441 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
443 mPopup = CreatePopup();
445 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
446 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
447 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
448 image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
454 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_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 );
468 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
470 mPopup = CreatePopup();
472 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
473 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
475 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
476 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
477 image.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
483 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
485 mPopup = CreatePopup();
487 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
488 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
490 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
491 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
492 image.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO );
498 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
500 mPopup = CreatePopup();
501 mPopup.SetTitle( "Popup!" );
503 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
504 text.SetName( "POPUP_CONTENT_TEXT" );
505 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
506 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
507 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
508 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
514 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
516 mPopup = CreatePopup();
517 mPopup.SetTitle( "Popup!" );
519 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
520 text.SetName( "POPUP_CONTENT_TEXT" );
521 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
522 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
523 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
524 text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
528 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
529 cancelButton.SetName( CANCEL_BUTTON_ID );
530 cancelButton.SetLabel( "Cancel" );
531 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
532 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
534 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
536 mPopup.AddButton( cancelButton );
538 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
539 okayButton.SetName( OKAY_BUTTON_ID );
540 okayButton.SetLabel( "OK!" );
541 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
542 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
544 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
546 mPopup.AddButton( okayButton );
550 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
552 mPopup = CreatePopup();
553 mPopup.SetTitle( "Warning" );
556 Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
557 content.SetName( "COMPLEX_TABLEVIEW" );
558 content.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
559 content.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
560 content.SetFitHeight( 0 );
561 content.SetFitHeight( 1 );
562 content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
566 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
567 text.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
568 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
569 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
571 content.AddChild( text, Toolkit::TableView::CellPosition( 0, 0 ) );
576 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) );
577 image.SetName( "COMPLEX_IMAGE" );
578 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
579 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
580 image.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 0.0f ) );
581 content.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) );
586 Toolkit::TableView root = Toolkit::TableView::New( 1, 2 );
587 root.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
588 root.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
589 root.SetFitHeight( 0 );
590 root.SetFitWidth( 0 );
591 root.SetPadding( Padding( 0.0f, 0.0f, 0.0f, 20.0f ) );
593 Dali::Image unchecked = Dali::ResourceImage::New( CHECKBOX_UNCHECKED_IMAGE );
594 Dali::Image checked = Dali::ResourceImage::New( CHECKBOX_CHECKED_IMAGE );
595 Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New();
596 checkBox.SetBackgroundImage( unchecked );
597 checkBox.SetSelectedImage( checked );
598 checkBox.SetSize( 48, 48 );
600 root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
602 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Don't show again" );
603 Actor textActor = text;
604 textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
606 root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
608 content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0 ) );
611 mPopup.Add( content );
614 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
615 cancelButton.SetName( CANCEL_BUTTON_ID );
616 cancelButton.SetLabel( "Cancel" );
617 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
618 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
620 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
622 mPopup.AddButton( cancelButton );
624 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
625 okayButton.SetName( OKAY_BUTTON_ID );
626 okayButton.SetLabel( "OK!" );
627 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
628 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
630 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
632 mPopup.AddButton( okayButton );
636 else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
638 mPopup = CreatePopup();
639 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
640 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
643 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
644 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
650 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
652 mPopup = CreatePopup();
653 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
654 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
657 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
658 table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
659 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
661 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
662 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
663 table.Add( backing );
669 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
671 mPopup = CreatePopup();
672 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
673 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
676 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
677 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
680 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
681 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
682 table.Add( backing );
685 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
686 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
687 table.Add( backing );
690 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
691 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
692 table.Add( backing );
699 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
701 mPopup = CreatePopup();
702 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
703 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
706 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
707 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
711 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
712 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
713 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
716 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
717 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
718 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
721 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
722 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
723 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
728 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
729 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
730 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
733 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
734 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
735 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
738 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
739 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
740 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
745 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
746 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
747 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
750 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
751 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
752 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
755 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
756 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
757 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
764 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
766 mPopup = CreatePopup();
767 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
768 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
771 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
772 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
773 table.SetFixedHeight( 0, 50.0f );
776 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
777 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
778 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
779 text.SetParentOrigin( ParentOrigin::CENTER );
780 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
781 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
782 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
784 table.Add( backing );
787 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
788 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
789 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
790 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
791 text.SetParentOrigin( ParentOrigin::CENTER );
792 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
793 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
795 table.Add( backing );
798 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
799 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
800 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
801 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
802 text.SetParentOrigin( ParentOrigin::CENTER );
803 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
804 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
806 table.Add( backing );
813 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
815 mPopup = CreatePopup();
816 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
817 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
820 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
821 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
822 table.SetFixedHeight( 0, 50.0f );
823 table.SetFixedHeight( 2, 50.0f );
826 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.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 );
839 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
840 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
841 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
842 text.SetAnchorPoint( AnchorPoint::CENTER );
843 text.SetParentOrigin( ParentOrigin::CENTER );
844 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
845 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
846 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
849 table.Add( backing );
852 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
853 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
854 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
855 text.SetAnchorPoint( AnchorPoint::CENTER );
856 text.SetParentOrigin( ParentOrigin::CENTER );
857 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
858 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
859 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
862 table.Add( backing );
869 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
871 mPopup = CreatePopup();
872 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
873 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
876 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
877 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
878 table.SetFitHeight( 0 );
879 table.SetFitHeight( 2 );
882 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
883 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
884 backing.SetSize( 0.0f, 100.0f );
886 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
887 text.SetAnchorPoint( AnchorPoint::CENTER );
888 text.SetParentOrigin( ParentOrigin::CENTER );
889 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
890 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
891 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
895 table.Add( backing );
898 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
899 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
901 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
902 text.SetAnchorPoint( AnchorPoint::CENTER );
903 text.SetParentOrigin( ParentOrigin::CENTER );
904 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
905 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
906 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
910 table.Add( backing );
913 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
914 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
915 backing.SetSize( 0.0f, 100.0f );
917 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
918 text.SetAnchorPoint( AnchorPoint::CENTER );
919 text.SetParentOrigin( ParentOrigin::CENTER );
920 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
921 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
922 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
926 table.Add( backing );
933 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
935 mPopup = CreatePopup();
936 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
937 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
939 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
940 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
941 table.SetFitHeight( 1 );
944 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
945 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
947 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
948 text.SetAnchorPoint( AnchorPoint::CENTER );
949 text.SetParentOrigin( ParentOrigin::CENTER );
950 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
951 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
952 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
956 table.Add( backing );
959 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
960 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
961 backing.SetSize( 0.0f, 200.0f );
963 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
964 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
965 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
966 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
968 text.SetAnchorPoint( AnchorPoint::CENTER );
969 text.SetParentOrigin( ParentOrigin::CENTER );
972 table.Add( backing );
975 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
976 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
978 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
979 text.SetAnchorPoint( AnchorPoint::CENTER );
980 text.SetParentOrigin( ParentOrigin::CENTER );
981 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
982 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
983 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
987 table.Add( backing );
994 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
996 mPopup = CreatePopup();
997 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
998 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
999 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1001 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1002 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1003 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1004 table.SetFitHeight( 0 );
1005 table.SetFitHeight( 1 );
1006 table.SetFitHeight( 2 );
1009 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1010 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1011 backing.SetSize( 0.0f, 100.0f );
1013 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1014 text.SetAnchorPoint( AnchorPoint::CENTER );
1015 text.SetParentOrigin( ParentOrigin::CENTER );
1016 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1017 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1018 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1020 backing.Add( text );
1022 table.Add( backing );
1025 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
1026 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1027 backing.SetSize( 0.0f, 200.0f );
1029 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1030 text.SetAnchorPoint( AnchorPoint::CENTER );
1031 text.SetParentOrigin( ParentOrigin::CENTER );
1032 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1033 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1034 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1036 backing.Add( text );
1038 table.Add( backing );
1041 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1042 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1043 backing.SetSize( 0.0f, 300.0f );
1045 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1046 text.SetAnchorPoint( AnchorPoint::CENTER );
1047 text.SetParentOrigin( ParentOrigin::CENTER );
1048 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1049 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1050 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1052 backing.Add( text );
1054 table.Add( backing );
1057 mPopup.Add( table );
1061 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
1063 mPopup = CreatePopup();
1064 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1065 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1066 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1068 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1069 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1070 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1071 table.SetFitHeight( 0 );
1072 table.SetFitHeight( 1 );
1075 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1076 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1077 backing.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
1078 backing.SetSize( 0.0f, 100.0f );
1080 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1081 text.SetAnchorPoint( AnchorPoint::CENTER );
1082 text.SetParentOrigin( ParentOrigin::CENTER );
1083 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1084 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1085 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1087 backing.Add( text );
1089 table.Add( backing );
1092 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1093 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1094 backing.SetSize( 0.0f, 200.0f );
1096 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1097 text.SetAnchorPoint( AnchorPoint::CENTER );
1098 text.SetParentOrigin( ParentOrigin::CENTER );
1099 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1100 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1101 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1103 backing.Add( text );
1105 table.Add( backing );
1108 mPopup.Add( table );
1112 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
1114 mPopup = CreatePopup();
1115 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1116 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1117 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1119 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1120 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1121 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1122 table.SetFixedHeight( 0, 20.0f );
1123 table.SetFitHeight( 1 );
1126 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1127 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1129 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1130 text.SetAnchorPoint( AnchorPoint::CENTER );
1131 text.SetParentOrigin( ParentOrigin::CENTER );
1132 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1133 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1134 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1136 backing.Add( text );
1138 table.Add( backing );
1141 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1142 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1143 backing.SetSize( 0.0f, 200.0f );
1145 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1146 text.SetAnchorPoint( AnchorPoint::CENTER );
1147 text.SetParentOrigin( ParentOrigin::CENTER );
1148 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1149 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1150 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1152 backing.Add( text );
1154 table.Add( backing );
1157 mPopup.Add( table );
1161 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
1172 void OnPopupOutsideTouched()
1180 void OnKeyEvent( const KeyEvent& event )
1182 if( event.state == KeyEvent::Down )
1184 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
1186 // Exit application when click back or escape.
1187 mApplication.Quit();
1192 public: // From ItemFactory
1195 * @brief Return the number of items to display in the item view
1197 * @return Return the number of items to display
1199 virtual unsigned int GetNumberOfItems()
1201 switch( mDemoState )
1205 return POPUP_BUTTON_ITEMS_COUNT;
1210 return TABLEVIEW_BUTTON_ITEMS_COUNT;
1223 * @brief Create a new item to populate the item view with
1225 * @param[in] itemId The index of the item to create
1226 * @return Return the created actor for the given ID
1228 virtual Actor NewItem(unsigned int itemId)
1230 const ButtonItem* buttonDataArray = NULL;
1231 switch( mDemoState )
1235 buttonDataArray = POPUP_BUTTON_ITEMS;
1241 buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
1251 if( buttonDataArray )
1253 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
1254 popupButton.SetName( buttonDataArray[ itemId ].name );
1255 popupButton.SetLabel( buttonDataArray[ itemId ].text );
1256 popupButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
1258 popupButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
1259 popupButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
1261 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
1277 Application& mApplication;
1278 Toolkit::Control mView; ///< The View instance.
1279 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1280 Layer mContentLayer; ///< Content layer
1282 Toolkit::TextLabel mTitleActor; ///< Title text
1284 Toolkit::Popup mMenu; ///< The navigation menu
1285 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
1287 Toolkit::Popup mPopup;
1289 Toolkit::ItemView mItemView; ///< ItemView to hold test images
1291 DemoState mDemoState;
1294 void RunTest( Application& application )
1296 SizeNegotiationController test( application );
1298 application.MainLoop();
1301 // Entry point for Linux & SLP applications
1303 int main( int argc, char **argv )
1305 Application application = Application::New( &argc, &argv );
1307 RunTest( application );