/* * khexedit - Versatile hex editor * Copyright (C) 1999 Espen Sand, espensa@online.no * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #include "hexprinter.h" CHexPrinter::CHexPrinter( void ) : KPrinter() { } void CHexPrinter::setPageMarginMM( uint top, uint bottom, int right, int left ) { mPageMargin.top = top; mPageMargin.left = left; mPageMargin.bottom = bottom; mPageMargin.right = right; } void CHexPrinter::setTopMarginMM( uint value ) { mPageMargin.top = value; } void CHexPrinter::setLeftMarginMM( uint value ) { mPageMargin.left = value; } void CHexPrinter::setBottomMarginMM( uint value ) { mPageMargin.bottom = value; } void CHexPrinter::setRightMarginMM( uint value ) { mPageMargin.right = value; } void CHexPrinter::setPageHeader( bool enable, uint left, uint center, uint right, uint line ) { if( left > SPageHeader::FileName ) { left = SPageHeader::NoString; } if( center > SPageHeader::FileName ) { center = SPageHeader::NoString; } if( right > SPageHeader::FileName ) { right = SPageHeader::NoString; } if( line > SPageHeader::Rectangle ) { line = SPageHeader::NoLine; } mHeader.enable = enable; mHeader.pos[0] = (SPageHeader::EHeaderString)left; mHeader.pos[1] = (SPageHeader::EHeaderString)center; mHeader.pos[2] = (SPageHeader::EHeaderString)right; mHeader.line = (SPageHeader::EHeaderLine)line; if( mHeader.pos[0] == SPageHeader::NoString && mHeader.pos[1] == SPageHeader::NoString && mHeader.pos[2] == SPageHeader::NoString && mHeader.line == SPageHeader::NoLine ) { mHeader.enable = false; } } void CHexPrinter::setPageFooter( bool enable, uint left, uint center, uint right, uint line ) { if( left > SPageHeader::FileName ) { left = SPageHeader::NoString; } if( center > SPageHeader::FileName ) { center = SPageHeader::NoString; } if( right > SPageHeader::FileName ) { right = SPageHeader::NoString; } if( line > SPageHeader::Rectangle ) { line = SPageHeader::NoLine; } mFooter.enable = enable; mFooter.pos[0] = (SPageHeader::EHeaderString)left; mFooter.pos[1] = (SPageHeader::EHeaderString)center; mFooter.pos[2] = (SPageHeader::EHeaderString)right; mFooter.line = (SPageHeader::EHeaderLine)line; if( mFooter.pos[0] == SPageHeader::NoString && mFooter.pos[1] == SPageHeader::NoString && mFooter.pos[2] == SPageHeader::NoString && mFooter.line == SPageHeader::NoLine ) { mFooter.enable = false; } } SPageMargin CHexPrinter::pageMargin( void ) { TQPaintDeviceMetrics metric( this ); float f = (float)metric.width()/(float)metric.widthMM(); SPageMargin margin; margin.top = (uint) (f*(float)mPageMargin.top); margin.right = (uint) (f*(float)mPageMargin.right); margin.bottom = (uint) (f*(float)mPageMargin.bottom); margin.left = (uint) (f*(float)mPageMargin.left); return( margin ); } SPageMargin CHexPrinter::pageMarginMM( void ) { return( mPageMargin ); } SPageSize CHexPrinter::pageFullSize( void ) { TQPaintDeviceMetrics metric( this ); SPageSize size; size.width = metric.width(); size.height = metric.height(); return( size ); } SPageSize CHexPrinter::pageUsableSize( void ) { TQPaintDeviceMetrics metric( this ); SPageMargin margin = pageMargin(); SPageSize size; uint mw = margin.left + margin.right; if( metric.width() <= (int)mw ) { size.width = 1; } else { size.width = metric.width() - mw; } uint mh = margin.top + margin.bottom; if( metric.height() <= (int)mh ) { size.height = 1; } else { size.height = metric.height() - mh; } return( size ); }