Skeleton TextField demo 31/36031/1
authorPaul Wisbey <p.wisbey@samsung.com>
Fri, 27 Feb 2015 14:11:06 +0000 (14:11 +0000)
committerPaul Wisbey <p.wisbey@samsung.com>
Fri, 27 Feb 2015 14:11:06 +0000 (14:11 +0000)
Change-Id: I3ca1324727d7cc2f6c60a6c5879732cda41b8010

build/tizen/examples/CMakeLists.txt
examples/text/text-field-example.cpp [new file with mode: 0644]

index 0b0850d..26be5fd 100644 (file)
@@ -114,3 +114,8 @@ SET(TEXT_LABEL_MULTI_LANGUAGE_SRCS ${EXAMPLES_SRC_DIR}/text/text-label-multi-lan
 ADD_EXECUTABLE(text-label-multi-language.example ${TEXT_LABEL_MULTI_LANGUAGE_SRCS})
 TARGET_LINK_LIBRARIES(text-label-multi-language.example ${REQUIRED_PKGS_LDFLAGS})
 INSTALL(TARGETS text-label-multi-language.example DESTINATION ${BINDIR})
+
+SET(TEXT_FIELD_SRCS ${EXAMPLES_SRC_DIR}/text/text-field-example.cpp)
+ADD_EXECUTABLE(text-field.example ${TEXT_FIELD_SRCS})
+TARGET_LINK_LIBRARIES(text-field.example ${REQUIRED_PKGS_LDFLAGS})
+INSTALL(TARGETS text-field.example DESTINATION ${BINDIR})
diff --git a/examples/text/text-field-example.cpp b/examples/text/text-field-example.cpp
new file mode 100644 (file)
index 0000000..0c43d8a
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * 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.
+ *
+ */
+
+/**
+ * @file text-field-example.cpp
+ * @brief Basic usage of TextField control
+ */
+
+// EXTERNAL INCLUDES
+#include <dali-toolkit/dali-toolkit.h>
+#include <dali/public-api/text-abstraction/text-abstraction.h>
+
+using namespace Dali;
+using namespace Dali::Toolkit;
+
+/**
+ * @brief The main class of the demo.
+ */
+class TextFieldExample : public ConnectionTracker
+{
+public:
+
+  TextFieldExample( Application& application )
+  : mApplication( application )
+  {
+    // Connect to the Application's Init signal
+    mApplication.InitSignal().Connect( this, &TextFieldExample::Create );
+  }
+
+  ~TextFieldExample()
+  {
+    // Nothing to do here.
+  }
+
+  /**
+   * One-time setup in response to Application InitSignal.
+   */
+  void Create( Application& application )
+  {
+    Stage stage = Stage::GetCurrent();
+
+    stage.KeyEventSignal().Connect(this, &TextFieldExample::OnKeyEvent);
+
+    TextField field = TextField::New();
+    field.SetParentOrigin( ParentOrigin::CENTER );
+    stage.Add( field );
+
+    field.SetProperty( TextField::PROPERTY_TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog" );
+
+    // TODO
+    //Property::Value fieldText = field.GetProperty( TextField::PROPERTY_TEXT );
+    //std::cout << "Got text from field: " << fieldText.Get< std::string >() << std::endl;
+  }
+
+  /**
+   * Main key event handler
+   */
+  void OnKeyEvent(const KeyEvent& event)
+  {
+    if(event.state == KeyEvent::Down)
+    {
+      if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
+      {
+        mApplication.Quit();
+      }
+    }
+  }
+
+private:
+
+  Application& mApplication;
+};
+
+void RunTest( Application& application )
+{
+  TextFieldExample test( application );
+
+  application.MainLoop();
+}
+
+/** Entry point for Linux & Tizen applications */
+int main( int argc, char **argv )
+{
+  Application application = Application::New( &argc, &argv );
+
+  RunTest( application );
+
+  return 0;
+}