[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / metrics.h
index 232360e..5fad448 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_TEXT_METRICS_H__
-#define __DALI_TOOLKIT_TEXT_METRICS_H__
+#ifndef DALI_TOOLKIT_TEXT_METRICS_H
+#define DALI_TOOLKIT_TEXT_METRICS_H
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/common/intrusive-ptr.h>
 #include <dali/devel-api/text-abstraction/font-client.h>
+#include <dali/public-api/common/intrusive-ptr.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/text/text-definitions.h>
 
 namespace Dali
 {
-
 namespace Toolkit
 {
-
 namespace Text
 {
-
 class Metrics;
 typedef IntrusivePtr<Metrics> MetricsPtr;
 
 /**
- * @brief A wrapper around FontClient used to get metrics & potentially down-scaled Emoji metrics.
+ * @brief A wrapper around FontClient used to get metrics.
  */
 class Metrics : public RefObject
 {
 public:
-
   /**
    * Create a new Metrics object
    */
-  static Metrics* New( TextAbstraction::FontClient& fontClient )
+  static Metrics* New(TextAbstraction::FontClient& fontClient)
   {
-    return new Metrics( fontClient );
+    return new Metrics(fontClient);
   }
 
   /**
@@ -57,40 +53,20 @@ public:
    *
    * @param[in] glyphType The type of glyph; note that metrics for bitmap & vector based glyphs are different.
    */
-  void SetGlyphType( TextAbstraction::GlyphType glyphType )
+  void SetGlyphType(TextAbstraction::GlyphType glyphType)
   {
     mGlyphType = glyphType;
   }
 
   /**
-   * @brief Set the maximum Emoji size.
-   *
-   * @param[in] emojiSize Emoticons will be scaled to fit this size in pixels.
-   */
-  void SetMaxEmojiSize( int emojiSize )
-  {
-    mEmojiSize = emojiSize;
-  }
-
-  /**
-   * @brief Get the maximum Emoji size.
-   *
-   * @return The maximum Emoji size.
-   */
-  int GetMaxEmojiSize() const
-  {
-    return mEmojiSize;
-  }
-
-  /**
    * @brief Query the metrics for a font.
    *
    * @param[in] fontId The ID of the font for the required glyph.
    * @param[out] metrics The font metrics.
    */
-  void GetFontMetrics( FontId fontId, FontMetrics& metrics )
+  void GetFontMetrics(FontId fontId, FontMetrics& metrics)
   {
-    mFontClient.GetFontMetrics( fontId, metrics, mEmojiSize ); // inline for performance
+    mFontClient.GetFontMetrics(fontId, metrics); // inline for performance
   }
 
   /**
@@ -102,27 +78,38 @@ public:
    * @param[in] size The size of the array.
    * @return True if all of the requested metrics were found.
    */
-  bool GetGlyphMetrics( GlyphInfo* array, uint32_t size )
+  bool GetGlyphMetrics(GlyphInfo* array, uint32_t size)
   {
-    return mFontClient.GetGlyphMetrics( array, size, mGlyphType, true, mEmojiSize ); // inline for performance
+    return mFontClient.GetGlyphMetrics(array, size, mGlyphType, true); // inline for performance
   }
 
-protected:
+  /**
+   * @brief Whether the font has Italic style.
+   *
+   * @param[in] fontId The font identifier.
+   *
+   * @return true if the font has italic style.
+   */
+  bool HasItalicStyle(FontId fontId) const
+  {
+    return mFontClient.HasItalicStyle(fontId);
+  }
 
+protected:
   /**
    * A reference counted object may only be deleted by calling Unreference()
    */
-  virtual ~Metrics() {}
+  virtual ~Metrics()
+  {
+  }
 
 private:
-
   /**
    * Constructor.
    */
-  Metrics( TextAbstraction::FontClient& fontClient )
-  : mFontClient( fontClient ),
-    mGlyphType( TextAbstraction::BITMAP_GLYPH ),
-    mEmojiSize( 0 )
+  Metrics(TextAbstraction::FontClient& fontClient)
+  : mFontClient(fontClient),
+    mGlyphType(TextAbstraction::BITMAP_GLYPH)
   {
   }
 
@@ -133,10 +120,8 @@ private:
   Metrics& operator=(const Metrics& rhs);
 
 private:
-
   TextAbstraction::FontClient mFontClient;
-  TextAbstraction::GlyphType mGlyphType;
-  int mEmojiSize;
+  TextAbstraction::GlyphType  mGlyphType;
 };
 
 } // namespace Text
@@ -145,4 +130,4 @@ private:
 
 } // namespace Dali
 
-#endif // __DALI_TOOLKIT_TEXT_METRICS_H__
+#endif // DALI_TOOLKIT_TEXT_METRICS_H