#ifndef __TDEFILE_FONT_VIEW_H__ #define __TDEFILE_FONT_VIEW_H__ //////////////////////////////////////////////////////////////////////////////// // // Class Name : CKFileFontView // Author : Craig Drummond // Project : K Font Installer // Creation Date : 31/05/2003 // Version : $Revision$ $Date$ // //////////////////////////////////////////////////////////////////////////////// // // 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. // //////////////////////////////////////////////////////////////////////////////// // (C) Craig Drummond, 2003 //////////////////////////////////////////////////////////////////////////////// // // NOTE: HEAVILY copied from tdefiledetailview.cpp... // // Copyright (C) 1997 Stephan Kulow // 2000, 2001 Carste class KFileItem; class TQWidget; class TQKeyEvent; #include #include #include "tdefileview.h" /** * An item for the listiew, that has a reference to its corresponding * @ref KFileItem. */ class CFontListViewItem : public TDEListViewItem { public: CFontListViewItem(TQListView *parent, const TQString &text, const TQPixmap &icon, KFileItem *fi) : TDEListViewItem(parent, text), itsInf(fi) { setPixmap(0, icon); setText(0, text); } CFontListViewItem(TQListView *parent, KFileItem *fi) : TDEListViewItem(parent), itsInf(fi) { init(); } CFontListViewItem(TQListView *parent, const TQString &text, const TQPixmap &icon, KFileItem *fi, TQListViewItem *after) : TDEListViewItem(parent, after), itsInf(fi) { setPixmap(0, icon); setText(0, text); } ~CFontListViewItem() { itsInf->removeExtraData(listView()); } /** * @returns the corresponding KFileItem */ KFileItem *fileInfo() const { return itsInf; } virtual TQString key( int /*column*/, bool /*ascending*/ ) const { return itsKey; } void setKey( const TQString& key ) { itsKey = key; } TQRect rect() const { TQRect r = listView()->itemRect(this); return TQRect(listView()->viewportToContents(r.topLeft()), TQSize(r.width(), r.height())); } void init(); private: KFileItem *itsInf; TQString itsKey; class CFontListViewItemPrivate; CFontListViewItemPrivate *d; }; /** * A list-view capable of showing @ref KFileItem'. Used in the filedialog * for example. Most of the documentation is in @ref KFileView class. * * @see KDirOperator * @see KCombiView * @see KFileIconView */ class CKFileFontView : public TDEListView, public KFileView { Q_OBJECT public: CKFileFontView(TQWidget *parent, const char *name); virtual ~CKFileFontView(); virtual TQWidget * widget() { return this; } virtual void clearView(); virtual void setAutoUpdate(bool) {} // ### unused. remove in KDE4 virtual void setSelectionMode( KFile::SelectionMode sm ); virtual void updateView(bool b); virtual void updateView(const KFileItem *i); virtual void removeItem(const KFileItem *i); virtual void listingCompleted(); virtual void setSelected(const KFileItem *i, bool b); virtual bool isSelected(const KFileItem *i) const; virtual void clearSelection(); virtual void selectAll(); virtual void invertSelection(); virtual void setCurrentItem( const KFileItem *i); virtual KFileItem * currentFileItem() const; virtual KFileItem * firstFileItem() const; virtual KFileItem * nextItem(const KFileItem *i) const; virtual KFileItem * prevItem(const KFileItem *i) const; virtual void insertItem( KFileItem *i); void readConfig(TDEConfig *kc, const TQString &group); void writeConfig(TDEConfig *kc, const TQString &group); // implemented to get noticed about sorting changes (for sortingIndicator) virtual void setSorting(TQDir::SortSpec s); void ensureItemVisible(const KFileItem *i); // for KMimeTypeResolver void mimeTypeDeterminationFinished(); void determineIcon(CFontListViewItem *item); TQScrollView * scrollWidget() const { return (TQScrollView*) this; } signals: // The user dropped something. // fileItem points to the item dropped on or can be 0 if the // user dropped on empty space. void dropped(TQDropEvent *event, KFileItem *fileItem); // The user dropped the URLs urls. // url points to the item dropped on or can be empty if the // user dropped on empty space. void dropped(TQDropEvent *event, const KURL::List &urls, const KURL &url); protected: virtual void keyPressEvent(TQKeyEvent *e); // DND support TQDragObject * dragObject(); void contentsDragEnterEvent(TQDragEnterEvent *e); void contentsDragMoveEvent(TQDragMoveEvent *e); void contentsDragLeaveEvent(TQDragLeaveEvent *e); void contentsDropEvent(TQDropEvent *e); bool acceptDrag(TQDropEvent *e) const; int itsSortingCol; protected slots: void slotSelectionChanged(); private slots: void slotSortingChanged(int c); void selected(TQListViewItem *item); void slotActivate(TQListViewItem *item); void highlighted(TQListViewItem *item); void slotActivateMenu(TQListViewItem *item, const TQPoint& pos); void slotAutoOpen(); private: virtual void insertItem(TQListViewItem *i) { TDEListView::insertItem(i); } virtual void setSorting(int i, bool b) { TDEListView::setSorting(i, b); } virtual void setSelected(TQListViewItem *i, bool b) { TDEListView::setSelected(i, b); } inline CFontListViewItem * viewItem( const KFileItem *item ) const { return item ? (CFontListViewItem *) item->extraData(this) : NULL; } void setSortingKey( CFontListViewItem *item, const KFileItem *i); bool itsBlockSortingSignal; KMimeTypeResolver *itsResolver; protected: virtual void virtual_hook(int id, void *data); private: class CKFileFontViewPrivate; CKFileFontViewPrivate *d; }; #endif