X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fbuttons%2Fbuttons-example.cpp;h=bd10f407112b52678dda41d2dccf6e4d2b329444;hb=ff961cccdcbf1c30b0f53b0da027df855cde2b63;hp=11c19b084c83598b5bcb2dd2d7b6d986994ca3e2;hpb=cb64d707bb95474fe193654b1325575b311af254;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/buttons/buttons-example.cpp b/examples/buttons/buttons-example.cpp index 11c19b0..bd10f40 100644 --- a/examples/buttons/buttons-example.cpp +++ b/examples/buttons/buttons-example.cpp @@ -15,59 +15,41 @@ * */ -#include "../shared/view.h" +#include "shared/view.h" #include #include using namespace Dali; -namespace -{ -// Used to produce visually same dimensions on desktop and device builds -float ScalePointSize( int pointSize ) -{ - Dali::Vector2 dpi = Dali::Stage::GetCurrent().GetDpi(); - float meanDpi = (dpi.height + dpi.width) * 0.5f; - return pointSize * meanDpi / 220.0f; -} - -} // namespace - // Define this so that it is interchangeable // "DP" stands for Device independent Pixels -#define DP(x) ScalePointSize(x) +#define DP(x) x namespace { -const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg"; -const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png"; +const char* const BACKGROUND_IMAGE = DEMO_IMAGE_DIR "background-gradient.jpg"; +const char* const TOOLBAR_IMAGE = DEMO_IMAGE_DIR "top-bar.png"; const char* const TOOLBAR_TITLE = "Buttons"; -const char* const SMALL_IMAGE_1 = DALI_IMAGE_DIR "gallery-small-14.jpg"; -const char* const BIG_IMAGE_1 = DALI_IMAGE_DIR "gallery-large-4.jpg"; - -const char* const SMALL_IMAGE_2 = DALI_IMAGE_DIR "gallery-small-20.jpg"; -const char* const BIG_IMAGE_2 = DALI_IMAGE_DIR "gallery-large-11.jpg"; +const char* const SMALL_IMAGE_1 = DEMO_IMAGE_DIR "gallery-small-14.jpg"; +const char* const BIG_IMAGE_1 = DEMO_IMAGE_DIR "gallery-large-4.jpg"; -const char* const SMALL_IMAGE_3 = DALI_IMAGE_DIR "gallery-small-25.jpg"; -const char* const BIG_IMAGE_3 = DALI_IMAGE_DIR "gallery-large-13.jpg"; +const char* const SMALL_IMAGE_2 = DEMO_IMAGE_DIR "gallery-small-20.jpg"; +const char* const BIG_IMAGE_2 = DEMO_IMAGE_DIR "gallery-large-11.jpg"; -const char* const ENABLED_IMAGE = DALI_IMAGE_DIR "item-select-check.png"; +const char* const SMALL_IMAGE_3 = DEMO_IMAGE_DIR "gallery-small-25.jpg"; +const char* const BIG_IMAGE_3 = DEMO_IMAGE_DIR "gallery-large-13.jpg"; -const char* const PUSHBUTTON_PRESS_IMAGE = DALI_IMAGE_DIR "button-down.9.png"; -const char* const PUSHBUTTON_DIM_IMAGE = DALI_IMAGE_DIR "button-disabled.9.png"; -const char* const PUSHBUTTON_BUTTON_IMAGE = DALI_IMAGE_DIR "button-up.9.png"; - -const char* const CHECKBOX_UNCHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-unchecked.png"; -const char* const CHECKBOX_CHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-checked.png"; +const char* const ENABLED_IMAGE = DEMO_IMAGE_DIR "item-select-check.png"; const Vector4 BACKGROUND_COLOUR( 1.0f, 1.0f, 1.0f, 0.15f ); // Layout sizes -const int RADIO_LABEL_THUMBNAIL_SIZE = 48; +const int RADIO_LABEL_THUMBNAIL_SIZE = 60; +const int RADIO_LABEL_THUMBNAIL_SIZE_SMALL = 40; const int RADIO_IMAGE_SPACING = 8; const int BUTTON_HEIGHT = 48; @@ -120,235 +102,255 @@ class ButtonsController: public ConnectionTracker TOOLBAR_IMAGE, TOOLBAR_TITLE ); - int yPos = TOP_MARGIN + MARGIN_SIZE; + Toolkit::TableView contentTable = Toolkit::TableView::New( 4, 1 ); + contentTable.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + contentTable.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); + contentTable.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + contentTable.SetParentOrigin( ParentOrigin::TOP_LEFT ); + contentTable.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE * 0.5f ) ); + + for( unsigned int i = 0; i < contentTable.GetRows(); ++i ) + { + contentTable.SetFitHeight( i ); + } + + contentTable.SetPosition( 0.0f, TOP_MARGIN ); + + mContentLayer.Add( contentTable ); // Image selector radio group - Actor radioGroup2Background = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR ); - radioGroup2Background.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - radioGroup2Background.SetParentOrigin( ParentOrigin::TOP_LEFT ); - radioGroup2Background.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); - radioGroup2Background.SetSize( DP(348), DP(GROUP2_HEIGHT) ); - mContentLayer.Add( radioGroup2Background ); + Toolkit::TableView radioGroup2Background = Toolkit::TableView::New( 2, 2 ); + radioGroup2Background.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + radioGroup2Background.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); + radioGroup2Background.SetBackgroundColor( BACKGROUND_COLOUR ); + radioGroup2Background.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) ); + radioGroup2Background.SetFitHeight( 0 ); + radioGroup2Background.SetFitHeight( 1 ); + radioGroup2Background.SetFitWidth( 0 ); + + contentTable.Add( radioGroup2Background ); + + Toolkit::TableView radioButtonsGroup2 = Toolkit::TableView::New( 3, 1 ); + radioButtonsGroup2.SetCellPadding( Size( 0.0f, MARGIN_SIZE * 0.5f ) ); + radioButtonsGroup2.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + for( unsigned int i = 0; i < radioButtonsGroup2.GetRows(); ++i ) + { + radioButtonsGroup2.SetFitHeight( i ); + } + radioButtonsGroup2.SetFitWidth( 0 ); + + radioGroup2Background.AddChild( radioButtonsGroup2, Toolkit::TableView::CellPosition( 0, 0 ) ); - Actor radioButtonsGroup2 = Actor::New(); - radioButtonsGroup2.SetParentOrigin( ParentOrigin::TOP_LEFT ); - radioButtonsGroup2.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - radioButtonsGroup2.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) ); - radioButtonsGroup2.SetSize( DP(100), DP(160) ); + // TableView to lay out 3x Radio buttons on the left, and 3x Image thumbnails on the right. + Toolkit::TableView imageSelectTableView = Toolkit::TableView::New( 3, 2 ); + imageSelectTableView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + imageSelectTableView.SetFitHeight( 0 ); + imageSelectTableView.SetFitHeight( 1 ); + imageSelectTableView.SetFitHeight( 2 ); + imageSelectTableView.SetFitWidth( 0 ); + imageSelectTableView.SetFitWidth( 1 ); + imageSelectTableView.SetCellPadding( Vector2( 6.0f, 0.0f ) ); - radioGroup2Background.Add( radioButtonsGroup2 ); + radioButtonsGroup2.Add( imageSelectTableView ); int radioY = 0; // Radio 1 { - ImageActor imageActor = ImageActor::New( Image::New( SMALL_IMAGE_1 ) ); - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); - mRadioButtonImage1 = Dali::Toolkit::RadioButton::New( imageActor ); + Toolkit::ImageView image = Toolkit::ImageView::New( SMALL_IMAGE_1 ); + image.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); + + mRadioButtonImage1 = Dali::Toolkit::RadioButton::New( "1" ); mRadioButtonImage1.SetParentOrigin( ParentOrigin::TOP_LEFT ); mRadioButtonImage1.SetAnchorPoint( AnchorPoint::TOP_LEFT ); mRadioButtonImage1.SetPosition( 0, DP(radioY) ); - mRadioButtonImage1.SetActive( true ); + mRadioButtonImage1.SetSelected( true ); - radioButtonsGroup2.Add( mRadioButtonImage1 ); + imageSelectTableView.AddChild( mRadioButtonImage1, Toolkit::TableView::CellPosition( 0, 0 ) ); + imageSelectTableView.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) ); } // Radio 2 { radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING; - ImageActor imageActor = ImageActor::New( Image::New( SMALL_IMAGE_2 ) ); - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); + Toolkit::ImageView image = Toolkit::ImageView::New( SMALL_IMAGE_2 ); + image.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); - mRadioButtonImage2 = Dali::Toolkit::RadioButton::New( imageActor ); + mRadioButtonImage2 = Dali::Toolkit::RadioButton::New( "2" ); mRadioButtonImage2.SetParentOrigin( ParentOrigin::TOP_LEFT ); mRadioButtonImage2.SetAnchorPoint( AnchorPoint::TOP_LEFT ); mRadioButtonImage2.SetPosition( 0, DP(radioY) ); - radioButtonsGroup2.Add( mRadioButtonImage2 ); + imageSelectTableView.AddChild( mRadioButtonImage2, Toolkit::TableView::CellPosition( 1, 0 ) ); + imageSelectTableView.AddChild( image, Toolkit::TableView::CellPosition( 1, 1 ) ); } // Radio 3 { radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING; - ImageActor imageActor = ImageActor::New( Image::New( SMALL_IMAGE_3 ) ); - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); + Toolkit::ImageView image = Toolkit::ImageView::New( SMALL_IMAGE_3 ); + image.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); - mRadioButtonImage3 = Dali::Toolkit::RadioButton::New( imageActor ); + mRadioButtonImage3 = Dali::Toolkit::RadioButton::New( "3" ); mRadioButtonImage3.SetParentOrigin( ParentOrigin::TOP_LEFT ); mRadioButtonImage3.SetAnchorPoint( AnchorPoint::TOP_LEFT ); mRadioButtonImage3.SetPosition( 0, DP(radioY) ); - radioButtonsGroup2.Add( mRadioButtonImage3 ); + imageSelectTableView.AddChild( mRadioButtonImage3, Toolkit::TableView::CellPosition( 2, 0 ) ); + imageSelectTableView.AddChild( image, Toolkit::TableView::CellPosition( 2, 1 ) ); } // Create select button mUpdateButton = Toolkit::PushButton::New(); - mUpdateButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); - mUpdateButton.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - mUpdateButton.SetPosition( 0, DP(MARGIN_SIZE) ); - mUpdateButton.SetLabelText("Select"); - mUpdateButton.SetSize( DP(100), DP(BUTTON_HEIGHT) ); - - mUpdateButton.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - mUpdateButton.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) ); - mUpdateButton.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); + mUpdateButton.SetLabelText( "Select" ); + mUpdateButton.SetName( "selectButton" ); + mUpdateButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); mUpdateButton.ClickedSignal().Connect( this, &ButtonsController::OnButtonClicked ); - radioButtonsGroup2.Add(mUpdateButton); + radioGroup2Background.AddChild( mUpdateButton, Toolkit::TableView::CellPosition( 1, 0 ) ); - // ImageActor to display selected image - mBigImage1 = Image::New( BIG_IMAGE_1 ); - mBigImage2 = Image::New( BIG_IMAGE_2 ); - mBigImage3 = Image::New( BIG_IMAGE_3 ); - - mImage = ImageActor::New( mBigImage1 ); - mImage.SetParentOrigin( ParentOrigin::TOP_RIGHT ); - mImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - mImage.SetPosition( DP(MARGIN_SIZE), 0 ); - mImage.SetSize( DP(218), DP(218) ); - radioButtonsGroup2.Add( mImage ); + // ImageView to display selected image + mImage = Toolkit::ImageView::New( BIG_IMAGE_1 ); + mImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); + mImage.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO ); + radioGroup2Background.AddChild( mImage, Toolkit::TableView::CellPosition( 0, 1, 2, 1 ) ); // The enable/disable radio group - yPos += GROUP2_HEIGHT + MARGIN_SIZE; + Toolkit::TableView radioGroup1Background = Toolkit::TableView::New( 1, 1 ); + radioGroup1Background.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + radioGroup1Background.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); + radioGroup1Background.SetBackgroundColor( BACKGROUND_COLOUR ); + radioGroup1Background.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) ); + radioGroup1Background.SetFitHeight( 0 ); - Actor radioGroup1Background = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR ); - radioGroup1Background.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - radioGroup1Background.SetParentOrigin( ParentOrigin::TOP_LEFT ); - radioGroup1Background.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); - radioGroup1Background.SetSize( DP(348), DP(GROUP1_HEIGHT) ); - mContentLayer.Add( radioGroup1Background ); + contentTable.Add( radioGroup1Background ); // Radio group - Actor radioButtonsGroup1 = Actor::New(); - radioButtonsGroup1.SetParentOrigin( ParentOrigin::TOP_LEFT ); - radioButtonsGroup1.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - radioButtonsGroup1.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) ); + Toolkit::TableView radioButtonsGroup1 = Toolkit::TableView::New( 2, 1 ); + radioButtonsGroup1.SetCellPadding( Size( 0.0f, MARGIN_SIZE * 0.5f ) ); + radioButtonsGroup1.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + for( unsigned int i = 0; i < radioButtonsGroup1.GetRows(); ++i ) + { + radioButtonsGroup1.SetFitHeight( i ); + } + radioButtonsGroup1.SetFitWidth( 0 ); radioGroup1Background.Add( radioButtonsGroup1 ); - // First radio button - { - Toolkit::TableView tableView = Toolkit::TableView::New( 1, 2 ); - tableView.SetSize( DP(260), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); + // TableView to lay out 2x Radio buttons on the left, and 1x Tick image on the right. + Toolkit::TableView tableView = Toolkit::TableView::New( 2, 2 ); + tableView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + tableView.SetFitHeight( 0 ); + tableView.SetFitHeight( 1 ); + tableView.SetFitWidth( 0 ); + tableView.SetFitWidth( 1 ); - ImageActor imageActor = ImageActor::New( Image::New( ENABLED_IMAGE ) ); - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); - tableView.AddChild( imageActor, Toolkit::TableView::CellPosition( 0, 1 ) ); - tableView.SetFixedWidth( 1, DP(RADIO_LABEL_THUMBNAIL_SIZE) ); + Toolkit::TextLabel textLabel = Toolkit::TextLabel::New( "Select enabled" ); + textLabel.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::WIDTH ); + textLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT ); + textLabel.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" ); - Toolkit::RadioButton radioButton = Dali::Toolkit::RadioButton::New( tableView ); - radioButton.SetName( "radio-select-enable" ); + Toolkit::ImageView image = Toolkit::ImageView::New( ENABLED_IMAGE ); + image.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); + image.SetPadding( Padding( DP(20.0f), 0.0f, 0.0f, 0.0f ) ); + tableView.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) ); + + radioButtonsGroup1.Add( tableView ); + + // First radio button + { + Toolkit::RadioButton radioButton = Dali::Toolkit::RadioButton::New( "Select enabled" ); + radioButton.SetName( "radioSelectEnable" ); radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); radioButton.SetPosition( 0, 0 ); - radioButton.SetActive( true ); + radioButton.SetSelected( true ); - radioButton.ToggledSignal().Connect( this, &ButtonsController::EnableSelectButtonToggle ); + radioButton.StateChangedSignal().Connect( this, &ButtonsController::EnableSelectButton ); - radioButtonsGroup1.Add( radioButton ); + tableView.AddChild( radioButton, Toolkit::TableView::CellPosition( 0, 0 ) ); } // Second radio button { Toolkit::RadioButton radioButton = Dali::Toolkit::RadioButton::New( "Select disabled" ); - radioButton.SetName( "radio-select-disable" ); + radioButton.SetName( "radioSelectDisable" ); radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); radioButton.SetPosition( 0, DP(50) ); - radioButton.ToggledSignal().Connect( this, &ButtonsController::EnableSelectButtonToggle ); + radioButton.StateChangedSignal().Connect( this, &ButtonsController::EnableSelectButton ); - radioButtonsGroup1.Add( radioButton ); + tableView.AddChild( radioButton, Toolkit::TableView::CellPosition( 1, 0 ) ); } // CheckBoxes - yPos += GROUP1_HEIGHT + MARGIN_SIZE; - - Actor checkBoxBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR ); - checkBoxBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBoxBackground.SetParentOrigin( ParentOrigin::TOP_LEFT ); - checkBoxBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); - checkBoxBackground.SetSize( DP(430), DP(GROUP3_HEIGHT) ); - mContentLayer.Add( checkBoxBackground ); - - Dali::Image unchecked = Dali::Image::New( CHECKBOX_UNCHECKED_IMAGE ); - Dali::Image checked = Dali::Image::New( CHECKBOX_CHECKED_IMAGE ); - - int checkYPos = MARGIN_SIZE; + Toolkit::TableView checkBoxBackground = Toolkit::TableView::New( 3, 1 ); + checkBoxBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + checkBoxBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); + checkBoxBackground.SetBackgroundColor( BACKGROUND_COLOUR ); + checkBoxBackground.SetCellPadding( Size( MARGIN_SIZE / 2.0f, MARGIN_SIZE / 2.0f ) ); + for( unsigned int i = 0; i < checkBoxBackground.GetRows(); ++i ) { - Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New(); - checkBox.SetName( "checkbox1" ); - checkBox.SetPosition( DP(MARGIN_SIZE), DP(checkYPos) ); - checkBox.SetParentOrigin( ParentOrigin::TOP_LEFT ); - checkBox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBox.SetBackgroundImage( unchecked ); - checkBox.SetCheckedImage( checked ); - checkBox.SetSize( DP(48), DP(48) ); - checkBox.ToggledSignal().Connect( this, &ButtonsController::OnCheckBoxesToggled ); - - checkBoxBackground.Add( checkBox ); + checkBoxBackground.SetFitHeight( i ); } - checkYPos += 60; + contentTable.Add( checkBoxBackground ); { - Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New(); - checkBox.SetName( "checkbox2" ); - checkBox.SetPosition( DP(MARGIN_SIZE), DP(checkYPos) ); - checkBox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBox.SetBackgroundImage( unchecked ); - checkBox.SetCheckedImage( checked ); - checkBox.SetSize( DP(48), DP(48) ); - checkBox.SetChecked( true ); - checkBox.ToggledSignal().Connect( this, &ButtonsController::OnCheckBoxesToggled ); - - checkBoxBackground.Add( checkBox ); - } + mCheckboxButton1 = Toolkit::CheckBoxButton::New(); + mCheckboxButton1.SetName( "checkbox1" ); + mCheckboxButton1.SetLabelText( "CheckBox1 is unselected" ); + mCheckboxButton1.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesSelected ); - checkYPos += 60; + checkBoxBackground.Add( mCheckboxButton1 ); + } { - Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New(); - checkBox.SetName( "checkbox3" ); - checkBox.SetPosition( DP(MARGIN_SIZE), DP(checkYPos) ); - checkBox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBox.SetBackgroundImage( unchecked ); - checkBox.SetCheckedImage( checked ); - checkBox.SetSize( DP(48), DP(48) ); - checkBox.ToggledSignal().Connect( this, &ButtonsController::OnCheckBoxesToggled ); - - checkBoxBackground.Add( checkBox ); + mCheckboxButton2 = Toolkit::CheckBoxButton::New(); + mCheckboxButton2.SetName( "checkbox2" ); + mCheckboxButton2.SetLabelText( "CheckBox2 is selected" ); + mCheckboxButton2.SetSelected( true ); + mCheckboxButton2.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesSelected ); + + checkBoxBackground.Add( mCheckboxButton2 ); } - // Create toggle button - yPos += GROUP3_HEIGHT + MARGIN_SIZE; + { + mCheckboxButton3 = Toolkit::CheckBoxButton::New(); + mCheckboxButton3.SetName( "checkbox3" ); + mCheckboxButton3.SetLabelText( "CheckBox3 is unselected" ); + mCheckboxButton3.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesSelected ); + + checkBoxBackground.Add( mCheckboxButton3 ); + } - Actor toggleBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR ); - toggleBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - toggleBackground.SetParentOrigin( ParentOrigin::TOP_LEFT ); - toggleBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); - toggleBackground.SetSize( DP(150 + MARGIN_SIZE * 2), DP(GROUP4_HEIGHT) ); - mContentLayer.Add( toggleBackground ); + // Create togglabe button + Toolkit::TableView toggleBackground = Toolkit::TableView::New( 3, 1 ); + toggleBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + toggleBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); + toggleBackground.SetBackgroundColor( BACKGROUND_COLOUR ); + toggleBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) ); - Toolkit::PushButton toggleButton = Toolkit::PushButton::New(); - toggleButton.SetToggleButton( true ); - toggleButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); - toggleButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - toggleButton.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) ); - toggleButton.SetLabelText( "Toggle OFF" ); - toggleButton.SetSize( DP(150), DP(BUTTON_HEIGHT) ); + for( unsigned int i = 0; i < toggleBackground.GetRows(); ++i ) + { + toggleBackground.SetFitHeight( i ); + } - toggleButton.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - toggleButton.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) ); - toggleButton.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); + contentTable.Add( toggleBackground ); - toggleButton.ToggledSignal().Connect( this, &ButtonsController::OnButtonToggled ); + mToggleButton = Toolkit::PushButton::New(); + mToggleButton.SetTogglableButton( true ); + mToggleButton.SetLabelText( "Unselected" ); + mToggleButton.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + mToggleButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); + mToggleButton.StateChangedSignal().Connect( this, &ButtonsController::OnButtonSelected ); - toggleBackground.Add( toggleButton ); + toggleBackground.Add( mToggleButton ); } void OnKeyEvent( const KeyEvent& event ) @@ -363,33 +365,53 @@ class ButtonsController: public ConnectionTracker } } - bool OnButtonToggled( Toolkit::Button button, bool state ) + bool OnButtonSelected( Toolkit::Button button ) { Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast( button ); if( pushButton ) { - if( state ) + if( button.IsSelected() ) { - pushButton.SetLabelText( "Toggle ON" ); + pushButton.SetLabelText( "Selected" ); } else { - pushButton.SetLabelText( "Toggle OFF" ); + pushButton.SetLabelText( "Unselected" ); } } return true; } - bool EnableSelectButtonToggle( Toolkit::Button button, bool state ) + bool EnableSelectButton( Toolkit::Button button ) { - if( button.GetName() == "radio-select-enable" && state == true ) + if( button.GetName() == "radioSelectEnable" && button.IsSelected() == true ) { - mUpdateButton.SetDimmed( false ); + mUpdateButton.SetDisabled( false ); + + mRadioButtonImage1.SetDisabled( false ); + mRadioButtonImage2.SetDisabled( false ); + mRadioButtonImage3.SetDisabled( false ); + + mCheckboxButton1.SetDisabled( false ); + mCheckboxButton2.SetDisabled( false ); + mCheckboxButton3.SetDisabled( false ); + + mToggleButton.SetDisabled( false ); } - else if( button.GetName() == "radio-select-disable" && state == true ) + else if( button.GetName() == "radioSelectDisable" && button.IsSelected() == true ) { - mUpdateButton.SetDimmed( true ); + mUpdateButton.SetDisabled( true ); + + mRadioButtonImage1.SetDisabled( true ); + mRadioButtonImage2.SetDisabled( true ); + mRadioButtonImage3.SetDisabled( true ); + + mCheckboxButton1.SetDisabled( true ); + mCheckboxButton2.SetDisabled( true ); + mCheckboxButton3.SetDisabled( true ); + + mToggleButton.SetDisabled( true ); } return true; @@ -397,30 +419,66 @@ class ButtonsController: public ConnectionTracker bool OnButtonClicked(Toolkit::Button button) { - if( mRadioButtonImage1.IsActive() ) + if( mRadioButtonImage1.IsSelected() ) { - mImage.SetImage( mBigImage1 ); + mImage.SetImage( BIG_IMAGE_1 ); } - else if( mRadioButtonImage2.IsActive() ) + else if( mRadioButtonImage2.IsSelected() ) { - mImage.SetImage( mBigImage2 ); + mImage.SetImage( BIG_IMAGE_2 ); } - else if( mRadioButtonImage3.IsActive() ) + else if( mRadioButtonImage3.IsSelected() ) { - mImage.SetImage( mBigImage3 ); + mImage.SetImage( BIG_IMAGE_3 ); } return true; } - bool OnCheckBoxesToggled( Toolkit::Button button, bool state ) + bool OnCheckBoxesSelected( Toolkit::Button button ) { + if( button.GetName() == "checkbox1" ) + { + if( button.IsSelected() ) + { + button.SetLabelText("CheckBox1 is selected"); + } + else + { + button.SetLabelText("CheckBox1 is unselected"); + } + } + + if( button.GetName() == "checkbox2" ) + { + if( button.IsSelected() ) + { + button.SetLabelText("CheckBox2 is selected"); + } + else + { + button.SetLabelText("CheckBox2 is unselected"); + } + } + + if( button.GetName() == "checkbox3" ) + { + if( button.IsSelected() ) + { + button.SetLabelText("CheckBox3 is selected"); + } + else + { + button.SetLabelText("CheckBox3 is unselected"); + } + } + return true; } - private: +private: Application& mApplication; - Toolkit::View mView; ///< The View instance. + Toolkit::Control mView; ///< The View instance. Toolkit::ToolBar mToolBar; ///< The View's Toolbar. Layer mContentLayer; ///< Content layer @@ -429,11 +487,16 @@ class ButtonsController: public ConnectionTracker Toolkit::RadioButton mRadioButtonImage3; Toolkit::PushButton mUpdateButton; + Toolkit::PushButton mToggleButton; + + Toolkit::CheckBoxButton mCheckboxButton1; + Toolkit::CheckBoxButton mCheckboxButton2; + Toolkit::CheckBoxButton mCheckboxButton3; + + Animation mAnimation; + float mLastPoint; - Image mBigImage1; - Image mBigImage2; - Image mBigImage3; - ImageActor mImage; + Toolkit::ImageView mImage; }; void RunTest( Application& application ) @@ -443,11 +506,11 @@ void RunTest( Application& application ) application.MainLoop(); } -// Entry point for Linux & SLP applications +// Entry point for Linux & Tizen applications // -int main( int argc, char **argv ) +int DALI_EXPORT_API main( int argc, char **argv ) { - Application application = Application::New( &argc, &argv ); + Application application = Application::New( &argc, &argv, DEMO_THEME_PATH ); RunTest( application );