Merge "Fixed up styling following toolkit string comparison" into devel/master
[platform/core/uifw/dali-demo.git] / examples / builder / examples.cpp
index 2dad74c..81aacaf 100644 (file)
 //
 //------------------------------------------------------------------------------
 
-#include "dali.h"
+#include <dali/dali.h>
 #include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/public-api/builder/builder.h>
-#include <dali-toolkit/public-api/builder/tree-node.h>
-#include <dali-toolkit/public-api/builder/json-parser.h>
+#include <dali-toolkit/devel-api/builder/builder.h>
+#include <dali-toolkit/devel-api/builder/tree-node.h>
+#include <dali-toolkit/devel-api/builder/json-parser.h>
+#include <dali-toolkit/devel-api/controls/popup/popup.h>
 #include <map>
 #include <string>
 #include <fstream>
@@ -36,6 +37,7 @@
 
 #include "sys/stat.h"
 #include <ctime>
+#include <cstring>
 
 #include <dali/integration-api/debug.h>
 #include "shared/view.h"
@@ -49,8 +51,9 @@ namespace
 {
 
 const char* BACKGROUND_IMAGE( "" );
-const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
-const char* EDIT_IMAGE( DALI_IMAGE_DIR "icon-change.png" );
+const char* TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" );
+const char* EDIT_IMAGE( DEMO_IMAGE_DIR "icon-change.png" );
+const char* EDIT_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-change-selected.png" );
 
 std::string USER_DIRECTORY;
 
@@ -61,7 +64,7 @@ std::string JSON_BROKEN("                                      \
     {                                                          \
       'type':'TextLabel',                                      \
       'size': [50,50,1],                                       \
-      'parent-origin': 'CENTER',                               \
+      'parentOrigin': 'CENTER',                                \
       'text':'COULD NOT LOAD JSON FILE'                        \
     }                                                          \
   ]                                                            \
@@ -141,11 +144,6 @@ const std::string ShortName( const std::string& name )
   }
 }
 
-static Vector3 SetItemSize(unsigned int numberOfColumns, float layoutWidth, float sideMargin, float columnSpacing)
-{
-  return Vector3(layoutWidth, 50, 1);
-}
-
 //------------------------------------------------------------------------------
 //
 //
@@ -275,6 +273,7 @@ public:
   void EnterSelection()
   {
     Stage stage = Stage::GetCurrent();
+    stage.SetBackgroundColor( Color::WHITE );
 
     mTapDetector = TapGestureDetector::New();
     mTapDetector.DetectedSignal().Connect( this, &ExampleApp::OnTap );
@@ -290,17 +289,12 @@ public:
     stage.Add( mItemView );
     mItemView.SetParentOrigin(ParentOrigin::CENTER);
     mItemView.SetAnchorPoint(AnchorPoint::CENTER);
-    mGridLayout = GridLayout::New();
-    mGridLayout->SetNumberOfColumns(1);
+    mLayout = DefaultItemLayout::New( DefaultItemLayout::LIST );
 
-    mGridLayout->SetItemSizeFunction(SetItemSize);
+    mLayout->SetItemSize( Vector3( stage.GetSize().width, 50, 1 ) );
 
-    mGridLayout->SetTopMargin(DemoHelper::DEFAULT_VIEW_STYLE.mToolBarHeight);
+    mItemView.AddLayout( *mLayout );
 
-    mItemView.AddLayout(*mGridLayout);
-
-    Vector3 size(stage.GetSize());
-    mItemView.ActivateLayout(0, size, 0.0f/*immediate*/);
     mItemView.SetKeyboardFocusable( true );
 
     mFiles.clear();
@@ -312,7 +306,7 @@ public:
     }
     else
     {
-      DirectoryFilesByType( DALI_SCRIPT_DIR, "json", files );
+      DirectoryFilesByType( DEMO_SCRIPT_DIR, "json", files );
     }
 
     std::sort(files.begin(), files.end());
@@ -368,9 +362,9 @@ public:
 
     SetTitle("Select");
 
