Make CBC_CodeBase::SetTextLocation() not virtual.

Make CBC_Writer::SetTextLocation() virtual instead.

Change-Id: I9ac06affe35f3c7bebc2f5ff0917e7146cfe89cc
Reviewed-on: https://pdfium-review.googlesource.com/42601
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/fxbarcode/BC_Writer.cpp b/fxbarcode/BC_Writer.cpp
index 5c8e0cf..8d639d3 100644
--- a/fxbarcode/BC_Writer.cpp
+++ b/fxbarcode/BC_Writer.cpp
@@ -6,50 +6,53 @@
 
 #include "fxbarcode/BC_Writer.h"
 
-CBC_Writer::CBC_Writer() {
-  m_CharEncoding = 0;
-  m_ModuleHeight = 1;
-  m_ModuleWidth = 1;
-  m_Height = 320;
-  m_Width = 640;
-  m_colorSpace = FXDIB_Argb;
-  m_barColor = 0xff000000;
-  m_backgroundColor = 0xffffffff;
-}
-CBC_Writer::~CBC_Writer() {}
+CBC_Writer::CBC_Writer() = default;
+
+CBC_Writer::~CBC_Writer() = default;
+
 bool CBC_Writer::SetCharEncoding(int32_t encoding) {
   m_CharEncoding = encoding;
   return true;
 }
+
 bool CBC_Writer::SetModuleHeight(int32_t moduleHeight) {
-  if (moduleHeight > 10 || moduleHeight < 1) {
+  if (moduleHeight > 10 || moduleHeight < 1)
     return false;
-  }
+
   m_ModuleHeight = moduleHeight;
   return true;
 }
+
 bool CBC_Writer::SetModuleWidth(int32_t moduleWidth) {
-  if (moduleWidth > 10 || moduleWidth < 1) {
+  if (moduleWidth > 10 || moduleWidth < 1)
     return false;
-  }
+
   m_ModuleWidth = moduleWidth;
   return true;
 }
+
 bool CBC_Writer::SetHeight(int32_t height) {
   m_Height = height;
   return true;
 }
+
 bool CBC_Writer::SetWidth(int32_t width) {
   m_Width = width;
   return true;
 }
+
 void CBC_Writer::SetBackgroundColor(FX_ARGB backgroundColor) {
   m_backgroundColor = backgroundColor;
 }
+
 void CBC_Writer::SetBarcodeColor(FX_ARGB foregroundColor) {
   m_barColor = foregroundColor;
 }
 
+bool CBC_Writer::SetTextLocation(BC_TEXT_LOC location) {
+  return false;
+}
+
 RetainPtr<CFX_DIBitmap> CBC_Writer::CreateDIBitmap(int32_t width,
                                                    int32_t height) {
   auto pDIBitmap = pdfium::MakeRetain<CFX_DIBitmap>();
diff --git a/fxbarcode/BC_Writer.h b/fxbarcode/BC_Writer.h
index 565c03f..3751b93 100644
--- a/fxbarcode/BC_Writer.h
+++ b/fxbarcode/BC_Writer.h
@@ -10,6 +10,7 @@
 #include "core/fxcrt/fx_string.h"
 #include "core/fxge/dib/cfx_dibitmap.h"
 #include "core/fxge/fx_dib.h"
+#include "fxbarcode/BC_Library.h"
 #include "fxbarcode/utils.h"
 
 class CBC_Writer {
@@ -23,17 +24,18 @@
   virtual bool SetWidth(int32_t width);
   virtual void SetBackgroundColor(FX_ARGB backgroundColor);
   virtual void SetBarcodeColor(FX_ARGB foregroundColor);
+  virtual bool SetTextLocation(BC_TEXT_LOC location);
 
  protected:
   RetainPtr<CFX_DIBitmap> CreateDIBitmap(int32_t width, int32_t height);
-  int32_t m_CharEncoding;
-  int32_t m_ModuleHeight;
-  int32_t m_ModuleWidth;
-  int32_t m_Height;
-  int32_t m_Width;
-  FXDIB_Format m_colorSpace;
-  FX_ARGB m_barColor;
-  FX_ARGB m_backgroundColor;
+  int32_t m_CharEncoding = 0;
+  int32_t m_ModuleHeight = 1;
+  int32_t m_ModuleWidth = 1;
+  int32_t m_Height = 320;
+  int32_t m_Width = 640;
+  FXDIB_Format m_colorSpace = FXDIB_Argb;
+  FX_ARGB m_barColor = 0xff000000;
+  FX_ARGB m_backgroundColor = 0xffffffff;
 };
 
 #endif  // FXBARCODE_BC_WRITER_H_
diff --git a/fxbarcode/cbc_codabar.cpp b/fxbarcode/cbc_codabar.cpp
index b32eafc..f3a3a62 100644
--- a/fxbarcode/cbc_codabar.cpp
+++ b/fxbarcode/cbc_codabar.cpp
@@ -39,10 +39,6 @@
   return GetOnedCodaBarWriter()->SetEndChar(end);
 }
 
