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 Vector2 stageSize = stage.GetSize();
197 Toolkit::ItemLayoutPtr gridLayout = Toolkit::DefaultItemLayout::New( Toolkit::DefaultItemLayout::LIST );
199 gridLayout->GetItemSize( 0, Vector3( stageSize ), itemSize );
200 itemSize.height = stageSize.y / 10;
201 gridLayout->SetItemSize( itemSize );
202 mItemView.AddLayout( *gridLayout );
204 mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
206 mContentLayer.Add( mItemView );
211 std::string subTitle = "";
223 subTitle = "TableView";
233 mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, std::string( std::string( TOOLBAR_TITLE ) + ": " + subTitle ) );
236 bool OnMenu( Toolkit::Button button )
244 Stage stage = Stage::GetCurrent();
245 const float popupWidth = stage.GetSize().x * 0.5f;
247 mMenu = Toolkit::Popup::New();
248 mMenu.SetParentOrigin( ParentOrigin::TOP_LEFT );
249 mMenu.SetAnchorPoint( AnchorPoint::TOP_LEFT );
251 mMenu.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::HideMenu );
252 mMenu.SetSize( popupWidth, 0.0f );
253 mMenu.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
255 Toolkit::TableView tableView = Toolkit::TableView::New( 0, 0 );
256 tableView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
257 tableView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
258 mMenu.Add( tableView );
260 for( unsigned int i = 0; i < MENU_ITEMS_COUNT; ++i )
262 Toolkit::PushButton menuButton = Toolkit::PushButton::New();
263 menuButton.SetName( MENU_ITEMS[ i ].name );
264 menuButton.SetLabel( MENU_ITEMS[ i ].text );
265 menuButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenuSelect );
267 tableView.Add( menuButton );
268 tableView.SetFitHeight( i );
287 bool OnMenuSelect( Toolkit::Button button )
289 bool refresh = false;
291 if( button.GetName() == POPUPS_MENU_ID )
293 if( mDemoState != POPUP )
299 else if( button.GetName() == TABLEVIEW_MENU_ID )
301 if( mDemoState != TABLEVIEW )
304 mDemoState = TABLEVIEW;
319 Toolkit::Popup CreatePopup()
321 Stage stage = Stage::GetCurrent();
322 const float POPUP_WIDTH_DP = stage.GetSize().width * 0.75f;
324 Toolkit::Popup popup = Toolkit::Popup::New();
325 popup.SetName( "POPUP" );
326 popup.SetParentOrigin( ParentOrigin::CENTER );
327 popup.SetAnchorPoint( AnchorPoint::CENTER );
328 popup.SetSize( POPUP_WIDTH_DP, 0.0f );
331 popup.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::OnPopupOutsideTouched );
336 bool OnButtonClicked( Toolkit::Button button )
338 if( button.GetName() == POPUP_BUTTON_EMPTY_ID )
340 mPopup = CreatePopup();
344 else if( button.GetName() == POPUP_BUTTON_TITLE_ID )
346 mPopup = CreatePopup();
347 mPopup.SetTitle( "Popup!" );
351 else if( button.GetName() == POPUP_BUTTON_BUTTONS_1_ID )
353 mPopup = CreatePopup();
355 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
356 okayButton.SetName( OKAY_BUTTON_ID );
357 okayButton.SetLabel( "OK!" );
358 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
359 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
361 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
363 mPopup.AddButton( okayButton );
367 else if( button.GetName() == POPUP_BUTTON_BUTTONS_2_ID )
369 mPopup = CreatePopup();
371 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
372 cancelButton.SetName( CANCEL_BUTTON_ID );
373 cancelButton.SetLabel( "Cancel" );
374 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
375 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
377 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
379 mPopup.AddButton( cancelButton );
381 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
382 okayButton.SetName( OKAY_BUTTON_ID );
383 okayButton.SetLabel( "OK!" );
384 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
385 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
387 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
389 mPopup.AddButton( okayButton );
393 else if( button.GetName() == POPUP_BUTTON_TITLE_BUTTONS_ID )
395 mPopup = CreatePopup();
396 mPopup.SetTitle( "Popup!" );
398 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
399 cancelButton.SetName( CANCEL_BUTTON_ID );
400 cancelButton.SetLabel( "Cancel" );
401 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
402 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
404 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
406 mPopup.AddButton( cancelButton );
408 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
409 okayButton.SetName( OKAY_BUTTON_ID );
410 okayButton.SetLabel( "OK!" );
411 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
412 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
414 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
416 mPopup.AddButton( okayButton );
420 else if( button.GetName() == POPUP_BUTTON_CONTENT_TEXT_ID )
422 mPopup = CreatePopup();
424 TextLabel text = TextLabel::New( CONTENT_TEXT );
425 text.SetName( "POPUP_CONTENT_TEXT" );
426 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
427 text.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
428 text.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
429 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
430 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
431 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
437 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
439 mPopup = CreatePopup();
441 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
442 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
443 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
444 image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
450 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
452 mPopup = CreatePopup();
454 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
455 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
457 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
458 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
464 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
466 mPopup = CreatePopup();
468 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
469 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
471 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
472 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
473 image.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
479 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
481 mPopup = CreatePopup();
483 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
484 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
486 ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
487 image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
488 image.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO );
494 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
496 mPopup = CreatePopup();
497 mPopup.SetTitle( "Popup!" );
499 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
500 text.SetName( "POPUP_CONTENT_TEXT" );
501 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
502 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
503 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
504 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
510 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
512 mPopup = CreatePopup();
513 mPopup.SetTitle( "Popup!" );
515 Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
516 text.SetName( "POPUP_CONTENT_TEXT" );
517 text.SetProperty( TextLabel::Property::MULTI_LINE, true );
518 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
519 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
520 text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
524 Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
525 cancelButton.SetName( CANCEL_BUTTON_ID );
526 cancelButton.SetLabel( "Cancel" );
527 cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
528 cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
530 cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
532 mPopup.AddButton( cancelButton );
534 Toolkit::PushButton okayButton = Toolkit::PushButton::New();
535 okayButton.SetName( OKAY_BUTTON_ID );
536 okayButton.SetLabel( "OK!" );
537 okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
538 okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
540 okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
542 mPopup.AddButton( okayButton );
546 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
548 mPopup = CreatePopup();
549 mPopup.SetTitle( "Warning" );
552 Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
553 content.SetName( "COMPLEX_TABLEVIEW" );
554 content.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
555 content.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
556 content.SetFitHeight( 0 );
557 content.SetFitHeight( 1 );
558 content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
562 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
563 text.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
564 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
565 text.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
575 image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
584 root.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::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( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
636 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
639 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
640 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
646 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
648 mPopup = CreatePopup();
649 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
657 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
658 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
659 table.Add( backing );
665 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
667 mPopup = CreatePopup();
668 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
669 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
672 Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
673 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
676 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
677 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
678 table.Add( backing );
681 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
682 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
683 table.Add( backing );
686 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
687 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
688 table.Add( backing );
695 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
697 mPopup = CreatePopup();
698 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
699 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
702 Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
703 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
707 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
708 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
764 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
767 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
768 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::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( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
774 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
775 text.SetParentOrigin( ParentOrigin::CENTER );
776 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
777 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
778 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
780 table.Add( backing );
783 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
784 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
785 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
786 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
787 text.SetParentOrigin( ParentOrigin::CENTER );
788 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
789 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
791 table.Add( backing );
794 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
795 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
796 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
797 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
798 text.SetParentOrigin( ParentOrigin::CENTER );
799 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
800 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
802 table.Add( backing );
809 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
811 mPopup = CreatePopup();
812 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
813 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
816 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
817 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
818 table.SetFixedHeight( 0, 50.0f );
819 table.SetFixedHeight( 2, 50.0f );
822 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
823 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
824 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
825 text.SetAnchorPoint( AnchorPoint::CENTER );
826 text.SetParentOrigin( ParentOrigin::CENTER );
827 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
828 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
829 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
832 table.Add( backing );
835 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
836 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
837 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
838 text.SetAnchorPoint( AnchorPoint::CENTER );
839 text.SetParentOrigin( ParentOrigin::CENTER );
840 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
841 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
842 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
845 table.Add( backing );
848 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
849 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
850 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
851 text.SetAnchorPoint( AnchorPoint::CENTER );
852 text.SetParentOrigin( ParentOrigin::CENTER );
853 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
854 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
855 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
858 table.Add( backing );
865 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
867 mPopup = CreatePopup();
868 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
869 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
872 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
873 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
874 table.SetFitHeight( 0 );
875 table.SetFitHeight( 2 );
878 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
879 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
880 backing.SetSize( 0.0f, 100.0f );
882 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
883 text.SetAnchorPoint( AnchorPoint::CENTER );
884 text.SetParentOrigin( ParentOrigin::CENTER );
885 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
886 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
887 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
891 table.Add( backing );
894 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
895 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
897 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
898 text.SetAnchorPoint( AnchorPoint::CENTER );
899 text.SetParentOrigin( ParentOrigin::CENTER );
900 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
901 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
902 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
906 table.Add( backing );
909 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
910 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
911 backing.SetSize( 0.0f, 100.0f );
913 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
914 text.SetAnchorPoint( AnchorPoint::CENTER );
915 text.SetParentOrigin( ParentOrigin::CENTER );
916 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
917 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
918 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
922 table.Add( backing );
929 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
931 mPopup = CreatePopup();
932 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
933 mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
935 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
936 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
937 table.SetFitHeight( 1 );
940 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
941 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
943 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
944 text.SetAnchorPoint( AnchorPoint::CENTER );
945 text.SetParentOrigin( ParentOrigin::CENTER );
946 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
947 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
948 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
952 table.Add( backing );
955 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
956 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
957 backing.SetSize( 0.0f, 200.0f );
959 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
960 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
961 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
962 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
964 text.SetAnchorPoint( AnchorPoint::CENTER );
965 text.SetParentOrigin( ParentOrigin::CENTER );
968 table.Add( backing );
971 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
972 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
974 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
975 text.SetAnchorPoint( AnchorPoint::CENTER );
976 text.SetParentOrigin( ParentOrigin::CENTER );
977 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
978 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
979 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
983 table.Add( backing );
990 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
992 mPopup = CreatePopup();
993 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
994 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
995 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
997 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
998 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
999 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1000 table.SetFitHeight( 0 );
1001 table.SetFitHeight( 1 );
1002 table.SetFitHeight( 2 );
1005 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1006 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1007 backing.SetSize( 0.0f, 100.0f );
1009 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1010 text.SetAnchorPoint( AnchorPoint::CENTER );
1011 text.SetParentOrigin( ParentOrigin::CENTER );
1012 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1013 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1014 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1016 backing.Add( text );
1018 table.Add( backing );
1021 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
1022 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1023 backing.SetSize( 0.0f, 200.0f );
1025 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1026 text.SetAnchorPoint( AnchorPoint::CENTER );
1027 text.SetParentOrigin( ParentOrigin::CENTER );
1028 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1029 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1030 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1032 backing.Add( text );
1034 table.Add( backing );
1037 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1038 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1039 backing.SetSize( 0.0f, 300.0f );
1041 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1042 text.SetAnchorPoint( AnchorPoint::CENTER );
1043 text.SetParentOrigin( ParentOrigin::CENTER );
1044 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1045 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1046 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1048 backing.Add( text );
1050 table.Add( backing );
1053 mPopup.Add( table );
1057 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
1059 mPopup = CreatePopup();
1060 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1061 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1062 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1064 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1065 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1066 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1067 table.SetFitHeight( 0 );
1068 table.SetFitHeight( 1 );
1071 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1072 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1073 backing.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
1074 backing.SetSize( 0.0f, 100.0f );
1076 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1077 text.SetAnchorPoint( AnchorPoint::CENTER );
1078 text.SetParentOrigin( ParentOrigin::CENTER );
1079 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1080 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1081 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1083 backing.Add( text );
1085 table.Add( backing );
1088 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1089 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1090 backing.SetSize( 0.0f, 200.0f );
1092 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1093 text.SetAnchorPoint( AnchorPoint::CENTER );
1094 text.SetParentOrigin( ParentOrigin::CENTER );
1095 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1096 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1097 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1099 backing.Add( text );
1101 table.Add( backing );
1104 mPopup.Add( table );
1108 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
1110 mPopup = CreatePopup();
1111 mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
1112 mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
1113 mPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
1115 Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
1116 table.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1117 table.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
1118 table.SetFixedHeight( 0, 20.0f );
1119 table.SetFitHeight( 1 );
1122 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1123 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1125 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1126 text.SetAnchorPoint( AnchorPoint::CENTER );
1127 text.SetParentOrigin( ParentOrigin::CENTER );
1128 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1129 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1130 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1132 backing.Add( text );
1134 table.Add( backing );
1137 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1138 backing.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1139 backing.SetSize( 0.0f, 200.0f );
1141 Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1142 text.SetAnchorPoint( AnchorPoint::CENTER );
1143 text.SetParentOrigin( ParentOrigin::CENTER );
1144 text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1145 text.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
1146 text.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
1148 backing.Add( text );
1150 table.Add( backing );
1153 mPopup.Add( table );
1157 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
1168 void OnPopupOutsideTouched()
1176 void OnKeyEvent( const KeyEvent& event )
1178 if( event.state == KeyEvent::Down )
1180 if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
1182 // Exit application when click back or escape.
1183 mApplication.Quit();
1188 public: // From ItemFactory
1191 * @brief Return the number of items to display in the item view
1193 * @return Return the number of items to display
1195 virtual unsigned int GetNumberOfItems()
1197 switch( mDemoState )
1201 return POPUP_BUTTON_ITEMS_COUNT;
1206 return TABLEVIEW_BUTTON_ITEMS_COUNT;
1219 * @brief Create a new item to populate the item view with
1221 * @param[in] itemId The index of the item to create
1222 * @return Return the created actor for the given ID
1224 virtual Actor NewItem(unsigned int itemId)
1226 const ButtonItem* buttonDataArray = NULL;
1227 switch( mDemoState )
1231 buttonDataArray = POPUP_BUTTON_ITEMS;
1237 buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
1247 if( buttonDataArray )
1249 Toolkit::PushButton popupButton = Toolkit::PushButton::New();
1250 popupButton.SetName( buttonDataArray[ itemId ].name );
1251 popupButton.SetLabel( buttonDataArray[ itemId ].text );
1252 popupButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
1254 popupButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
1255 popupButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
1257 popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
1273 Application& mApplication;
1274 Toolkit::Control mView; ///< The View instance.
1275 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1276 Layer mContentLayer; ///< Content layer
1278 Toolkit::TextLabel mTitleActor; ///< Title text
1280 Toolkit::Popup mMenu; ///< The navigation menu
1281 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
1283 Toolkit::Popup mPopup;
1285 Toolkit::ItemView mItemView; ///< ItemView to hold test images
1287 DemoState mDemoState;
1290 void RunTest( Application& application )
1292 SizeNegotiationController test( application );
1294 application.MainLoop();
1297 // Entry point for Linux & SLP applications
1299 int main( int argc, char **argv )
1301 Application application = Application::New( &argc, &argv );
1303 RunTest( application );