TextLabel property fixes 41/36341/2
authorPaul Wisbey <p.wisbey@samsung.com>
Thu, 5 Mar 2015 10:02:53 +0000 (10:02 +0000)
committerPaul Wisbey <p.wisbey@samsung.com>
Thu, 5 Mar 2015 12:57:51 +0000 (12:57 +0000)
Change-Id: I680700e541ac44ef0695250ba4083f7770361a3e

examples/text-label-multi-language/text-label-multi-language-example.cpp
examples/text-label/text-label-example.cpp
shared/multi-language-strings.h [new file with mode: 0644]

index 080251f..afeca7c 100644 (file)
@@ -22,6 +22,7 @@
 
 // INTERNAL INCLUDES
 #include "vertical-layout.h"
+#include "shared/multi-language-strings.h"
 
 // EXTERNAL INCLUDES
 #include <dali-toolkit/dali-toolkit.h>
 
 using namespace Dali;
 using namespace Dali::Toolkit;
-
-namespace
-{
-  struct Language
-  {
-    std::string languageName;
-    std::string languageRomanName;
-    std::string text;
-  };
-
-  const Language LANGUAGES[] = {
-    {
-      "العَرَبِيةُ",
-      "(Arabic)",
-      "لإعادة ترتيب الشاشات، يجب تغيير نوع العرض إلى شبكة قابلة للتخصيص."
-    },
-    {
-      "অসমীয়া লিপি",
-      "(Assamese)",
-      "পৃষ্ঠাসমূহ পুনঃব্যৱস্থিত কৰিবলৈ, আপুনি দৰ্শনৰ প্ৰকাৰ এটা অনুকূলনযোগ্য গ্ৰীডলৈ পৰিৱৰ্তন কৰাটো আৱশ্যক৷"
-    },
-    {
-      "বাংলা",
-      "(Bengali)",
-      "তথ্য লোড করতে অক্ষম৷ পুনরায় চেষ্টা করতে ট্যাপ করুন৷"
-    },
-    {
-      "English",
-      "(English)",
-      "A Quick Brown Fox Jumps Over The Lazy Dog"
-    },
-    {
-      "Español",
-      "(Spanish)",
-      "No se puede añadir más aplicaciones. Se alcanzó la cantidad máxima."
-    },
-    {
-      "فارسی",
-      "(Persian)",
-      "برای مرتب کردن مجدد صفحه‌ها، باید نوع نمایش را به یک نمای شبکه‌ای قابل تنظیم تغییر دهید."
-    },
-    {
-      "Français",
-      "(French)",
-      "La nouvelle page sera composée des Dynamic Box S Planner, Tâches et S Memo"
-    },
-    {
-      "ગુજરાતી લિપિ",
-      "(Gujarati)",
-      "પૃષ્ઠોને ફરીથી ગોઠવવા માટે, તમારે દૃશ્ય પ્રકારને કસ્ટમાઇઝેશન યોગ્ય ગ્રિડ પર બદલવાની જરૂર છે."
-    },
-    {
-      "हिन्दी",
-      "(Hindi)",
-      "पेज पुनः व्यवस्थित करने के लिए, आपको दृश्य प्रकार को अनुकूलित करने योग्य ग्रिड में बदलना होगा।"
-    },
-    {
-      "Bahasa Indonesia",
-      "(Indonesian)",
-      "Tidak dapat menambahkan aplikasi lagi. Jumlah maksimum aplikasi tercapai."
-    },
-    {
-      "ខេមរភាសា",
-      "(Cambodian)",
-      "ដើម្បី​រៀបចំ​ទំព័រ​ឡើងវិញ អ្នក​ត្រូវ​ប្ដូរ​ប្រភេទ​បង្ហាញ​ទៅ​ក្រឡាចត្រង្គ​ដែល​អាច​ប្ដូរ​តាមបំណង។"
-    },
-    {
-      "ಕನ್ನಡ ",
-      "(Kannada)",
-      "ಪುಟಗಳನ್ನು ಮರುವ್ಯವಸ್ಥಿತವಾಗಿ ಇರಿಸಲು, ನೀವು ವೀಕ್ಷಣೆ ವಿಧವನ್ನು ಗ್ರಾಹಕೀಕರಿಸಬಲ್ಲ ಗ್ರಿಡ್‌ಗೆ ಬದಲಾಯಿಸುವುದು ಅಗತ್ಯವಿದೆ."
-    },
-    {
-      "한국어",
-      "(Korean)",
-      "페이지 순서를 변경하려면 보기 방식을 격자 보기(직접 설정)로 변경하세요."
-    },
-    {
-      "ພາສາລາວ",
-      "(Lao)",
-      "ເພື່ອຈັດລຽງໜ້າຄືນ, ທ່ານຈໍາເປັນຕ້ອງປ່ຽນຊະນິດຂອງມຸມມອງໄປຫາຕາຕະລາງທີ່ກຳນົດເອງໄດ້."
-    },
-    {
-      "മലയാളം",
-      "(Malayalam)",
-      "പേജുകൾ പുനഃക്രമീകരിക്കുന്നതിന്, ഇഷ്ടാനുസൃതമാക്കാവുന്ന ഗ്രിഡിലേക്ക് കാഴ്ചയുടെ തരം നിങ്ങൾ മാറ്റേണ്ടതുണ്ട്."
-    },
-    {
-      "मराठी",
-      "(Marathi)",
-      "पृष्‍ठांची पुनर्रचना करा, आपण सानुकूलित करण्‍यायोग्‍य ग्रिडमध्‍ये व्‍ह्यू प्रकार बदलणे गरजेचे आहे."
-    },
-    {
-      "Bahasa Melayu",
-      "(Malay)",
-      "Tidak boleh menambah aplikasi lagi. Bilangan maksimum aplikasi dicapai."
-    },
-    {
-      "မြန်မာဘာသာ",
-      "(Burmese)",
-      "စာမ်က္ႏွာမ်ား ျပန္စီစဥ္ရန္ အျမင္ပံုစံကို စိတ္ၾကိဳက္လုပ္ႏိုင္ေသာ ဂရစ္ တစ္ခုသို႔ ေျပာင္းဖို႔လိုသည္။"
-    },
-    {
-      "नेपाली",
-      "(Nepali)",
-      "थप अनुप्रयोगहरू थप्न सकिएन। अनुप्रयोगहरूको अधिकतम संख्या पुग्यो।"
-    },
-    {
-      "ଓଡ଼ିଆ",
-      "(Oriya)",
-      "ପରବର୍ତ୍ତୀ ପୃଷ୍ଠା ଦେଖିବା ପାଇଁ ଦୁଇ ଆଙ୍ଗୁଠିରେ ସ୍ୱାଇପ୍ କରନ୍ତୁ।"
-    },
-    {
-      "ਗੁਰਮੁਖੀ",
-      "(Punjabi)",
-      "ਇਹ ਫੋਲਡਰ ਅਤੇ ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਸਾਰੇ ਆਈਟਮਾਂ ਨੂੰ ਮਿਟਾ ਦੇਵੇਗਾ।"
-    },
-    {
-      "Português",
-      "(Portuguese)",
-      "Para reorganizar páginas, é necessário alterar o tipo de exibição para uma grade personalizável."
-    },
-    {
-      "සිංහල",
-      "(Sinhala)",
-      "පිටු නැවත පෙළ ගැස්වීම සඳහා ඔබ විසින් දසුන් ප්‍රවර්ගය අභිමතීකෘත්‍ය ජාලයකට වෙනස් කළ යුතුය."
-    },
-    {
-      "தமிழ்",
-      "(Tamil)",
-      "பக்கங்களை மறுஒழுங்குபடுத்தவென காட்சி வகையை தனிப்பயனாக்கத்தக்க கட்டமைப்பிற்கு மாற்ற வேண்டியுள்ளது."
-    },
-    {
-      "తెలుగు",
-      "(Telugu)",
-      "మరిన్ని అప్లికేషన్‌లను జోడించడం సాధ్యం కాలేదు. గరిష్ట అప్లికేషన్‌ల సంఖ్యను చేరుకున్నాయి."
-    },
-    {
-      "ภาษาไทย",
-      "(Thai)",
-      "คุณต้องเปลี่ยนชนิดการแสดง เป็นตารางที่กำหนดเองได้ เพื่อจัดหน้าใหม่"
-    },
-    {
-      "Tagalog",
-      "(Tagalog)",
-      "Hindi makapagdagdag ng extra na linya dahil sa paghihigpit sa espasyo"
-    },
-    {
-      "Türkçe",
-      "(Turkish)",
-      "Sayfaları yeniden düzenlemek için özelleştirilebilir kılavuzun görünüm tipini değiştirmeniz gerekir."
-    },
-    {
-      "اُردُو‎",
-      "(Urdu)",
-      "صفحات کو دوبارہ ترتیب دینے کے لئے، آپ کو منظر کی قسم کو ایک حسب ضرورت گرڈ میں تبدیل کرنا ہوگا۔"
-    },
-    {
-      "tiếng Việt",
-      "(Vietnamese)",
-      "Để sắp xếp lại các trang, bạn cần thay đổi kiểu xem sang dạng lưới tùy chỉnh."
-    },
-    {
-      "漢語",
-      "(Chinese)",
-      "若要重新排列页面,您需要将视图类型更改为可自定义网格。"
-    },
-  };
-
-  const unsigned int NUMBER_OF_LANGUAGES = 31u;
-} // namespace
+using namespace MultiLanguageStrings;
 
 /**
  * @brief The main class of the demo.
index 7c18de1..8785b27 100644 (file)
 
 // INTERNAL INCLUDES
 #include "center-layout.h"
+#include "shared/multi-language-strings.h"
 
 using namespace Dali;
 using namespace Dali::Toolkit;
+using namespace MultiLanguageStrings;
+
+namespace
+{
+  const unsigned int KEY_ZERO = 10;
+  const unsigned int KEY_ONE = 11;
+  const unsigned int KEY_M = 58;
+  const unsigned int KEY_L = 46;
+}
 
 /**
  * @brief The main class of the demo.
@@ -38,7 +48,8 @@ class TextLabelExample : public ConnectionTracker
 public:
 
   TextLabelExample( Application& application )
-  : mApplication( application )
+  : mApplication( application ),
+    mLanguageId( 0u )
   {
     // Connect to the Application's Init signal
     mApplication.InitSignal().Connect( this, &TextLabelExample::Create );
@@ -65,16 +76,15 @@ public:
     centerLayout.SetSize( stageSize.width*0.6f, stageSize.width*0.6f );
     stage.Add( centerLayout );
 
-    TextLabel label = TextLabel::New();
-    label.SetBackgroundColor( Color::BLACK );
-    centerLayout.Add( label );
+    mLabel = TextLabel::New();
+    mLabel.SetBackgroundColor( Color::BLACK );
+    centerLayout.Add( mLabel );
 
-    label.SetProperty( TextLabel::PROPERTY_MULTI_LINE, true );
-    label.SetProperty( TextLabel::PROPERTY_TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog" );
+    mLabel.SetProperty( TextLabel::PROPERTY_MULTI_LINE, true );
+    mLabel.SetProperty( TextLabel::PROPERTY_TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog" );
 
-    // TODO
-    //Property::Value labelText = label.GetProperty( TextLabel::PROPERTY_TEXT );
-    //std::cout << "Got text from label: " << labelText.Get< std::string >() << std::endl;
+    Property::Value labelText = mLabel.GetProperty( TextLabel::PROPERTY_TEXT );
+    std::cout << "Displaying text: \"" << labelText.Get< std::string >() << "\"" << std::endl;
   }
 
   /**
@@ -88,12 +98,45 @@ public:
       {
         mApplication.Quit();
       }
+      else if( event.IsCtrlModifier() )
+      {
+        switch( event.keyCode )
+        {
+          case KEY_ZERO: // fall through
+          case KEY_ONE:
+          {
+            mLabel.SetProperty( TextLabel::PROPERTY_RENDERING_BACKEND, event.keyCode - 10 );
+            break;
+          }
+          case KEY_M:
+          {
+            bool multiLine = mLabel.GetProperty<bool>( TextLabel::PROPERTY_MULTI_LINE );
+            mLabel.SetProperty( TextLabel::PROPERTY_MULTI_LINE, !multiLine );
+            break;
+          }
+          case KEY_L:
+          {
+            const Language& language = LANGUAGES[ mLanguageId ];
+
+            mLabel.SetProperty( TextLabel::PROPERTY_TEXT, language.text );
+
+            if( ++mLanguageId >= NUMBER_OF_LANGUAGES )
+            {
+              mLanguageId = 0u;
+            }
+          }
+        }
+      }
     }
   }
 
 private:
 
   Application& mApplication;
+
+  TextLabel mLabel;
+
+  unsigned int mLanguageId;
 };
 
 void RunTest( Application& application )
diff --git a/shared/multi-language-strings.h b/shared/multi-language-strings.h
new file mode 100644 (file)
index 0000000..1b92278
--- /dev/null
@@ -0,0 +1,195 @@
+#ifndef __DALI_DEMO_MULTI_LANGUAGE_STRINGS_H__
+#define __DALI_DEMO_MULTI_LANGUAGE_STRINGS_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 <string>
+
+namespace MultiLanguageStrings
+{
+  struct Language
+  {
+    std::string languageName;
+    std::string languageRomanName;
+    std::string text;
+  };
+
+  const Language LANGUAGES[] = {
+    {
+      "العَرَبِيةُ",
+      "(Arabic)",
+      "لإعادة ترتيب الشاشات، يجب تغيير نوع العرض إلى شبكة قابلة للتخصيص."
+    },
+    {
+      "অসমীয়া লিপি",
+      "(Assamese)",
+      "পৃষ্ঠাসমূহ পুনঃব্যৱস্থিত কৰিবলৈ, আপুনি দৰ্শনৰ প্ৰকাৰ এটা অনুকূলনযোগ্য গ্ৰীডলৈ পৰিৱৰ্তন কৰাটো আৱশ্যক৷"
+    },
+    {
+      "বাংলা",
+      "(Bengali)",
+      "তথ্য লোড করতে অক্ষম৷ পুনরায় চেষ্টা করতে ট্যাপ করুন৷"
+    },
+    {
+      "English",
+      "(English)",
+      "A Quick Brown Fox Jumps Over The Lazy Dog"
+    },
+    {
+      "Español",
+      "(Spanish)",
+      "No se puede añadir más aplicaciones. Se alcanzó la cantidad máxima."
+    },
+    {
+      "فارسی",
+      "(Persian)",
+      "برای مرتب کردن مجدد صفحه‌ها، باید نوع نمایش را به یک نمای شبکه‌ای قابل تنظیم تغییر دهید."
+    },
+    {
+      "Français",
+      "(French)",
+      "La nouvelle page sera composée des Dynamic Box S Planner, Tâches et S Memo"
+    },
+    {
+      "ગુજરાતી લિપિ",
+      "(Gujarati)",
+      "પૃષ્ઠોને ફરીથી ગોઠવવા માટે, તમારે દૃશ્ય પ્રકારને કસ્ટમાઇઝેશન યોગ્ય ગ્રિડ પર બદલવાની જરૂર છે."
+    },
+    {
+      "हिन्दी",
+      "(Hindi)",
+      "पेज पुनः व्यवस्थित करने के लिए, आपको दृश्य प्रकार को अनुकूलित करने योग्य ग्रिड में बदलना होगा।"
+    },
+    {
+      "Bahasa Indonesia",
+      "(Indonesian)",
+      "Tidak dapat menambahkan aplikasi lagi. Jumlah maksimum aplikasi tercapai."
+    },
+    {
+      "ខេមរភាសា",
+      "(Cambodian)",
+      "ដើម្បី​រៀបចំ​ទំព័រ​ឡើងវិញ អ្នក​ត្រូវ​ប្ដូរ​ប្រភេទ​បង្ហាញ​ទៅ​ក្រឡាចត្រង្គ​ដែល​អាច​ប្ដូរ​តាមបំណង។"
+    },
+    {
+      "ಕನ್ನಡ ",
+      "(Kannada)",
+      "ಪುಟಗಳನ್ನು ಮರುವ್ಯವಸ್ಥಿತವಾಗಿ ಇರಿಸಲು, ನೀವು ವೀಕ್ಷಣೆ ವಿಧವನ್ನು ಗ್ರಾಹಕೀಕರಿಸಬಲ್ಲ ಗ್ರಿಡ್‌ಗೆ ಬದಲಾಯಿಸುವುದು ಅಗತ್ಯವಿದೆ."
+    },
+    {
+      "한국어",
+      "(Korean)",
+      "페이지 순서를 변경하려면 보기 방식을 격자 보기(직접 설정)로 변경하세요."
+    },
+    {
+      "ພາສາລາວ",
+      "(Lao)",
+      "ເພື່ອຈັດລຽງໜ້າຄືນ, ທ່ານຈໍາເປັນຕ້ອງປ່ຽນຊະນິດຂອງມຸມມອງໄປຫາຕາຕະລາງທີ່ກຳນົດເອງໄດ້."
+    },
+    {
+      "മലയാളം",
+      "(Malayalam)",
+      "പേജുകൾ പുനഃക്രമീകരിക്കുന്നതിന്, ഇഷ്ടാനുസൃതമാക്കാവുന്ന ഗ്രിഡിലേക്ക് കാഴ്ചയുടെ തരം നിങ്ങൾ മാറ്റേണ്ടതുണ്ട്."
+    },
+    {
+      "मराठी",
+      "(Marathi)",
+      "पृष्‍ठांची पुनर्रचना करा, आपण सानुकूलित करण्‍यायोग्‍य ग्रिडमध्‍ये व्‍ह्यू प्रकार बदलणे गरजेचे आहे."
+    },
+    {
+      "Bahasa Melayu",
+      "(Malay)",
+      "Tidak boleh menambah aplikasi lagi. Bilangan maksimum aplikasi dicapai."
+    },
+    {
+      "မြန်မာဘာသာ",
+      "(Burmese)",
+      "စာမ်က္ႏွာမ်ား ျပန္စီစဥ္ရန္ အျမင္ပံုစံကို စိတ္ၾကိဳက္လုပ္ႏိုင္ေသာ ဂရစ္ တစ္ခုသို႔ ေျပာင္းဖို႔လိုသည္။"
+    },
+    {
+      "नेपाली",
+      "(Nepali)",
+      "थप अनुप्रयोगहरू थप्न सकिएन। अनुप्रयोगहरूको अधिकतम संख्या पुग्यो।"
+    },
+    {
+      "ଓଡ଼ିଆ",
+      "(Oriya)",
+      "ପରବର୍ତ୍ତୀ ପୃଷ୍ଠା ଦେଖିବା ପାଇଁ ଦୁଇ ଆଙ୍ଗୁଠିରେ ସ୍ୱାଇପ୍ କରନ୍ତୁ।"
+    },
+    {
+      "ਗੁਰਮੁਖੀ",
+      "(Punjabi)",
+      "ਇਹ ਫੋਲਡਰ ਅਤੇ ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਸਾਰੇ ਆਈਟਮਾਂ ਨੂੰ ਮਿਟਾ ਦੇਵੇਗਾ।"
+    },
+    {
+      "Português",
+      "(Portuguese)",
+      "Para reorganizar páginas, é necessário alterar o tipo de exibição para uma grade personalizável."
+    },
+    {
+      "සිංහල",
+      "(Sinhala)",
+      "පිටු නැවත පෙළ ගැස්වීම සඳහා ඔබ විසින් දසුන් ප්‍රවර්ගය අභිමතීකෘත්‍ය ජාලයකට වෙනස් කළ යුතුය."
+    },
+    {
+      "தமிழ்",
+      "(Tamil)",
+      "பக்கங்களை மறுஒழுங்குபடுத்தவென காட்சி வகையை தனிப்பயனாக்கத்தக்க கட்டமைப்பிற்கு மாற்ற வேண்டியுள்ளது."
+    },
+    {
+      "తెలుగు",
+      "(Telugu)",
+      "మరిన్ని అప్లికేషన్‌లను జోడించడం సాధ్యం కాలేదు. గరిష్ట అప్లికేషన్‌ల సంఖ్యను చేరుకున్నాయి."
+    },
+    {
+      "ภาษาไทย",
+      "(Thai)",
+      "คุณต้องเปลี่ยนชนิดการแสดง เป็นตารางที่กำหนดเองได้ เพื่อจัดหน้าใหม่"
+    },
+    {
+      "Tagalog",
+      "(Tagalog)",
+      "Hindi makapagdagdag ng extra na linya dahil sa paghihigpit sa espasyo"
+    },
+    {
+      "Türkçe",
+      "(Turkish)",
+      "Sayfaları yeniden düzenlemek için özelleştirilebilir kılavuzun görünüm tipini değiştirmeniz gerekir."
+    },
+    {
+      "اُردُو‎",
+      "(Urdu)",
+      "صفحات کو دوبارہ ترتیب دینے کے لئے، آپ کو منظر کی قسم کو ایک حسب ضرورت گرڈ میں تبدیل کرنا ہوگا۔"
+    },
+    {
+      "tiếng Việt",
+      "(Vietnamese)",
+      "Để sắp xếp lại các trang, bạn cần thay đổi kiểu xem sang dạng lưới tùy chỉnh."
+    },
+    {
+      "漢語",
+      "(Chinese)",
+      "若要重新排列页面,您需要将视图类型更改为可自定义网格。"
+    },
+  };
+
+  const unsigned int NUMBER_OF_LANGUAGES = 31u;
+
+} // MultiLanguageStrings
+
+#endif // __DALI_DEMO_MULTI_LANGUAGE_STRINGS_H__