From bbee445c5a77dfbaea9041308f001c756e49c5fd Mon Sep 17 00:00:00 2001 From: tsepez Date: Fri, 2 Sep 2016 15:22:00 -0700 Subject: Make CPDF_GeneralState have a CPDF_GeneralStateData Remove a const cast along the way and propagate to callers. Review-Url: https://codereview.chromium.org/2303553002 --- core/fpdfapi/fpdf_page/include/cpdf_generalstate.h | 71 ++++++++++++++++++---- 1 file changed, 58 insertions(+), 13 deletions(-) (limited to 'core/fpdfapi/fpdf_page/include/cpdf_generalstate.h') diff --git a/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h b/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h index dff8371119..b653d640d7 100644 --- a/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h +++ b/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h @@ -10,22 +10,67 @@ #include "core/fpdfapi/fpdf_page/include/cpdf_generalstatedata.h" #include "core/fxcrt/include/fx_basic.h" -class CPDF_GeneralState : public CFX_CountRef { +class CPDF_GeneralState { public: + CPDF_GeneralState(); + CPDF_GeneralState(const CPDF_GeneralState& that); + ~CPDF_GeneralState(); + + void Emplace() { m_Ref.Emplace(); } + operator bool() const { return !!m_Ref; } + void SetRenderIntent(const CFX_ByteString& ri); - int GetBlendType() const { - const CPDF_GeneralStateData* pData = GetObject(); - return pData ? pData->m_BlendType : FXDIB_BLEND_NORMAL; - } - - int GetAlpha(FX_BOOL bStroke) const { - const CPDF_GeneralStateData* pData = GetObject(); - if (!pData) - return 255; - return FXSYS_round((bStroke ? pData->m_StrokeAlpha : pData->m_FillAlpha) * - 255); - } + int GetBlendType() const; + void SetBlendType(int type); + + FX_FLOAT GetFillAlpha() const; + void SetFillAlpha(FX_FLOAT alpha); + + FX_FLOAT GetStrokeAlpha() const; + void SetStrokeAlpha(FX_FLOAT alpha); + + CPDF_Object* GetSoftMask() const; + void SetSoftMask(CPDF_Object* pObject); + + CPDF_Object* GetTR() const; + void SetTR(CPDF_Object* pObject); + + CPDF_TransferFunc* GetTransferFunc() const; + void SetTransferFunc(CPDF_TransferFunc* pFunc); + + void SetBlendMode(const CFX_ByteStringC& mode); + + const FX_FLOAT* GetSMaskMatrix() const; + FX_FLOAT* GetMutableSMaskMatrix(); + + bool GetFillOP() const; + void SetFillOP(bool op); + + bool GetStrokeOP() const; + void SetStrokeOP(bool op); + + int GetOPMode() const; + void SetOPMode(int mode); + + void SetBG(CPDF_Object* pObject); + void SetUCR(CPDF_Object* pObject); + void SetHT(CPDF_Object* pObject); + + void SetFlatness(FX_FLOAT flatness); + void SetSmoothness(FX_FLOAT smoothness); + + bool GetStrokeAdjust() const; + void SetStrokeAdjust(bool adjust); + + void SetAlphaSource(bool source); + void SetTextKnockout(bool knockout); + + void SetMatrix(const CFX_Matrix& matrix); + CFX_Matrix* GetMutableMatrix(); + + private: + CFX_CountRef m_Ref; }; #endif // CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_GENERALSTATE_H_ -- cgit v1.2.3