From: Paul Wisbey Date: Fri, 27 Feb 2015 14:11:06 +0000 (+0000) Subject: Skeleton TextField demo X-Git-Tag: new_text_0.1~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F31%2F36031%2F1;p=platform%2Fcore%2Fuifw%2Fdali-demo.git Skeleton TextField demo Change-Id: I3ca1324727d7cc2f6c60a6c5879732cda41b8010 --- diff --git a/build/tizen/examples/CMakeLists.txt b/build/tizen/examples/CMakeLists.txt index 0b0850d..26be5fd 100644 --- a/build/tizen/examples/CMakeLists.txt +++ b/build/tizen/examples/CMakeLists.txt @@ -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 index 0000000..0c43d8a --- /dev/null +++ b/examples/text/text-field-example.cpp @@ -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 +#include + +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; +}