+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include "launcher.h"
-
-// EXTERNAL INCLUDES
-#include <fstream>
-#include <sys/stat.h>
-#include <dali/integration-api/debug.h>
-
-// INTERNAL INCLUDES
-#include "shared/view.h"
-
-
-using namespace Dali;
-using namespace Dali::Toolkit;
-
-#define TOKEN_STRING(x) #x
-
-namespace
-{
-std::string GetFileContents(const std::string& filename)
-{
- std::ifstream t(filename.c_str());
- return std::string((std::istreambuf_iterator<char>(t)),
- std::istreambuf_iterator<char>());
-};
-
-} // unnamed namespace
-
-Launcher::Launcher( Dali::Application application, std::string layoutFileName, std::string scriptFileName )
-: mApplication( application ),
- mJSONFileName(layoutFileName ),
- mJavaScriptFileName( scriptFileName )
-{
- mApplication.InitSignal().Connect( this, &Launcher::Create );
-}
-
-Launcher::~Launcher()
-{
-}
-
-void Launcher::Create( Dali::Application& application )
-{
- TextLabel textActor = TextLabel::New( "JSON & JavaScript Launcher..." );
-
- // Reposition the actor
- textActor.SetParentOrigin( ParentOrigin::TOP_LEFT );
- textActor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- textActor.SetPosition( 20, 0 );
-
- // Get a handle to the stage
- Stage stage = Stage::GetCurrent();
-
- // Display the actor on the stage
- stage.Add( textActor );
-
- // change the background color to purple
- Stage::GetCurrent().SetBackgroundColor( Vector4(0.2,0.2,0.4,1.0) );
-
- // Try loading a JSON file
- if( !mJSONFileName.empty() )
- {
- mBuilder = Toolkit::Builder::New();
-
- Property::Map defaultDirs;
- 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;
- mBuilder.AddConstants( defaultDirs );
-
- std::string json_data(GetFileContents( mJSONFileName ));
- mBuilder.LoadFromString(json_data);
- mBuilder.AddActors( stage.GetRootLayer() );
- }
-
- // Try load a JavaScript file
- if( !mJavaScriptFileName.empty() )
- {
- // execute the script
- mScript = Toolkit::Script::New();
-
- mScript.ExecuteFile( mJavaScriptFileName);
- }
-}
-
-void Launcher::MainLoop()
-{
- mApplication.MainLoop();
-}
+++ /dev/null
-#ifndef DALI_APP_H
-#define DALI_APP_H
-
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/dali.h>
-#include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/scripting/script.h>
-#include <dali-toolkit/devel-api/builder/builder.h>
-
-/**
- * Example app that can load both JSON and JavaScript files from command line
- * E.g. scripting.example my-first.js my-first.json
- * See dali-demo/resources/scripts for example JSON and JavaScript files
- */
-class Launcher: public Dali::ConnectionTracker
-{
-public:
-
- /**
- * @brief Construcctor
- * @param application application
- * @param layoutFileName JSON file to run
- * @param scriptFileName JavaScript file to run
- */
- Launcher( Dali::Application application, std::string layoutFileName, std::string scriptFileName );
-
- /**
- * @brief destructor
- */
- ~Launcher();
-
- /**
- * @brief create app
- */
- void Create( Dali::Application& application );
-
- /**
- * @brief run application MainLoop
- */
- void MainLoop();
-
-private:
-
- Dali::Toolkit::Script mScript; ///< Used to load and execute JavaScript
- Dali::Toolkit::Builder mBuilder; ///< Used to parse JSON
- Dali::Application mApplication; ///< application
- std::string mJSONFileName; ///< JSON filename
- std::string mJavaScriptFileName; ///< JavaScript filename
-};
-
-#endif // header
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <string>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <dali/integration-api/debug.h>
-
-// INTERNAL INCLUDES
-#include "launcher.h"
-
-namespace
-{
-bool CheckIfFileExists( const std::string& filename )
-{
- struct stat buf;
- // fstat returns -1 on error
- if (stat( filename.c_str(), &buf) != -1)
- {
- return true;
- }
- return false;
-}
-
-}
-int DALI_EXPORT_API main( int argc, char* argv[] )
-{
- // pull out the JSON file and JavaScript file from the command line arguments
- std::string javaScriptFileName;
- std::string jSONFileName;
-
- for( int i = 1 ; i < argc ; ++i )
- {
- std::string arg( argv[i] );
-
- size_t idx = arg.find( ".json" );
- if( idx != std::string::npos )
- {
- jSONFileName = arg;
- }
- else
- {
- idx = arg.find( ".js" );
- if( idx != std::string::npos )
- {
- javaScriptFileName = arg;
- }
- }
- }
-
- if( !jSONFileName.empty() )
- {
- bool exists = CheckIfFileExists( jSONFileName );
- if( !exists )
- {
- DALI_ASSERT_ALWAYS( 0 && "JSON file not found ")
- }
- }
- if( !javaScriptFileName.empty() )
- {
- bool exists = CheckIfFileExists( javaScriptFileName );
- if( !exists )
- {
- DALI_ASSERT_ALWAYS( 0 && "JavaScript file not found ")
- }
- }
- if( jSONFileName.empty() && javaScriptFileName.empty() )
- {
- printf("Please specify a JSON and/or JavaScript file to load, e.g. scripting.example mylayout.json my-test.js\n");
- return -1;
- }
-
-
- Launcher daliApplication( Dali::Application::New( &argc, &argv, DEMO_THEME_PATH ), jSONFileName, javaScriptFileName );
-
- daliApplication.MainLoop();
-
- return 0;
-}