-    // Itemview renderes the previous items unless its scrolled. Not sure why at the moment so we force a scroll
-    mItemView.ScrollToItem(0, 0);
-
+    // Activate the layout
+    Vector3 size(stage.GetSize());
+    mItemView.ActivateLayout(0, size, 0.0f/*immediate*/);
   }
 
   void ExitSelection()
@@ -393,7 +387,7 @@ public:
   Actor MenuItem(const std::string& text)
   {
     TextLabel label = TextLabel::New( ShortName( text ) );
-    label.SetProperty( Dali::Toolkit::Control::Property::STYLE_NAME, "builderlabel" );
+    label.SetStyleName( "BuilderLabel" );
     label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
 
     // Hook up tap detector
@@ -420,9 +414,9 @@ public:
     builder.QuitSignal().Connect( this, &ExampleApp::OnBuilderQuit );
 
     Property::Map defaultDirs;
-    defaultDirs[ TOKEN_STRING(DALI_IMAGE_DIR) ]  = DALI_IMAGE_DIR;
-    defaultDirs[ TOKEN_STRING(DALI_MODEL_DIR) ]  = DALI_MODEL_DIR;
-    defaultDirs[ TOKEN_STRING(DALI_SCRIPT_DIR) ] = DALI_SCRIPT_DIR;
+    defaultDirs[ TOKEN_STRING(DEMO_IMAGE_DIR) ]  = DEMO_IMAGE_DIR;
+    defaultDirs[ TOKEN_STRING(DEMO_MODEL_DIR) ]  = DEMO_MODEL_DIR;
+    defaultDirs[ TOKEN_STRING(DEMO_SCRIPT_DIR) ] = DEMO_SCRIPT_DIR;
 
     builder.AddConstants( defaultDirs );
 
@@ -485,9 +479,8 @@ public:
   {
     ReloadJsonFile( name, mBuilder, mBuilderLayer );
 
-    // do this here as GetCurrentSize()
-    mBuilderLayer.SetParentOrigin(ParentOrigin::CENTER);
-    mBuilderLayer.SetAnchorPoint(AnchorPoint::CENTER);
+    mBuilderLayer.SetParentOrigin(ParentOrigin::BOTTOM_CENTER);
+    mBuilderLayer.SetAnchorPoint(AnchorPoint::BOTTOM_CENTER);
     Dali::Vector3 size = Stage::GetCurrent().GetRootLayer().GetCurrentSize();
     size.y -= DemoHelper::DEFAULT_VIEW_STYLE.mToolBarHeight;
     mBuilderLayer.SetSize( size );
@@ -500,8 +493,6 @@ public:
 
   void Create(Application& app)
   {
-    DemoHelper::RequestThemeChange();
-
     Stage stage = Stage::GetCurrent();
 
     Stage::GetCurrent().KeyEventSignal().Connect(this, &ExampleApp::OnKeyEvent);
@@ -521,7 +512,8 @@ public:
 
     // Create an edit mode button. (left of toolbar)
     Toolkit::PushButton editButton = Toolkit::PushButton::New();
-    editButton.SetBackgroundImage( ResourceImage::New( EDIT_IMAGE ) );
+    editButton.SetUnselectedImage( EDIT_IMAGE );
+    editButton.SetSelectedImage( EDIT_IMAGE_SELECTED );
     editButton.ClickedSignal().Connect( this, &ExampleApp::OnToolSelectLayout);
     editButton.SetLeaveRequired( true );
     mToolBar.AddControl( editButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING  );
@@ -584,7 +576,7 @@ public:
 private:
   Application& mApp;
 
-  GridLayoutPtr mGridLayout;
+  ItemLayoutPtr mLayout;
   ItemView mItemView;
 
   Toolkit::Control mView;
@@ -615,7 +607,7 @@ private:
 //
 //
 //------------------------------------------------------------------------------
-int main(int argc, char **argv)
+int DALI_EXPORT_API main(int argc, char **argv)
 {
   if(argc > 2)
   {
@@ -625,7 +617,7 @@ int main(int argc, char **argv)
     }
   }
 
-  Application app = Application::New(&argc, &argv);
+  Application app = Application::New(&argc, &argv, DEMO_THEME_PATH);
 
   ExampleApp dali_app(app);