src/gui/text/qfontengine_s60.cpp
changeset 22 79de32ba3296
parent 18 2f34d5167611
child 23 89e065397ea6
equal deleted inserted replaced
19:fcece45ef507 22:79de32ba3296
    73     Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag));
    73     Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag));
    74     TInt error = KErrNone;
    74     TInt error = KErrNone;
    75     TInt tableByteLength = 0;
    75     TInt tableByteLength = 0;
    76     TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
    76     TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
    77     QByteArray result(static_cast<const char*>(table), tableByteLength);
    77     QByteArray result(static_cast<const char*>(table), tableByteLength);
       
    78     m_trueTypeExtension->ReleaseTrueTypeTable(table);
       
    79     return result;
       
    80 }
       
    81 
       
    82 bool QFontEngineS60Extensions::getSfntTableData(uint tag, uchar *buffer, uint *length) const
       
    83 {
       
    84     if (!m_trueTypeExtension->HasTrueTypeTable(tag))
       
    85         return false;
       
    86 
       
    87     bool result = true;
       
    88     TInt error = KErrNone;
       
    89     TInt tableByteLength;
       
    90     TAny *table =
       
    91         q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
       
    92 
       
    93     if (error != KErrNone) {
       
    94         return false;
       
    95     } else if (*length > 0 && *length < tableByteLength) {
       
    96         result = false; // Caller did not allocate enough memory
       
    97     } else {
       
    98         *length = tableByteLength;
       
    99         if (buffer)
       
   100             qMemCopy(buffer, table, tableByteLength);
       
   101     }
       
   102 
    78     m_trueTypeExtension->ReleaseTrueTypeTable(table);
   103     m_trueTypeExtension->ReleaseTrueTypeTable(table);
    79     return result;
   104     return result;
    80 }
   105 }
    81 
   106 
    82 const unsigned char *QFontEngineS60Extensions::cmap() const
   107 const unsigned char *QFontEngineS60Extensions::cmap() const
   324 QByteArray QFontEngineS60::getSfntTable(uint tag) const
   349 QByteArray QFontEngineS60::getSfntTable(uint tag) const
   325 {
   350 {
   326     return m_extensions->getSfntTable(tag);
   351     return m_extensions->getSfntTable(tag);
   327 }
   352 }
   328 
   353 
       
   354 bool QFontEngineS60::getSfntTableData(uint tag, uchar *buffer, uint *length) const
       
   355 {
       
   356     return m_extensions->getSfntTableData(tag, buffer, length);
       
   357 }
       
   358 
   329 QFontEngine::Type QFontEngineS60::type() const
   359 QFontEngine::Type QFontEngineS60::type() const
   330 {
   360 {
   331     return QFontEngine::S60FontEngine;
   361     return QFontEngine::S60FontEngine;
   332 }
   362 }
   333 
   363