CPDF_Number::CPDF_Number(FX_BSTR str) : CPDF_Object(PDFOBJ_NUMBER) { FX_atonum(str, m_bInteger, &m_Integer); }
void CPDF_Number::SetString(FX_BSTR str) { FX_atonum(str, m_bInteger, &m_Integer); }
CPDF_Number::CPDF_Number(FX_BSTR str) { m_Type = PDFOBJ_NUMBER; FX_atonum(str, m_bInteger, &m_Integer); }
void CPDF_StreamContentParser::ParsePathObject() { FX_FLOAT params[6] = {0}; int nParams = 0; int last_pos = m_pSyntax->GetPos(); while (1) { CPDF_StreamParser::SyntaxType type = m_pSyntax->ParseNextElement(); FX_BOOL bProcessed = TRUE; switch (type) { case CPDF_StreamParser::EndOfData: return; case CPDF_StreamParser::Keyword: { int len = m_pSyntax->GetWordSize(); if (len == 1) { switch (m_pSyntax->GetWordBuf()[0]) { case 'm': AddPathPoint(params[0], params[1], FXPT_MOVETO); nParams = 0; break; case 'l': AddPathPoint(params[0], params[1], FXPT_LINETO); nParams = 0; break; case 'c': AddPathPoint(params[0], params[1], FXPT_BEZIERTO); AddPathPoint(params[2], params[3], FXPT_BEZIERTO); AddPathPoint(params[4], params[5], FXPT_BEZIERTO); nParams = 0; break; case 'v': AddPathPoint(m_PathCurrentX, m_PathCurrentY, FXPT_BEZIERTO); AddPathPoint(params[0], params[1], FXPT_BEZIERTO); AddPathPoint(params[2], params[3], FXPT_BEZIERTO); nParams = 0; break; case 'y': AddPathPoint(params[0], params[1], FXPT_BEZIERTO); AddPathPoint(params[2], params[3], FXPT_BEZIERTO); AddPathPoint(params[2], params[3], FXPT_BEZIERTO); nParams = 0; break; case 'h': Handle_ClosePath(); nParams = 0; break; default: bProcessed = FALSE; break; } } else if (len == 2) { if (m_pSyntax->GetWordBuf()[0] == 'r' && m_pSyntax->GetWordBuf()[1] == 'e') { AddPathRect(params[0], params[1], params[2], params[3]); nParams = 0; } else { bProcessed = FALSE; } } else { bProcessed = FALSE; } if (bProcessed) { last_pos = m_pSyntax->GetPos(); } break; } case CPDF_StreamParser::Number: { if (nParams == 6) { break; } FX_BOOL bInteger; int value; FX_atonum(CFX_ByteStringC(m_pSyntax->GetWordBuf(), m_pSyntax->GetWordSize()), bInteger, &value); params[nParams++] = bInteger ? (FX_FLOAT)value : *(FX_FLOAT*)&value; break; } default: bProcessed = FALSE; } if (!bProcessed) { m_pSyntax->SetPos(last_pos); return; } } }
void CPDF_Number::SetString(const CFX_ByteStringC& str) { FX_atonum(str, m_bInteger, &m_Integer); }
CPDF_Number::CPDF_Number(const CFX_ByteStringC& str) : CPDF_Object(PDFOBJ_NUMBER) { FX_atonum(str, m_bInteger, &m_Integer); }
void CPDF_Number::SetString(const CFX_ByteString& str) { m_bInteger = FX_atonum(str.AsStringC(), &m_Integer); }
CPDF_Number::CPDF_Number(const CFX_ByteStringC& str) : m_bInteger(FX_atonum(str, &m_Integer)) {}
void CPDF_StreamContentParser::AddNumberParam(const FX_CHAR* str, int len) { int index = GetNextParamPos(); m_ParamBuf1[index].m_Type = PDFOBJ_NUMBER; FX_atonum(CFX_ByteStringC(str, len), m_ParamBuf1[index].m_Number.m_bInteger, &m_ParamBuf1[index].m_Number.m_Integer); }