-bool CBC_Codabar::SetTextLocation(BC_TEXT_LOC location) {
-  return GetOnedCodaBarWriter()->SetTextLocation(location);
-}
-
 bool CBC_Codabar::SetWideNarrowRatio(int8_t ratio) {
   return GetOnedCodaBarWriter()->SetWideNarrowRatio(ratio);
 }
diff --git a/fxbarcode/cbc_codabar.h b/fxbarcode/cbc_codabar.h
index 7fc518b..bf8a21e 100644
--- a/fxbarcode/cbc_codabar.h
+++ b/fxbarcode/cbc_codabar.h
@@ -24,7 +24,6 @@
   bool Encode(const WideStringView& contents) override;
   bool RenderDevice(CFX_RenderDevice* device,
                     const CFX_Matrix* matrix) override;
-  bool SetTextLocation(BC_TEXT_LOC location) override;
   bool SetWideNarrowRatio(int8_t ratio) override;
   bool SetStartChar(char start) override;
   bool SetEndChar(char end) override;
diff --git a/fxbarcode/cbc_code128.cpp b/fxbarcode/cbc_code128.cpp
index 8e83e22..7a825c4 100644
--- a/fxbarcode/cbc_code128.cpp
+++ b/fxbarcode/cbc_code128.cpp
@@ -31,10 +31,6 @@
 
 CBC_Code128::~CBC_Code128() {}
 
-bool CBC_Code128::SetTextLocation(BC_TEXT_LOC location) {
-  return GetOnedCode128Writer()->SetTextLocation(location);
-}
-
 bool CBC_Code128::Encode(const WideStringView& contents) {
   if (contents.IsEmpty())
     return false;
diff --git a/fxbarcode/cbc_code128.h b/fxbarcode/cbc_code128.h
index ccd5a38..16e30de 100644
--- a/fxbarcode/cbc_code128.h
+++ b/fxbarcode/cbc_code128.h
@@ -24,7 +24,6 @@
   bool Encode(const WideStringView& contents) override;
   bool RenderDevice(CFX_RenderDevice* device,
                     const CFX_Matrix* matrix) override;
-  bool SetTextLocation(BC_TEXT_LOC location) override;
 
  private:
   CBC_OnedCode128Writer* GetOnedCode128Writer();
diff --git a/fxbarcode/cbc_code39.cpp b/fxbarcode/cbc_code39.cpp
index 52859e1..6aa3646 100644
--- a/fxbarcode/cbc_code39.cpp
+++ b/fxbarcode/cbc_code39.cpp
@@ -61,10 +61,6 @@
   return BC_CODE39;
 }
 
-bool CBC_Code39::SetTextLocation(BC_TEXT_LOC location) {
-  return GetOnedCode39Writer()->SetTextLocation(location);
-}
-
 bool CBC_Code39::SetWideNarrowRatio(int8_t ratio) {
   return GetOnedCode39Writer()->SetWideNarrowRatio(ratio);
 }
diff --git a/fxbarcode/cbc_code39.h b/fxbarcode/cbc_code39.h
index 4e240b7..4f87ba7 100644
--- a/fxbarcode/cbc_code39.h
+++ b/fxbarcode/cbc_code39.h
@@ -25,7 +25,6 @@
   bool Encode(const WideStringView& contents) override;
   bool RenderDevice(CFX_RenderDevice* device,
                     const CFX_Matrix* matrix) override;
-  bool SetTextLocation(BC_TEXT_LOC location) override;
   bool SetWideNarrowRatio(int8_t ratio) override;
 
  private:
