X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-demo.git;a=blobdiff_plain;f=examples%2Ffocus-integration%2Ffocus-integration.cpp;h=5c471cb9762c387aaf37dcff7b6075d9ae07c8e5;hp=6f9dad57b8a58c95b6831d86b6ff0b03daf043ff;hb=1b19fd140ff139b5854a1a62447faf31b175d8f6;hpb=b26d446b0cb6a316abc3a79d4fc70d0ae1b7994c diff --git a/examples/focus-integration/focus-integration.cpp b/examples/focus-integration/focus-integration.cpp index 6f9dad5..5c471cb 100644 --- a/examples/focus-integration/focus-integration.cpp +++ b/examples/focus-integration/focus-integration.cpp @@ -15,161 +15,158 @@ * */ -#include "shared/view.h" #include #include +#include "shared/view.h" using namespace Dali; using namespace Dali::Toolkit; namespace { - 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 = "Focus Integration"; -const Vector4 BACKGROUND_COLOUR( 1.0f, 1.0f, 1.0f, 0.15f ); +const char* const TOOLBAR_IMAGE = DEMO_IMAGE_DIR "top-bar.png"; +const char* const TOOLBAR_TITLE = "Focus Integration"; +const Vector4 BACKGROUND_COLOUR(1.0f, 1.0f, 1.0f, 0.15f); // Layout sizes -const int MARGIN_SIZE = 10; -const int TOP_MARGIN = 85; -const std::string ITEMNAME[] = { "TextLabel", "TextField", "TextEditor", "PushButton", "RadioButton", "CheckBoxButton" }; +const int MARGIN_SIZE = 10; +const int TOP_MARGIN = 85; +const std::string ITEMNAME[] = {"TextLabel", "TextField", "TextEditor", "PushButton", "RadioButton", "CheckBoxButton"}; -} // namespace +} // namespace /** * @brief Shows how integrated DALi Focus works. */ -class FocusIntegrationExample: public ConnectionTracker +class FocusIntegrationExample : public ConnectionTracker { public: - - FocusIntegrationExample( Application& application ) - : mApplication( application ) + FocusIntegrationExample(Application& application) + : mApplication(application) { // Connect to the Application's Init signal - mApplication.InitSignal().Connect( this, &FocusIntegrationExample::Create ); + mApplication.InitSignal().Connect(this, &FocusIntegrationExample::Create); } - void Create( Application& application ) + void Create(Application& application) { - mWindow = application.GetWindow(); + mWindow = application.GetWindow(); Vector2 windowSize = mWindow.GetSize(); - mContentLayer = DemoHelper::CreateView( application, - mView, - mToolBar, - BACKGROUND_IMAGE, - TOOLBAR_IMAGE, - TOOLBAR_TITLE ); + mContentLayer = DemoHelper::CreateView(application, + mView, + mToolBar, + BACKGROUND_IMAGE, + TOOLBAR_IMAGE, + TOOLBAR_TITLE); TableView contentTable = TableView::New(2, 1); contentTable.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH); contentTable.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT); - contentTable.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - contentTable.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT); + contentTable.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + contentTable.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); contentTable.SetCellPadding(Size(MARGIN_SIZE, MARGIN_SIZE * 0.5f)); - contentTable.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); + contentTable.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - for( unsigned int i = 0; i < contentTable.GetRows(); ++i ) + for(unsigned int i = 0; i < contentTable.GetRows(); ++i) { - contentTable.SetFitHeight( i ); + contentTable.SetFitHeight(i); } - contentTable.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, TOP_MARGIN )); - mContentLayer.Add( contentTable ); + contentTable.SetProperty(Actor::Property::POSITION, Vector2(0.0f, TOP_MARGIN)); + mContentLayer.Add(contentTable); // Create label to display which control's KeyEvent callback is called mEventLabel = TextLabel::New("Controls don't get KeyEvent yet"); - mEventLabel.SetProperty( Actor::Property::SIZE, Vector2( windowSize.width, windowSize.height*0.1f ) ); + mEventLabel.SetProperty(Actor::Property::SIZE, Vector2(windowSize.width, windowSize.height * 0.1f)); mEventLabel.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH); - mEventLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" ); - mEventLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); - mEventLabel.SetBackgroundColor( Color::WHITE ); - contentTable.Add( mEventLabel ); + mEventLabel.SetProperty(TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER"); + mEventLabel.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER"); + mEventLabel.SetBackgroundColor(Color::WHITE); + contentTable.Add(mEventLabel); - mContainer = TableView::New( 4, 3 ); - mContainer.SetProperty( Actor::Property::SIZE, Vector2( windowSize.width, windowSize.height*0.4f ) ); + mContainer = TableView::New(4, 3); + mContainer.SetProperty(Actor::Property::SIZE, Vector2(windowSize.width, windowSize.height * 0.4f)); mContainer.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH); - mContainer.SetBackgroundColor( BACKGROUND_COLOUR ); - mContainer.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) ); - mContainer.SetRelativeHeight( 0, 0.2f); - mContainer.SetRelativeHeight( 1, 0.3f); - mContainer.SetRelativeHeight( 2, 0.2f); - mContainer.SetRelativeHeight( 3, 0.3f); - mContainer.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); - contentTable.Add( mContainer ); + mContainer.SetBackgroundColor(BACKGROUND_COLOUR); + mContainer.SetCellPadding(Size(MARGIN_SIZE, MARGIN_SIZE)); + mContainer.SetRelativeHeight(0, 0.2f); + mContainer.SetRelativeHeight(1, 0.3f); + mContainer.SetRelativeHeight(2, 0.2f); + mContainer.SetRelativeHeight(3, 0.3f); + mContainer.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); + contentTable.Add(mContainer); // Make name label for each controls for(int i = 0; i < 6; i++) { - TextLabel itemLabel = TextLabel::New( ITEMNAME[i] ); - itemLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - itemLabel.SetBackgroundColor( BACKGROUND_COLOUR ); - itemLabel.SetProperty( TextLabel::Property::POINT_SIZE, 14.0f ); - itemLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" ); - itemLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); - mContainer.AddChild( itemLabel, TableView::CellPosition( (i/3)*2, i%3 ) ); + TextLabel itemLabel = TextLabel::New(ITEMNAME[i]); + itemLabel.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + itemLabel.SetBackgroundColor(BACKGROUND_COLOUR); + itemLabel.SetProperty(TextLabel::Property::POINT_SIZE, 14.0f); + itemLabel.SetProperty(TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER"); + itemLabel.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER"); + mContainer.AddChild(itemLabel, TableView::CellPosition((i / 3) * 2, i % 3)); } TextLabel textLabel = TextLabel::New("TextLabel"); - mContainer.AddChild( textLabel, TableView::CellPosition( 1, 0 ) ); + mContainer.AddChild(textLabel, TableView::CellPosition(1, 0)); TextField textField = TextField::New(); - textField.SetBackgroundColor( Color::WHITE ); - textField.SetProperty( TextField::Property::TEXT, "Text" ); - mContainer.AddChild( textField, TableView::CellPosition( 1, 1 ) ); + textField.SetBackgroundColor(Color::WHITE); + textField.SetProperty(TextField::Property::TEXT, "Text"); + mContainer.AddChild(textField, TableView::CellPosition(1, 1)); TextEditor textEditor = TextEditor::New(); - textEditor.SetBackgroundColor( Color::WHITE ); - textEditor.SetProperty( TextEditor::Property::TEXT, "Text\nText" ); - mContainer.AddChild( textEditor, TableView::CellPosition( 1, 2 ) ); + textEditor.SetBackgroundColor(Color::WHITE); + textEditor.SetProperty(TextEditor::Property::TEXT, "Text\nText"); + mContainer.AddChild(textEditor, TableView::CellPosition(1, 2)); PushButton pushButton = PushButton::New(); - mContainer.AddChild( pushButton, TableView::CellPosition( 3, 0 ) ); + mContainer.AddChild(pushButton, TableView::CellPosition(3, 0)); RadioButton radioButton = RadioButton::New(); - mContainer.AddChild( radioButton, TableView::CellPosition( 3, 1 ) ); + mContainer.AddChild(radioButton, TableView::CellPosition(3, 1)); CheckBoxButton checkBoxButton = CheckBoxButton::New(); - mContainer.AddChild( checkBoxButton, TableView::CellPosition( 3, 2 ) ); + mContainer.AddChild(checkBoxButton, TableView::CellPosition(3, 2)); // Set name and keyboard focusable for each controls - for(int i = 0; i<6; i++) + for(int i = 0; i < 6; i++) { - Control control = Control::DownCast( mContainer.GetChildAt( TableView::CellPosition( (i/3)*2+1, i%3 ) ) ); - control.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); - control.SetProperty( Dali::Actor::Property::NAME,ITEMNAME[i]); - control.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - control.KeyEventSignal().Connect( this, &FocusIntegrationExample::OnControlKeyEvent ); + Control control = Control::DownCast(mContainer.GetChildAt(TableView::CellPosition((i / 3) * 2 + 1, i % 3))); + control.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); + control.SetProperty(Dali::Actor::Property::NAME, ITEMNAME[i]); + control.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + control.KeyEventSignal().Connect(this, &FocusIntegrationExample::OnControlKeyEvent); } - KeyboardFocusManager::Get().PreFocusChangeSignal().Connect( this, &FocusIntegrationExample::OnPreFocusChange ); + KeyboardFocusManager::Get().PreFocusChangeSignal().Connect(this, &FocusIntegrationExample::OnPreFocusChange); // Respond to key events - mWindow.KeyEventSignal().Connect( this, &FocusIntegrationExample::OnKeyEvent ); + mWindow.KeyEventSignal().Connect(this, &FocusIntegrationExample::OnKeyEvent); } // Callback for KeyboardFocusManager - Actor OnPreFocusChange( Actor current, Actor next, Control::KeyboardFocus::Direction direction ) + Actor OnPreFocusChange(Actor current, Actor next, Control::KeyboardFocus::Direction direction) { - if( !current && !next ) + if(!current && !next) { - next = mContainer.GetChildAt( TableView::CellPosition( 1, 0 ) ); + next = mContainer.GetChildAt(TableView::CellPosition(1, 0)); } return next; } // Callback for each controls. // Display current control name. - bool OnControlKeyEvent( Control control, const KeyEvent& event ) + bool OnControlKeyEvent(Control control, const KeyEvent& event) { - std::string controlName = control.GetProperty< std::string >( Dali::Actor::Property::NAME ); - mEventLabel.SetProperty( TextLabel::Property::TEXT, controlName+"'s KeyEvent works\n" ); + std::string controlName = control.GetProperty(Dali::Actor::Property::NAME); + mEventLabel.SetProperty(TextLabel::Property::TEXT, controlName + "'s KeyEvent works\n"); return false; } private: - /** * Main key event handler */ @@ -177,7 +174,7 @@ private: { if(event.GetState() == KeyEvent::DOWN) { - if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) ) + if(IsKey(event, DALI_KEY_ESCAPE) || IsKey(event, DALI_KEY_BACK)) { mApplication.Quit(); } @@ -185,22 +182,21 @@ private: } private: - - Application& mApplication; - Window mWindow; - TableView mContainer; - TextLabel mEventLabel; - Toolkit::Control mView; ///< The View instance. - Toolkit::ToolBar mToolBar; ///< The View's Toolbar. - Layer mContentLayer; ///< Content layer. + Application& mApplication; + Window mWindow; + TableView mContainer; + TextLabel mEventLabel; + Toolkit::Control mView; ///< The View instance. + Toolkit::ToolBar mToolBar; ///< The View's Toolbar. + Layer mContentLayer; ///< Content layer. }; // -int DALI_EXPORT_API 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); - FocusIntegrationExample test( application ); + FocusIntegrationExample test(application); application.MainLoop();