Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

Text.hh

Go to the documentation of this file.
00001 /*
00002     libpdf++: a C++ Free library to generate PDF file
00003     Copyright (C) 2002 Nestal Wan
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Lesser General Public
00007     License as published by the Free Software Foundation; either
00008     version 2.1 of the License, or (at your option) any later version.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Lesser General Public License for more details.
00014 
00015     You should have received a copy of the GNU Lesser General Public
00016     License along with this library; if not, write to the Free Software
00017     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 */
00026 #ifndef __PDF_TEXT_TEXT_HEADER_INCLUDED__
00027 #define __PDF_TEXT_TEXT_HEADER_INCLUDED__
00028 
00029 #ifndef __PDF_TEXT_STATE_HEADER_INCLUDED__
00030 #include "State.hh"
00031 #endif
00032 
00033 #ifndef __PDF_TEXT_POSITION_HEADER_INCLUDED__
00034 #include "Position.hh"
00035 #endif
00036 
00037 #include <string>
00038 #include <memory>
00039 
00040 namespace pdf { namespace text {
00041 
00064 class CText
00065 {
00066 private :
00067     std::string     m_line ;        
00068     CState          m_state ;       
00069 
00071     std::auto_ptr<CPosition> m_position ;
00072 
00073 public :
00074     CText( const std::string& line, const CState& state,
00075            const CPosition& position = CNullPos( ) ) ;
00076     CText( const std::string& line, const CState& state,
00077            double offset_x, double offset_y ) ;
00078     CText( const CText& text ) ;
00079     ~CText( ) ;
00080 
00081     // attributes
00082     const std::string& Line( ) const { return m_line ; }
00083     const CState& State( ) const { return m_state ; }
00084 
00085     // operations
00086     std::ostream& Write( std::ostream& os, const CState& prev ) const ; 
00087     void Move( const CPosition& new_pos ) ;
00088     double Width( ) const ;
00089 
00090 private :
00091     static const std::string EscapeString( const std::string& str ) ;
00092 } ;
00093 
00094 } } // end of namespace
00095 
00096 #endif
00097 

Generated on Sun Feb 2 09:16:05 2003 for libpdf++ by doxygen1.2.16