void WORKSHEET_LAYOUT_IO::format( WORKSHEET_DATAITEM_BITMAP* aItem, int aNestLevel ) const throw( IO_ERROR ) { m_out->Print( aNestLevel, "( %s", getTokenName( T_bitmap ) ); m_out->Print( 0, " (%s %s)", getTokenName( T_name ), m_out->Quotew( aItem->m_Name ).c_str() ); formatCoordinate( getTokenName( T_pos ), aItem->m_Pos ); formatOptions( aItem ); m_out->Print( 0, " (%s %s)", getTokenName( T_scale ), double2Str(aItem->m_ImageBitmap->m_Scale ).c_str() ); formatRepeatParameters( aItem ); m_out->Print( 0,"\n"); // Write image in png readable format m_out->Print( aNestLevel, "( %s\n", getTokenName( T_pngdata ) ); wxArrayString pngStrings; aItem->m_ImageBitmap->SaveData( pngStrings ); for( unsigned ii = 0; ii < pngStrings.GetCount(); ii++ ) m_out->Print( aNestLevel+1, "(data \"%s\")\n", TO_UTF8(pngStrings[ii]) ); m_out->Print( aNestLevel+1, ")\n" ); m_out->Print( aNestLevel, ")\n" ); }
void WORKSHEET_LAYOUT_IO::format( WORKSHEET_DATAITEM_POLYPOLYGON* aItem, int aNestLevel ) const throw( IO_ERROR ) { m_out->Print( aNestLevel, "( %s", getTokenName( T_polygon ) ); m_out->Print( 0, " (%s %s)", getTokenName( T_name ), m_out->Quotew( aItem->m_Name ).c_str() ); formatCoordinate( getTokenName( T_pos ), aItem->m_Pos ); formatOptions( aItem ); formatRepeatParameters( aItem ); if( aItem->m_Orient ) m_out->Print( 0, " (%s %s)", getTokenName( T_rotate ), double2Str(aItem->m_Orient ).c_str() ); if( aItem->m_LineWidth ) m_out->Print( 0, " (linewidth %s)\n", double2Str( aItem->m_LineWidth ).c_str() ); // Write polygon corners list for( int kk = 0; kk < aItem->GetPolyCount(); kk++ ) { m_out->Print( aNestLevel+1, "( %s", getTokenName( T_pts ) ); // Create current polygon corners list unsigned ist = aItem->GetPolyIndexStart( kk ); unsigned iend = aItem->GetPolyIndexEnd( kk ); int ii = 0; while( ist <= iend ) { DPOINT pos = aItem->m_Corners[ist++]; int nestLevel = 0; if( ii++ > 4) { m_out->Print( 0, "\n" ); nestLevel = aNestLevel+2; ii = 0; } m_out->Print( nestLevel, " (%s %s %s)", getTokenName( T_xy ), double2Str( pos.x ).c_str(), double2Str( pos.y ).c_str() ); } m_out->Print( 0, ")\n" ); } m_out->Print( aNestLevel, ")\n" ); }
void WORKSHEET_LAYOUT_IO::format( WORKSHEET_DATAITEM* aItem, int aNestLevel ) const throw( IO_ERROR ) { if( aItem->GetType() == WORKSHEET_DATAITEM::WS_RECT ) m_out->Print( aNestLevel, "(%s", getTokenName( T_rect ) ); else m_out->Print( aNestLevel, "(%s", getTokenName( T_line ) ); m_out->Print( 0, " (%s %s)", getTokenName( T_name ), m_out->Quotew( aItem->m_Name ).c_str() ); formatCoordinate( getTokenName( T_start ), aItem->m_Pos ); formatCoordinate( getTokenName( T_end ), aItem->m_End ); formatOptions( aItem ); if( aItem->m_LineWidth && aItem->m_LineWidth != aItem->m_DefaultLineWidth ) m_out->Print( 0, " (linewidth %s)", double2Str( aItem->m_LineWidth ).c_str() ); formatRepeatParameters( aItem ); m_out->Print( 0, ")\n" ); }
void WORKSHEET_LAYOUT_IO::format( WORKSHEET_DATAITEM_TEXT* aItem, int aNestLevel ) const throw( IO_ERROR ) { m_out->Print( aNestLevel, "(%s", getTokenName( T_tbtext ) ); m_out->Print( 0, " %s", m_out->Quotew( aItem->m_TextBase ).c_str() ); m_out->Print( 0, " (%s %s)", getTokenName( T_name ), m_out->Quotew( aItem->m_Name ).c_str() ); formatCoordinate( getTokenName( T_pos ), aItem->m_Pos ); formatOptions( aItem ); if( aItem->m_Orient ) m_out->Print( 0, " (%s %s)", getTokenName( T_rotate ), double2Str(aItem->m_Orient ).c_str() ); // Write font info bool write_size = aItem->m_TextSize.x != 0.0 && aItem->m_TextSize.y != 0.0; if( write_size || aItem->IsBold() || aItem->IsItalic() ) { m_out->Print( 0, " (%s", getTokenName( T_font ) ); if( write_size ) { m_out->Print( 0, " (%s %s %s)", getTokenName( T_size ), double2Str(aItem->m_TextSize.x ).c_str(), double2Str(aItem->m_TextSize.y ).c_str() ); } if( aItem->IsBold() ) m_out->Print( 0, " %s", getTokenName( T_bold ) ); if( aItem->IsItalic() ) m_out->Print( 0, " %s", getTokenName( T_italic ) ); m_out->Print( 0, ")" ); } // Write text justification if( aItem->m_Hjustify != GR_TEXT_HJUSTIFY_LEFT || aItem->m_Vjustify != GR_TEXT_VJUSTIFY_CENTER ) { m_out->Print( 0, " (%s", getTokenName( T_justify ) ); // Write T_center opt first, because it is // also a center for both m_Hjustify and m_Vjustify if( aItem->m_Hjustify == GR_TEXT_HJUSTIFY_CENTER ) m_out->Print( 0, " %s", getTokenName( T_center ) ); if( aItem->m_Hjustify == GR_TEXT_HJUSTIFY_RIGHT ) m_out->Print( 0, " %s", getTokenName( T_right ) ); if( aItem->m_Vjustify == GR_TEXT_VJUSTIFY_TOP ) m_out->Print( 0, " %s", getTokenName( T_top ) ); if( aItem->m_Vjustify == GR_TEXT_VJUSTIFY_BOTTOM ) m_out->Print( 0, " %s", getTokenName( T_bottom ) ); m_out->Print( 0, ")" ); } // write constraints if( aItem->m_BoundingBoxSize.x ) m_out->Print( 0, " (%s %s)", getTokenName( T_maxlen ), double2Str(aItem->m_BoundingBoxSize.x ).c_str() ); if( aItem->m_BoundingBoxSize.y ) m_out->Print( 0, " (%s %s)", getTokenName( T_maxheight ), double2Str(aItem->m_BoundingBoxSize.y ).c_str() ); formatRepeatParameters( aItem ); m_out->Print( 0, ")\n" ); }