diff --git a/fxbarcode/cbc_codebase.cpp b/fxbarcode/cbc_codebase.cpp
index b723f55..6a04a25 100644
--- a/fxbarcode/cbc_codebase.cpp
+++ b/fxbarcode/cbc_codebase.cpp
@@ -31,7 +31,7 @@
 CBC_CodeBase::~CBC_CodeBase() {}
 
 bool CBC_CodeBase::SetTextLocation(BC_TEXT_LOC location) {
-  return false;
+  return m_pBCWriter->SetTextLocation(location);
 }
 
 bool CBC_CodeBase::SetWideNarrowRatio(int8_t ratio) {
diff --git a/fxbarcode/cbc_codebase.h b/fxbarcode/cbc_codebase.h
index e0f402d..be49f8a 100644
--- a/fxbarcode/cbc_codebase.h
+++ b/fxbarcode/cbc_codebase.h
@@ -29,12 +29,12 @@
   virtual bool Encode(const WideStringView& contents) = 0;
   virtual bool RenderDevice(CFX_RenderDevice* device,
                             const CFX_Matrix* matrix) = 0;
-  virtual bool SetTextLocation(BC_TEXT_LOC location);
   virtual bool SetWideNarrowRatio(int8_t ratio);
   virtual bool SetStartChar(char start);
   virtual bool SetEndChar(char end);
   virtual bool SetErrorCorrectionLevel(int32_t level);
 
+  bool SetTextLocation(BC_TEXT_LOC location);
   bool SetCharEncoding(int32_t encoding);
   bool SetModuleHeight(int32_t moduleHeight);
   bool SetModuleWidth(int32_t moduleWidth);
diff --git a/fxbarcode/oned/BC_OnedCodaBarWriter.h b/fxbarcode/oned/BC_OnedCodaBarWriter.h
index 4b4f066..ff30ab6 100644
--- a/fxbarcode/oned/BC_OnedCodaBarWriter.h
+++ b/fxbarcode/oned/BC_OnedCodaBarWriter.h
@@ -30,10 +30,10 @@
   bool CheckContentValidity(const WideStringView& contents) override;
   WideString FilterContents(const WideStringView& contents) override;
   void SetDataLength(int32_t length) override;
+  bool SetTextLocation(BC_TEXT_LOC location) override;
 
   virtual bool SetStartChar(char start);
   virtual bool SetEndChar(char end);
-  virtual bool SetTextLocation(BC_TEXT_LOC location);
   virtual bool SetWideNarrowRatio(int8_t ratio);
   virtual bool FindChar(wchar_t ch, bool isContent);
 
diff --git a/fxbarcode/oned/BC_OnedCode128Writer.h b/fxbarcode/oned/BC_OnedCode128Writer.h
index f91874c..3a834e8 100644
--- a/fxbarcode/oned/BC_OnedCode128Writer.h
+++ b/fxbarcode/oned/BC_OnedCode128Writer.h
@@ -33,8 +33,7 @@
   uint8_t* EncodeImpl(const ByteString& contents, int32_t& outLength) override;
   bool CheckContentValidity(const WideStringView& contents) override;
   WideString FilterContents(const WideStringView& contents) override;
-
-  bool SetTextLocation(BC_TEXT_LOC location);
+  bool SetTextLocation(BC_TEXT_LOC location) override;
 
   BC_TYPE GetType() const { return m_codeFormat; }
 
diff --git a/fxbarcode/oned/BC_OnedCode39Writer.h b/fxbarcode/oned/BC_OnedCode39Writer.h
index 97ef7a2..e136073 100644
--- a/fxbarcode/oned/BC_OnedCode39Writer.h
+++ b/fxbarcode/oned/BC_OnedCode39Writer.h
@@ -28,8 +28,8 @@
   bool CheckContentValidity(const WideStringView& contents) override;
   WideString FilterContents(const WideStringView& contents) override;
   WideString RenderTextContents(const WideStringView& contents) override;
+  bool SetTextLocation(BC_TEXT_LOC location) override;
 
-  virtual bool SetTextLocation(BC_TEXT_LOC location);
   virtual bool SetWideNarrowRatio(int8_t ratio);
 
   bool encodedContents(const WideStringView& contents, WideString* result);
diff --git a/fxbarcode/oned/BC_OnedEAN8Writer.h b/fxbarcode/oned/BC_OnedEAN8Writer.h
index 853d4da..6295c4e 100644
--- a/fxbarcode/oned/BC_OnedEAN8Writer.h
+++ b/fxbarcode/oned/BC_OnedEAN8Writer.h
@@ -30,8 +30,8 @@
   bool CheckContentValidity(const WideStringView& contents) override;
   WideString FilterContents(const WideStringView& contents) override;
   void SetDataLength(int32_t length) override;
+  bool SetTextLocation(BC_TEXT_LOC location) override;
 
-  bool SetTextLocation(BC_TEXT_LOC location);
   int32_t CalcChecksum(const ByteString& contents);
 
  private: