2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "shared/view.h"
19 #include <dali/dali.h>
20 #include <dali-toolkit/dali-toolkit.h>
21 #include <dali-toolkit/devel-api/controls/popup/popup.h>
25 using Dali::Toolkit::TextLabel;
27 // Define this so that it is interchangeable
28 // "DP" stands for Device independent Pixels
29 #define DP(x) DemoHelper::ScalePointSize(x)
41 const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg";
42 const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png";
44 const char* const TOOLBAR_TITLE = "Negotiate Size";
45 const int TOOLBAR_HEIGHT = 62;
47 const char* MENU_ICON_IMAGE = DALI_IMAGE_DIR "icon-cluster-none.png";
49 const char* const PUSHBUTTON_BUTTON_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
50 const char* const PUSHBUTTON_PRESS_IMAGE = DALI_IMAGE_DIR "button-down.9.png";
52 const char* const POPUPS_MENU_ID = "POPUPS_MENU";
53 const char* const TABLEVIEW_MENU_ID = "TABLEVIEW_MENU";
55 const char* const POPUP_BUTTON_EMPTY_ID = "POPUP_BUTTON_EMPTY";
56 const char* const POPUP_BUTTON_TITLE_ID = "POPUP_BUTTON_TITLE";
57 const char* const POPUP_BUTTON_BUTTONS_1_ID = "POPUP_BUTTON_BUTTONS_1";
58 const char* const POPUP_BUTTON_BUTTONS_2_ID = "POPUP_BUTTON_BUTTONS_2";
59 const char* const POPUP_BUTTON_TITLE_BUTTONS_ID = "POPUP_BUTTON_TITLE_BUTTONS";
60 const char* const POPUP_BUTTON_CONTENT_TEXT_ID = "POPUP_BUTTON_CONTENT_TEXT";
61 const char* const POPUP_BUTTON_CONTENT_IMAGE_ID = "POPUP_BUTTON_CONTENT_IMAGE";
62 const char* const POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID = "POPUP_BUTTON_CONTENT_IMAGE_SCALE";
63 const char* const POPUP_BUTTON_CONTENT_IMAGE_FIT_ID = "POPUP_BUTTON_CONTENT_IMAGE_FIT";
64 const char* const POPUP_BUTTON_CONTENT_IMAGE_FILL_ID = "POPUP_BUTTON_CONTENT_IMAGE_FILL";
65 const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT";
66 const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS";
67 const char* const POPUP_BUTTON_COMPLEX_ID = "POPUP_BUTTON_COMPLEX";
69 const char* const TABLEVIEW_BUTTON_EMPTY_ID = "TABLEVIEW_BUTTON_EMPTY";
70 const char* const TABLEVIEW_BUTTON_1CELL_ID = "TABLEVIEW_BUTTON_1CELL";
71 const char* const TABLEVIEW_BUTTON_3CELL_ID = "TABLEVIEW_BUTTON_3CELL";
72 const char* const TABLEVIEW_BUTTON_3X3CELL_ID = "TABLEVIEW_BUTTON_3X3CELL";
73 const char* const TABLEVIEW_BUTTON_FIXED1_ID = "TABLEVIEW_BUTTON_FIXED1";
74 const char* const TABLEVIEW_BUTTON_FIXED2_ID = "TABLEVIEW_BUTTON_FIXED2";
75 const char* const TABLEVIEW_BUTTON_FIT1_ID = "TABLEVIEW_BUTTON_FIT1";
76 const char* const TABLEVIEW_BUTTON_FIT2_ID = "TABLEVIEW_BUTTON_FIT2";
77 const char* const TABLEVIEW_BUTTON_NATURAL1_ID = "TABLEVIEW_BUTTON_NATURAL1";
78 const char* const TABLEVIEW_BUTTON_NATURAL2_ID = "TABLEVIEW_BUTTON_NATURAL2";
79 const char* const TABLEVIEW_BUTTON_NATURAL3_ID = "TABLEVIEW_BUTTON_NATURAL3";
81 const char* const OKAY_BUTTON_ID = "OKAY_BUTTON";
82 const char* const CANCEL_BUTTON_ID = "CANCEL_BUTTON";
84 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.";
85 const char* const IMAGE1 = DALI_IMAGE_DIR "gallery-medium-5.jpg";
86 const char* const IMAGE2 = DALI_IMAGE_DIR "background-magnifier.jpg";
87 const char* const CHECKBOX_UNCHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-unselected.png";
88 const char* const CHECKBOX_CHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-selected.png";
90 const ButtonItem MENU_ITEMS[] = {
91 { POPUPS_MENU_ID, "Popups" },
92 { TABLEVIEW_MENU_ID, "TableView" }
95 const unsigned int MENU_ITEMS_COUNT = sizeof( MENU_ITEMS ) / sizeof( MENU_ITEMS[0] );
97 const ButtonItem POPUP_BUTTON_ITEMS[] = {
98 { POPUP_BUTTON_COMPLEX_ID, "Complex" },
99 { POPUP_BUTTON_EMPTY_ID, "Empty" },
100 { POPUP_BUTTON_TITLE_ID, "Title" },
101 { POPUP_BUTTON_BUTTONS_1_ID, "1 Button" },
102 { POPUP_BUTTON_BUTTONS_2_ID, "2 Buttons" },
103 { POPUP_BUTTON_TITLE_BUTTONS_ID, "Title & Buttons" },
104 { POPUP_BUTTON_CONTENT_TEXT_ID, "Text" },
105 { POPUP_BUTTON_CONTENT_IMAGE_ID, "Image" },
106 { POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID, "Image Scale" },
107 { POPUP_BUTTON_CONTENT_IMAGE_FIT_ID, "Image Fit" },
108 { POPUP_BUTTON_CONTENT_IMAGE_FILL_ID, "Image Fill" },
109 { POPUP_BUTTON_TITLE_CONTENT_TEXT_ID, "Title Text" },
110 { POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID, "Title, text, buttons" }
114 const int POPUP_BUTTON_ITEMS_COUNT = sizeof( POPUP_BUTTON_ITEMS ) / sizeof( POPUP_BUTTON_ITEMS[0] );
116 const ButtonItem TABLEVIEW_BUTTON_ITEMS[] = {
117 { TABLEVIEW_BUTTON_EMPTY_ID, "Empty" },
118 { TABLEVIEW_BUTTON_1CELL_ID, "1 Cell" },
119 { TABLEVIEW_BUTTON_3CELL_ID, "3 Cell" },
120 { TABLEVIEW_BUTTON_3X3CELL_ID, "3x3 Cells" },
121 { TABLEVIEW_BUTTON_FIXED1_ID, "Fixed 1" },
122 { TABLEVIEW_BUTTON_FIXED2_ID, "Fixed 2" },
123 { TABLEVIEW_BUTTON_FIT1_ID, "Fit Top Bottom" },
124 { TABLEVIEW_BUTTON_FIT2_ID, "Fit Middle" },
125 { TABLEVIEW_BUTTON_NATURAL1_ID, "Natural 1" },
126 { TABLEVIEW_BUTTON_NATURAL2_ID, "Natural 2" },
127 { TABLEVIEW_BUTTON_NATURAL3_ID, "Natural 3" },
130 const unsigned int TABLEVIEW_BUTTON_ITEMS_COUNT = sizeof( TABLEVIEW_BUTTON_ITEMS ) / sizeof( TABLEVIEW_BUTTON_ITEMS[0] );
137 * This example shows the usage of size negotiation.
139 class SizeNegotiationController: public ConnectionTracker, public Toolkit::ItemFactory
143 SizeNegotiationController( Application& application )
144 : mApplication( application ),
148 // Connect to the Application's Init signal
149 mApplication.InitSignal().Connect( this, &SizeNegotiationController::Create );
152 ~SizeNegotiationController()
154 // Nothing to do here
157 void Create( Application& application )
159 // The Init signal is received once (only) during the Application lifetime
161 Stage stage = Stage::GetCurrent();
163 // Respond to key events
164 stage.KeyEventSignal().Connect(this, &SizeNegotiationController::OnKeyEvent);
166 // Creates a default view with a default tool bar.
167 // The view is added to the stage.
168 mContentLayer = DemoHelper::CreateView( application,
175 mTitleActor = DemoHelper::CreateToolBarLabel( "CUSTOM_TOOLBAR_TITLE" );
179 // Create menu button
180 Toolkit::PushButton viewButton = Toolkit::PushButton::New();
181 viewButton.SetBackgroundImage( ResourceImage::New( MENU_ICON_IMAGE ) );
182 viewButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenu );
183 mToolBar.AddControl( viewButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
185 // Add title to the tool bar.
186 const float padding( DemoHelper::DEFAULT_VIEW_STYLE.mToolBarPadding );
187 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
189 mItemView = Toolkit::ItemView::New( *this );
190 mItemView.SetParentOrigin( ParentOrigin::CENTER );
191 mItemView.SetAnchorPoint( AnchorPoint::CENTER );
192 mItemView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
194 // Use a grid layout for tests
195 Vector2 stageSize = stage.GetSize();
196 Toolkit::ItemLayoutPtr gridLayout = Toolkit::DefaultItemLayout::New( Toolkit::DefaultItemLayout::LIST );
198 gridLayout->GetItemSize( 0, Vector3( stageSize ), itemSize );
199 itemSize.height = stageSize.y / 10;
200 gridLayout->SetItemSize( itemSize );
201 mItemView.AddLayout( *gridLayout );
203 mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
205 mContentLayer.Add( mItemView );
210 std::string subTitle = "";
222 subTitle = "TableView";
232 mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, std::string( std::string( TOOLBAR_TITLE ) + ": " + subTitle ) );
235 bool OnMenu( Toolkit::Button button )
243 Stage stage = Stage::GetCurrent();
244 const float popupWidth = stage.GetSize().x * 0.5f;
246 mMenu = Toolkit::Popup::New();
247 mMenu.SetParentOrigin( ParentOrigin::TOP_LEFT );
248 mMenu.SetAnchorPoint( AnchorPoint::TOP_LEFT );
250 mMenu.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::HideMenu );
251 mMenu.SetSize( popupWidth, 0.0f );
252 mMenu.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
254 Toolkit::TableView tableView = Toolkit::TableView::New( 0, 0 );
255 tableView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
256 tableView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
257 mMenu.Add( tableView );
259 for( unsigned int i = 0; i < MENU_ITEMS_COUNT; ++i )
261 Toolkit::PushButton menuButton = Toolkit::PushButton::New();
262 menuButton.SetName( MENU_ITEMS[ i ].name );
263 menuButton.SetLabel( MENU_ITEMS[ i ].text );
264 menuButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenuSelect );
266 tableView.Add( menuButton );
267 tableView.SetFitHeight( i );
286 bool OnMenuSelect( Toolkit::Button button )
288 bool refresh = false;
290 if( button.GetName() == POPUPS_MENU_ID )
292 if( mDemoState != POPUP )
298 else if( button.GetName() == TABLEVIEW_MENU_ID )
300 if( mDemoState != TABLEVIEW )
303 mDemoState = TABLEVIEW;
318 Toolkit::Popup CreatePopup()
320 Stage stage = Stage::GetCurrent();
321 const float POPUP_WIDTH_DP = stage.GetSize().width * 0.75f;
323 Toolkit::Popup popup = Toolkit::Popup::New();
324 popup.SetName( "POPUP" );
325 popup.SetParentOrigin( ParentOrigin::CENTER );
326 popup.SetAnchorPoint( AnchorPoint::CENTER );
327 popup.SetSize( POPUP_WIDTH_DP, 0.0f );
330 popup.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::OnPopupOutsideTouched );
335 bool OnButtonClicked( Toolkit::Button button )
337 if( button.GetName() == POPUP_BUTTON_EMPTY_ID )
339 mPopup = CreatePopup();
343 else if( button.GetName() == POPUP_BUTTON_TITLE_ID )
345 mPopup = CreatePopup();
346 mPopup.SetTitle( "Popup!" );
350 else if( button.GetName() == POPUP_BUTTON_BUTTONS_1_ID )
352 mPopup = CreatePopup();
354 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
355 okayButton.SetName( OKAY_BUTTON_ID );
356 okayButton.SetLabel( "OK!" );
357 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
358 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
360 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
362 mPopup.AddButton( okayButton );
366 else if( button.GetName() == POPUP_BUTTON_BUTTONS_2_ID )
368 mPopup = CreatePopup();
370 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
371 cancelButton.SetName( CANCEL_BUTTON_ID );
372 cancelButton.SetLabel( "Cancel" );
373 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
374 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
376 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
378 mPopup.AddButton( cancelButton );
380 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
381 okayButton.SetName( OKAY_BUTTON_ID );
382 okayButton.SetLabel( "OK!" );
383 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
384 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
386 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
388 mPopup.AddButton( okayButton );
392 else if( button.GetName() == POPUP_BUTTON_TITLE_BUTTONS_ID )
394 mPopup = CreatePopup();
395 mPopup.SetTitle( "Popup!" );
397 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
398 cancelButton.SetName( CANCEL_BUTTON_ID );
399 cancelButton.SetLabel( "Cancel" );
400 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
401 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
403 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
405 mPopup.AddButton( cancelButton );
407 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
408 okayButton.SetName( OKAY_BUTTON_ID );
409 okayButton.SetLabel( "OK!" );
410 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
411 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
413 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
415 mPopup.AddButton( okayButton );
419 else if( button.GetName() == POPUP_BUTTON_CONTENT_TEXT_ID )
421 mPopup = CreatePopup();
423 TextLabel text = TextLabel::New( CONTENT_TEXT );
424 text.SetName( "POPUP_CONTENT_TEXT" );
425 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
426 text.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
427 text.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
428 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
429 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
430 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
436 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
438 mPopup = CreatePopup();
440 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
441 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
442 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
443 image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
449 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
451 mPopup = CreatePopup();
453 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
454 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
456 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
457 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
463 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
465 mPopup = CreatePopup();
467 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
468 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
470 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
471 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
472 image.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
478 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
480 mPopup = CreatePopup();
482 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
483 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
485 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
486 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
487 image.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO );
493 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
495 mPopup = CreatePopup();
496 mPopup.SetTitle( "Popup!" );
498 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
499 text.SetName( "POPUP_CONTENT_TEXT" );
500 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
501 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
502 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
503 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
509 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
511 mPopup = CreatePopup();
512 mPopup.SetTitle( "Popup!" );
514 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
515 text.SetName( "POPUP_CONTENT_TEXT" );
516 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
517 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
518 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
519 text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
523 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
524 cancelButton.SetName( CANCEL_BUTTON_ID );
525 cancelButton.SetLabel( "Cancel" );
526 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
527 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
529 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
531 mPopup.AddButton( cancelButton );
533 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
534 okayButton.SetName( OKAY_BUTTON_ID );
535 okayButton.SetLabel( "OK!" );
536 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
537 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
539 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
541 mPopup.AddButton( okayButton );
545 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
547 mPopup = CreatePopup();
548 mPopup.SetTitle( "Warning" );
551 Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
552 content.SetName( "COMPLEX_TABLEVIEW" );
553 content.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
554 content.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
555 content.SetFitHeight( 0 );
556 content.SetFitHeight( 1 );
557 content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
561 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
562 text.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
563 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
564 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
566 content.AddChild( text, Toolkit::TableView::CellPosition( 0, 0 ) );
571 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) );
572 image.SetName( "COMPLEX_IMAGE" );
573 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
574 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
575 image.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 0.0f ) );
576 content.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) );
581 Toolkit::TableView root = Toolkit::TableView::New( 1, 2 );
582 root.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
583 root.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
584 root.SetFitHeight( 0 );
585 root.SetFitWidth( 0 );
586 root.SetPadding( Padding( 0.0f, 0.0f, 0.0f, 20.0f ) );
588 Dali::Image unchecked = Dali::ResourceImage::New( CHECKBOX_UNCHECKED_IMAGE );
589 Dali::Image checked = Dali::ResourceImage::New( CHECKBOX_CHECKED_IMAGE );
590 Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New();
591 checkBox.SetBackgroundImage( unchecked );
592 checkBox.SetSelectedImage( checked );
593 checkBox.SetSize( 48, 48 );
595 root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
597 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Don't show again" );
598 Actor textActor = text;
599 textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
601 root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
603 content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0 ) );
606 mPopup.Add( content );
609 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
610 cancelButton.SetName( CANCEL_BUTTON_ID );
611 cancelButton.SetLabel( "Cancel" );
612 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
613 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
615 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
617 mPopup.AddButton( cancelButton );
619 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
620 okayButton.SetName( OKAY_BUTTON_ID );
621 okayButton.SetLabel( "OK!" );
622 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
623 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
625 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
627 mPopup.AddButton( okayButton );
631 else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
633 mPopup = CreatePopup();
634 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
635 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
638 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
639 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
645 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
647 mPopup = CreatePopup();
648 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
649 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
652 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
653 table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
654 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
656 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
657 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
658 table.Add( backing );
664 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
666 mPopup = CreatePopup();
667 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
668 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
671 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
672 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
675 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
676 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
677 table.Add( backing );
680 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.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( 0.0f, 1.0f, 0.0f, 1.0f ) );
686 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
687 table.Add( backing );
694 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
696 mPopup = CreatePopup();
697 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
698 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
701 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
702 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
706 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
707 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
708 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
711 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
712 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
713 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
716 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
717 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
718 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
723 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
724 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
725 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
728 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
729 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
730 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
733 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
734 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
735 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
740 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
741 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
742 table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
745 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
746 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
747 table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
750 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
751 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
752 table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
759 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
761 mPopup = CreatePopup();
762 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
763 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
766 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
767 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
768 table.SetFixedHeight( 0, 50.0f );
771 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
772 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
773 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
774 text.SetParentOrigin( ParentOrigin::CENTER );
775 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
776 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
777 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
779 table.Add( backing );
782 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
783 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
784 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
785 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
786 text.SetParentOrigin( ParentOrigin::CENTER );
787 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
788 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
790 table.Add( backing );
793 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
794 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
795 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
796 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
797 text.SetParentOrigin( ParentOrigin::CENTER );
798 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
799 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
801 table.Add( backing );
808 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
810 mPopup = CreatePopup();
811 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
812 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
815 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
816 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
817 table.SetFixedHeight( 0, 50.0f );
818 table.SetFixedHeight( 2, 50.0f );
821 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
822 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
823 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
824 text.SetAnchorPoint( AnchorPoint::CENTER );
825 text.SetParentOrigin( ParentOrigin::CENTER );
826 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
827 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
828 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
831 table.Add( backing );
834 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
835 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
836 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
837 text.SetAnchorPoint( AnchorPoint::CENTER );
838 text.SetParentOrigin( ParentOrigin::CENTER );
839 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
840 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
841 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
844 table.Add( backing );
847 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
848 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
849 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
850 text.SetAnchorPoint( AnchorPoint::CENTER );
851 text.SetParentOrigin( ParentOrigin::CENTER );
852 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
853 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
854 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
857 table.Add( backing );
864 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
866 mPopup = CreatePopup();
867 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
868 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
871 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
872 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
873 table.SetFitHeight( 0 );
874 table.SetFitHeight( 2 );
877 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
878 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
879 backing.SetSize( 0.0f, 100.0f );
881 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
882 text.SetAnchorPoint( AnchorPoint::CENTER );
883 text.SetParentOrigin( ParentOrigin::CENTER );
884 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
885 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
886 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
890 table.Add( backing );
893 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
894 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
896 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
897 text.SetAnchorPoint( AnchorPoint::CENTER );
898 text.SetParentOrigin( ParentOrigin::CENTER );
899 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
900 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
901 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
905 table.Add( backing );
908 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
909 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
910 backing.SetSize( 0.0f, 100.0f );
912 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
913 text.SetAnchorPoint( AnchorPoint::CENTER );
914 text.SetParentOrigin( ParentOrigin::CENTER );
915 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
916 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
917 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
921 table.Add( backing );
928 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
930 mPopup = CreatePopup();
931 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
932 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
934 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
935 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
936 table.SetFitHeight( 1 );
939 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
940 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
942 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
943 text.SetAnchorPoint( AnchorPoint::CENTER );
944 text.SetParentOrigin( ParentOrigin::CENTER );
945 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
946 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
947 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
951 table.Add( backing );
954 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
955 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
956 backing.SetSize( 0.0f, 200.0f );
958 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
959 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
960 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
961 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
963 text.SetAnchorPoint( AnchorPoint::CENTER );
964 text.SetParentOrigin( ParentOrigin::CENTER );
967 table.Add( backing );
970 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
971 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
973 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
974 text.SetAnchorPoint( AnchorPoint::CENTER );
975 text.SetParentOrigin( ParentOrigin::CENTER );
976 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
977 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
978 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
982 table.Add( backing );
989 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
991 mPopup = CreatePopup();
992 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
993 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
994 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
996 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
997 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
998 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
999 table.SetFitHeight( 0 );
1000 table.SetFitHeight( 1 );
1001 table.SetFitHeight( 2 );
1004 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1005 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1006 backing.SetSize( 0.0f, 100.0f );
1008 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1009 text.SetAnchorPoint( AnchorPoint::CENTER );
1010 text.SetParentOrigin( ParentOrigin::CENTER );
1011 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1012 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1013 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1015 backing.Add( text );
1017 table.Add( backing );
1020 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
1021 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1022 backing.SetSize( 0.0f, 200.0f );
1024 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1025 text.SetAnchorPoint( AnchorPoint::CENTER );
1026 text.SetParentOrigin( ParentOrigin::CENTER );
1027 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1028 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1029 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1031 backing.Add( text );
1033 table.Add( backing );
1036 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1037 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1038 backing.SetSize( 0.0f, 300.0f );
1040 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1041 text.SetAnchorPoint( AnchorPoint::CENTER );
1042 text.SetParentOrigin( ParentOrigin::CENTER );
1043 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1044 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1045 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1047 backing.Add( text );
1049 table.Add( backing );
1052 mPopup.Add( table );
1056 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
1058 mPopup = CreatePopup();
1059 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1060 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1061 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1063 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1064 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1065 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1066 table.SetFitHeight( 0 );
1067 table.SetFitHeight( 1 );
1070 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1071 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1072 backing.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
1073 backing.SetSize( 0.0f, 100.0f );
1075 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1076 text.SetAnchorPoint( AnchorPoint::CENTER );
1077 text.SetParentOrigin( ParentOrigin::CENTER );
1078 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1079 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1080 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1082 backing.Add( text );
1084 table.Add( backing );
1087 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1088 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1089 backing.SetSize( 0.0f, 200.0f );
1091 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1092 text.SetAnchorPoint( AnchorPoint::CENTER );
1093 text.SetParentOrigin( ParentOrigin::CENTER );
1094 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1095 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1096 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1098 backing.Add( text );
1100 table.Add( backing );
1103 mPopup.Add( table );
1107 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
1109 mPopup = CreatePopup();
1110 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1111 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1112 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1114 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1115 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1116 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1117 table.SetFixedHeight( 0, 20.0f );
1118 table.SetFitHeight( 1 );
1121 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1122 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1124 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1125 text.SetAnchorPoint( AnchorPoint::CENTER );
1126 text.SetParentOrigin( ParentOrigin::CENTER );
1127 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1128 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1129 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1131 backing.Add( text );
1133 table.Add( backing );
1136 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1137 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1138 backing.SetSize( 0.0f, 200.0f );
1140 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1141 text.SetAnchorPoint( AnchorPoint::CENTER );
1142 text.SetParentOrigin( ParentOrigin::CENTER );
1143 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1144 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1145 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1147 backing.Add( text );
1149 table.Add( backing );
1152 mPopup.Add( table );
1156 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
1167 void OnPopupOutsideTouched()
1175 void OnKeyEvent( const KeyEvent& event )
1177 if( event.state == KeyEvent::Down )
1179 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
1181 // Exit application when click back or escape.
1182 mApplication.Quit();
1187 public: // From ItemFactory
1190 * @brief Return the number of items to display in the item view
1192 * @return Return the number of items to display
1194 virtual unsigned int GetNumberOfItems()
1196 switch( mDemoState )
1200 return POPUP_BUTTON_ITEMS_COUNT;
1205 return TABLEVIEW_BUTTON_ITEMS_COUNT;
1218 * @brief Create a new item to populate the item view with
1220 * @param[in] itemId The index of the item to create
1221 * @return Return the created actor for the given ID
1223 virtual Actor NewItem(unsigned int itemId)
1225 const ButtonItem* buttonDataArray = NULL;
1226 switch( mDemoState )
1230 buttonDataArray = POPUP_BUTTON_ITEMS;
1236 buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
1246 if( buttonDataArray )
1248 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
1249 popupButton.SetName( buttonDataArray[ itemId ].name );
1250 popupButton.SetLabel( buttonDataArray[ itemId ].text );
1251 popupButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
1253 popupButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
1254 popupButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
1256 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
1272 Application& mApplication;
1273 Toolkit::Control mView; ///< The View instance.
1274 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1275 Layer mContentLayer; ///< Content layer
1277 Toolkit::TextLabel mTitleActor; ///< Title text
1279 Toolkit::Popup mMenu; ///< The navigation menu
1280 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
1282 Toolkit::Popup mPopup;
1284 Toolkit::ItemView mItemView; ///< ItemView to hold test images
1286 DemoState mDemoState;
1289 void RunTest( Application& application )
1291 SizeNegotiationController test( application );
1293 application.MainLoop();
1296 // Entry point for Linux & SLP applications
1298 int main( int argc, char **argv )
1300 Application application = Application::New( &argc, &argv, DALI_DEMO_THEME_PATH );
1302 RunTest( application );