1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/foxitlib.h" 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFWL_EditTP::CFWL_EditTP() {} 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFWL_EditTP::~CFWL_EditTP() {} 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFWL_EditTP::IsValidWidget(IFWL_Widget* pWidget) { 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pWidget) 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return pWidget->GetClassID() == FWL_CLASSHASH_Edit; 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CFWL_EditTP::DrawBackground(CFWL_ThemeBackground* pParams) { 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (pParams->m_iPart) { 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case FWL_PART_EDT_Border: { 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann DrawBorder(pParams->m_pGraphics, &pParams->m_rtPart, &pParams->m_matrix); 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case FWL_PART_EDT_Edge: { 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann DrawEdge(pParams->m_pGraphics, pParams->m_pWidget->GetStyles(), 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann &pParams->m_rtPart, &pParams->m_matrix); 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case FWL_PART_EDT_Background: { 27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pParams->m_pPath) { 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Graphics* pGraphics = pParams->m_pGraphics; 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pGraphics->SaveGraphState(); 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Color crSelected(FWL_GetThemeColor(m_dwThemeID) == 0 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ? FWLTHEME_COLOR_BKSelected 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : FWLTHEME_COLOR_Green_BKSelected); 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pGraphics->SetFillColor(&crSelected); 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pGraphics->FillPath(pParams->m_pPath, FXFILL_WINDING, 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann &pParams->m_matrix); 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pGraphics->RestoreGraphState(); 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bStatic = 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_dwData == FWL_PARTDATA_EDT_StaticBackground; 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Path path; 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann path.Create(); 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann path.AddRectangle(pParams->m_rtPart.left, pParams->m_rtPart.top, 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_rtPart.width, pParams->m_rtPart.height); 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Color cr(FWLTHEME_COLOR_Background); 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!bStatic) { 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if ((pParams->m_dwStates & FWL_PARTSTATE_EDT_Disable) == 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FWL_PARTSTATE_EDT_Disable) { 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann cr.Set(FWLTHEME_COLOR_EDGERB1); 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if ((pParams->m_dwStates & FWL_PARTSTATE_EDT_ReadOnly) == 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FWL_PARTSTATE_EDT_ReadOnly) { 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann cr.Set(ArgbEncode(255, 236, 233, 216)); 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann cr.Set(0xFFFFFFFF); 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->SaveGraphState(); 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->SetFillColor(&cr); 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann &pParams->m_matrix); 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->RestoreGraphState(); 61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case FWL_PART_EDT_CombTextLine: { 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB cr = 0xFF000000; 66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fWidth = 1.0f; 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Color crLine(cr); 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->SetStrokeColor(&crLine); 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->SetLineWidth(fWidth); 70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pParams->m_pGraphics->StrokePath(pParams->m_pPath, &pParams->m_matrix); 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: { break; } 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFWL_ERR CFWL_EditTP::Initialize() { 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann InitTTO(); 79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return CFWL_WidgetTP::Initialize(); 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFWL_ERR CFWL_EditTP::Finalize() { 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FinalizeTTO(); 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return CFWL_WidgetTP::Finalize(); 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 85