summaryrefslogtreecommitdiffstats
path: root/kcontrol/tdefontinst/kcmfontinst/KFileFontView.h
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/tdefontinst/kcmfontinst/KFileFontView.h')
-rw-r--r--kcontrol/tdefontinst/kcmfontinst/KFileFontView.h219
1 files changed, 219 insertions, 0 deletions
diff --git a/kcontrol/tdefontinst/kcmfontinst/KFileFontView.h b/kcontrol/tdefontinst/kcmfontinst/KFileFontView.h
new file mode 100644
index 000000000..2950d3c33
--- /dev/null
+++ b/kcontrol/tdefontinst/kcmfontinst/KFileFontView.h
@@ -0,0 +1,219 @@
+#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 <coolo@kde.org>
+// 2000, 2001 Carste
+
+class KFileItem;
+class TQWidget;
+class TQKeyEvent;
+
+#include <klistview.h>
+#include <kmimetyperesolver.h>
+
+#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<CFontListViewItem,CKFileFontView> *itsResolver;
+
+ protected:
+
+ virtual void virtual_hook(int id, void *data);
+
+ private:
+
+ class CKFileFontViewPrivate;
+ CKFileFontViewPrivate *d;
+};
+
+#endif