#ifndef THUMBNAILSERVICE_H #define THUMBNAILSERVICE_H /** * 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. */ #include #include #include #include #include class KPSWidget; class KGVMiniWidget; class TQTimer; class ThumbnailService : public TQObject { TQ_OBJECT public: ThumbnailService( KGVMiniWidget* parent, const char* name = 0 ); ~ThumbnailService(); public slots: void delayedGetThumbnail( int page, TQObject* receiver, const char* slot, bool urgent = false ); /** * Cancels the request matching the signature below. * * @param page the page of the request. Use "-1" for wildcard * @param receiver the receiver. Use null for wildcard * @param slot Use null for wildcard */ void cancelRequests( int page, TQObject* receiver, const char* slot); void reset(); /** * This "suspends" the service. * Unlike @ref reset(), if you call setEnabled( false ), * old requests will be kept and will be serviced when * you call setEnabled( true ) later. */ void setEnabled( bool ); signals: /** * Don't connect to this directly */ void relayPixmap( TQPixmap ); private slots: void slotDone( TQPixmap ); void processOne(); private: struct Request { Request( int p, TQObject* r, const char* s ) : page( p ), receiver( r ), slot( s ), urgent( false ) { } Request( int p, TQObject* r, const char* s, bool u ) : page( p ), receiver( r ), slot( s ), urgent( u ) { } int page; TQObject* receiver; const char* slot; bool urgent; bool operator < ( Request ) const; }; static bool pageCmp( Request, Request ); std::set pending; TQGuardedPtr _thumbnailDrawer; KGVMiniWidget* _mini; TQTimer* timer_; bool _busy; bool _enabled; }; #endif // THUMBNAILSERVICE_H