You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegraphics/kghostview/kgv_miniwidget.h

175 lines
4.1 KiB

/**
* Copyright (C) 1997-2003 the KGhostView authors. See file AUTHORS.
*
* 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.
*/
#ifndef __KGV_MINIWIDGET_H
#define __KGV_MINIWIDGET_H
#include <tqprinter.h>
#include "dscparse_adapter.h"
#include "kgv.h"
#include "kgvdocument.h"
#include "displayoptions.h"
#include "thumbnailservice.h"
#include <tqobject.h>
class InfoDialog;
class KGVPart;
class KPSWidget;
class MarkList;
class KGVMiniWidget : public TQObject
{
Q_OBJECT
public:
KGVMiniWidget( KGVPart* part, const char* name = 0 );
void setDocument( KGVDocument* document );
static TQString pageSizeToString( TQPrinter::PageSize );
void setPSWidget( KPSWidget* psWidget );
void setDisplayOptions( const DisplayOptions& newOptions );
const DisplayOptions& displayOptions() const { return _options; }
void restoreOverrideOrientation();
void setOverrideOrientation( CDSC_ORIENTATION_ENUM );
void restoreOverridePageMedia();
void setOverridePageMedia( const TQString& mediaName );
ThumbnailService* getThumbnailService() { return _thumbnailService; }
/**
* Enable/disable fancy, document-supplied page labels.
**/
void enablePageLabels( bool e = true );
bool arePageLabelsEnabled () { return _usePageLabels; }
/**
* Return true if the current page is the first page, false otherwise.
*/
bool atFirstPage() const;
/**
* Return true if the current page is the last page, false otherwise.
*/
bool atLastPage() const;
/**
* Return true if we're zoomed in fully, false otherwise.
*/
bool atMaxZoom() const;
/**
* Return true if we're zoomed out fully, false otherwise.
*/
bool atMinZoom() const;
int currentPage() const { return _options.page(); }
public slots:
bool prevPage();
bool nextPage();
void firstPage();
void lastPage();
void goToPage();
void goToPage( int page );
void zoomIn();
void zoomOut();
void fitWidth( unsigned int );
void fitHeight( unsigned int );
void fitWidthHeight( unsigned int, unsigned int );
void info();
/**
* Redisplay the page if the file has changed on disk.
**/
void redisplay();
signals:
/**
* Page changed.
*/
void newPageShown( int pageNumber ); // Should this one be under DOCUMENT?
void newPageImage( TQPixmap image );
void setStatusBarText( const TQString& );
protected:
void showPage( int pageNumber );
void buildTOC();
protected slots:
void sendPage();
void updateStatusBarText( int pageNumber );
protected:
void reset();
private:
CDSC_ORIENTATION_ENUM orientation() const;
CDSC_ORIENTATION_ENUM orientation( int pageNo ) const;
TQString pageMedia() const;
TQString pageMedia( int pageNo ) const;
KDSCBBOX boundingBox() const;
KDSCBBOX boundingBox( int pageNo ) const;
void setMagnification( double );
KDSC* const dsc() const
{ return _document ? _document->dsc() : 0; }
FILE* psFile()
{ return document()->psFile(); }
KGVDocument* const document() const
{ return _document; }
private slots:
void slotDocumentOpened();
private:
friend class ThumbnailService;
KGVDocument* _document;
KGVPart* _part;
KPSWidget* _psWidget;
ThumbnailService* _thumbnailService;
bool _usePageLabels;
int _visiblePage;
DisplayOptions _options;
TQString _fallBackPageMedia;
};
#endif
// vim:sw=4:sts=4:ts=8:sta:tw=78:noet