Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: core/fpdfapi/fpdf_page/cpdf_textobject.cpp

Issue 2283113002: Add -> operators to CFX_CountRef. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@privatize
Patch Set: Regenerate patch, rebase off of master. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h" 7 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h"
8 8
9 #include "core/fpdfapi/fpdf_font/cpdf_cidfont.h" 9 #include "core/fpdfapi/fpdf_font/cpdf_cidfont.h"
10 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" 10 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 obj->m_PosX = m_PosX; 126 obj->m_PosX = m_PosX;
127 obj->m_PosY = m_PosY; 127 obj->m_PosY = m_PosY;
128 return obj; 128 return obj;
129 } 129 }
130 130
131 CPDF_PageObject::Type CPDF_TextObject::GetType() const { 131 CPDF_PageObject::Type CPDF_TextObject::GetType() const {
132 return TEXT; 132 return TEXT;
133 } 133 }
134 134
135 void CPDF_TextObject::Transform(const CFX_Matrix& matrix) { 135 void CPDF_TextObject::Transform(const CFX_Matrix& matrix) {
136 m_TextState.GetPrivateCopy(); 136 m_TextState.MakePrivateCopy();
137 CFX_Matrix text_matrix; 137 CFX_Matrix text_matrix;
138 GetTextMatrix(&text_matrix); 138 GetTextMatrix(&text_matrix);
139 text_matrix.Concat(matrix); 139 text_matrix.Concat(matrix);
140 FX_FLOAT* pTextMatrix = m_TextState.GetMatrix(); 140 FX_FLOAT* pTextMatrix = m_TextState.GetMatrix();
141 pTextMatrix[0] = text_matrix.GetA(); 141 pTextMatrix[0] = text_matrix.GetA();
142 pTextMatrix[1] = text_matrix.GetC(); 142 pTextMatrix[1] = text_matrix.GetC();
143 pTextMatrix[2] = text_matrix.GetB(); 143 pTextMatrix[2] = text_matrix.GetB();
144 pTextMatrix[3] = text_matrix.GetD(); 144 pTextMatrix[3] = text_matrix.GetD();
145 m_PosX = text_matrix.GetE(); 145 m_PosX = text_matrix.GetE();
146 m_PosY = text_matrix.GetF(); 146 m_PosY = text_matrix.GetF();
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 if (min_y > char_bottom) { 327 if (min_y > char_bottom) {
328 min_y = char_bottom; 328 min_y = char_bottom;
329 } 329 }
330 if (max_y < char_bottom) { 330 if (max_y < char_bottom) {
331 max_y = char_bottom; 331 max_y = char_bottom;
332 } 332 }
333 charwidth = pCIDFont->GetVertWidth(CID) * fontsize / 1000; 333 charwidth = pCIDFont->GetVertWidth(CID) * fontsize / 1000;
334 } 334 }
335 curpos += charwidth; 335 curpos += charwidth;
336 if (charcode == ' ' && (!pCIDFont || pCIDFont->GetCharSize(32) == 1)) { 336 if (charcode == ' ' && (!pCIDFont || pCIDFont->GetCharSize(32) == 1)) {
337 curpos += m_TextState.GetObject()->m_WordSpace; 337 curpos += m_TextState->m_WordSpace;
338 } 338 }
339 curpos += m_TextState.GetObject()->m_CharSpace; 339 curpos += m_TextState->m_CharSpace;
340 } 340 }
341 if (bVertWriting) { 341 if (bVertWriting) {
342 if (pTextAdvanceX) { 342 if (pTextAdvanceX) {
343 *pTextAdvanceX = 0; 343 *pTextAdvanceX = 0;
344 } 344 }
345 if (pTextAdvanceY) { 345 if (pTextAdvanceY) {
346 *pTextAdvanceY = curpos; 346 *pTextAdvanceY = curpos;
347 } 347 }
348 min_x = min_x * fontsize / 1000; 348 min_x = min_x * fontsize / 1000;
349 max_x = max_x * fontsize / 1000; 349 max_x = max_x * fontsize / 1000;
350 } else { 350 } else {
351 if (pTextAdvanceX) { 351 if (pTextAdvanceX) {
352 *pTextAdvanceX = curpos * horz_scale; 352 *pTextAdvanceX = curpos * horz_scale;
353 } 353 }
354 if (pTextAdvanceY) { 354 if (pTextAdvanceY) {
355 *pTextAdvanceY = 0; 355 *pTextAdvanceY = 0;
356 } 356 }
357 min_y = min_y * fontsize / 1000; 357 min_y = min_y * fontsize / 1000;
358 max_y = max_y * fontsize / 1000; 358 max_y = max_y * fontsize / 1000;
359 } 359 }
360 CFX_Matrix matrix; 360 CFX_Matrix matrix;
361 GetTextMatrix(&matrix); 361 GetTextMatrix(&matrix);
362 m_Left = min_x; 362 m_Left = min_x;
363 m_Right = max_x; 363 m_Right = max_x;
364 m_Bottom = min_y; 364 m_Bottom = min_y;
365 m_Top = max_y; 365 m_Top = max_y;
366 matrix.TransformRect(m_Left, m_Right, m_Top, m_Bottom); 366 matrix.TransformRect(m_Left, m_Right, m_Top, m_Bottom);
367 if (TextRenderingModeIsStrokeMode(m_TextState.GetObject()->m_TextMode)) { 367 if (TextRenderingModeIsStrokeMode(m_TextState->m_TextMode)) {
368 FX_FLOAT half_width = m_GraphState.GetObject()->m_LineWidth / 2; 368 FX_FLOAT half_width = m_GraphState->m_LineWidth / 2;
369 m_Left -= half_width; 369 m_Left -= half_width;
370 m_Right += half_width; 370 m_Right += half_width;
371 m_Top += half_width; 371 m_Top += half_width;
372 m_Bottom -= half_width; 372 m_Bottom -= half_width;
373 } 373 }
374 } 374 }
375 375
376 void CPDF_TextObject::SetPosition(FX_FLOAT x, FX_FLOAT y) { 376 void CPDF_TextObject::SetPosition(FX_FLOAT x, FX_FLOAT y) {
377 FX_FLOAT dx = x - m_PosX; 377 FX_FLOAT dx = x - m_PosX;
378 FX_FLOAT dy = y - m_PosY; 378 FX_FLOAT dy = y - m_PosY;
379 m_PosX = x; 379 m_PosX = x;
380 m_PosY = y; 380 m_PosY = y;
381 m_Left += dx; 381 m_Left += dx;
382 m_Right += dx; 382 m_Right += dx;
383 m_Top += dy; 383 m_Top += dy;
384 m_Bottom += dy; 384 m_Bottom += dy;
385 } 385 }
386 386
387 void CPDF_TextObject::RecalcPositionData() { 387 void CPDF_TextObject::RecalcPositionData() {
388 CalcPositionData(nullptr, nullptr, 1); 388 CalcPositionData(nullptr, nullptr, 1);
389 } 389 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/cpdf_shadingobject.cpp ('k') | core/fpdfapi/fpdf_page/cpdf_textstate.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698