kio Library API Documentation

kurlbar.h

00001 /* This file is part of the KDE libraries
00002     Copyright (C) 2001,2002 Carsten Pfeiffer <pfeiffer@kde.org>
00003 
00004     library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation, version 2.
00007 
00008     This library is distributed in the hope that it will be useful,
00009     but WITHOUT ANY WARRANTY; without even the implied warranty of
00010     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011     Library General Public License for more details.
00012 
00013     You should have received a copy of the GNU Library General Public License
00014     along with this library; see the file COPYING.LIB.  If not, write to
00015     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016     Boston, MA 02111-1307, USA.
00017 */
00018 
00019 #ifndef KURLBAR_H
00020 #define KURLBAR_H
00021 
00022 #include <qevent.h>
00023 #include <qframe.h>
00024 #include <qtooltip.h>
00025 
00026 #include <kdialogbase.h>
00027 #include <kicontheme.h>
00028 #include <klistbox.h>
00029 #include <kurl.h>
00030 
00031 class KConfig;
00032 class KURLBar;
00033 
00042 class KURLBarItem : public QListBoxPixmap
00043 {
00044 public:
00055     KURLBarItem( KURLBar *parent, const KURL& url,
00056                  const QString& description = QString::null,
00057                  const QString& icon = QString::null,
00058                  KIcon::Group group = KIcon::Panel );
00062     ~KURLBarItem();
00063 
00069     void setURL( const KURL& url );
00075     void setIcon( const QString& icon, KIcon::Group group = KIcon::Panel );
00080     void setDescription( const QString& desc );
00085     void setToolTip( const QString& tip );
00086 
00091     QSize sizeHint() const;
00092 
00096     virtual int width( const QListBox * ) const;
00100     virtual int height( const QListBox * ) const;
00101 
00106     const KURL& url() const                     { return m_url; }
00111     const QString& description() const          { return m_description; }
00116     const QString& icon() const                 { return m_icon; }
00121     QString toolTip() const;
00126     KIcon::Group iconGroup() const              { return m_group; }
00130     virtual const QPixmap * pixmap() const      { return &m_pixmap; }
00131 
00136     void setApplicationLocal( bool local )      { m_appLocal = local; }
00143     bool applicationLocal() const               { return m_appLocal; }
00144 
00145 
00146 protected:
00147     virtual void paint( QPainter *p );
00148 
00149 private:
00150     int iconSize() const;
00151 
00152     KURL m_url;
00153     QString m_description;
00154     QString m_icon;
00155     QString m_toolTip;
00156     QPixmap m_pixmap;
00157     KIcon::Group m_group;
00158     KURLBar *m_parent;
00159     bool m_appLocal :1;
00160 
00161 protected:
00162     virtual void virtual_hook( int id, void* data );
00163 private:
00164     class KURLBarItemPrivate;
00165     KURLBarItemPrivate *d;
00166 };
00167 
00168 
00171 
00172 
00173 class KURLBarListBox;
00174 
00198 class KURLBar : public QFrame
00199 {
00200     Q_OBJECT
00201 
00202 public:
00207     KURLBar( bool useGlobalItems,
00208              QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
00212     ~KURLBar();
00213 
00224     virtual KURLBarItem * insertItem( const KURL& url,
00225                                       const QString& description,
00226                                       bool applicationLocal = true,
00227                                       const QString& icon = QString::null,
00228                                       KIcon::Group group = KIcon::Panel );
00234     virtual void setOrientation( Qt::Orientation orient );
00239     Orientation orientation() const;
00240 
00247     virtual void setListBox( KURLBarListBox * );
00252     KURLBarListBox *listBox() const { return m_listBox; }
00253 
00259     virtual void setIconSize( int size );
00265     int iconSize() const { return m_iconSize; }
00266 
00270     virtual void clear();
00271 
00276     virtual QSize sizeHint() const;
00280     virtual QSize minimumSizeHint() const;
00281 
00287     virtual void readConfig(  KConfig *config, const QString& itemGroup );
00293     virtual void writeConfig( KConfig *config, const QString& itemGroup );
00294 
00300     virtual void readItem( int i, KConfig *config, bool applicationLocal );
00307     virtual void writeItem( KURLBarItem *item, int i, KConfig *, bool global );
00308 
00314     KURLBarItem * currentItem() const;
00321     KURL currentURL() const;
00322 
00328     bool isModified() const             { return m_isModified; }
00329 
00333     bool isVertical() const { return orientation() == Vertical; }
00334 
00335 public slots:
00342     virtual void setCurrentItem( const KURL& url );
00343 
00344 signals:
00349     void activated( const KURL& url );
00350 
00351 protected:
00357     virtual bool addNewItem();
00365     virtual bool editItem( KURLBarItem *item );
00369     virtual void resizeEvent( QResizeEvent * );
00370 
00374     KURLBarItem * m_activeItem;
00378     bool m_useGlobal  :1;
00379 
00384     bool m_isModified :1;
00385 
00386 protected slots:
00391     virtual void slotContextMenuRequested( QListBoxItem *, const QPoint& pos );
00396     virtual void slotSelected( QListBoxItem * );
00397 
00402     virtual void slotDropped( QDropEvent * );
00403 
00404 private slots:
00405     void slotSelected( int button, QListBoxItem * );
00406 
00407 private:
00408     KURLBarListBox *m_listBox;
00409     int m_iconSize;
00410 
00411 
00412 protected:
00413     virtual void virtual_hook( int id, void* data );
00414 private:
00415     class KURLBarPrivate;
00416     KURLBarPrivate *d;
00417 };
00418 
00419 
00422 
00423 
00424 class QDragObject;
00425 class KURLBarToolTip;
00426 
00435 class KURLBarListBox : public KListBox
00436 {
00437     Q_OBJECT
00438 
00439 public:
00443     KURLBarListBox( QWidget *parent = 0, const char *name = 0 );
00447     ~KURLBarListBox();
00448 
00455     virtual void setOrientation( Qt::Orientation orient );
00460     Qt::Orientation orientation() const { return m_orientation; }
00461 
00462     bool isVertical() const { return m_orientation == Qt::Vertical; }
00463 
00464 signals:
00468     void dropped( QDropEvent *e );
00469 
00470 protected:
00474     virtual QDragObject * dragObject();
00478     virtual void contentsDragEnterEvent( QDragEnterEvent * );
00482     virtual void contentsDropEvent( QDropEvent * );
00483 
00484 private:
00485     Qt::Orientation m_orientation;
00486     KURLBarToolTip *m_toolTip;
00487 
00488 protected:
00489     virtual void virtual_hook( int id, void* data );
00490 private:
00491     class KURLBarListBoxPrivate;
00492     KURLBarListBoxPrivate *d;
00493 };
00494 
00495 
00498 
00499 
00500 class QCheckBox;
00501 class KIconButton;
00502 class KLineEdit;
00503 class KURLRequester;
00504 
00512 class KURLBarItemDialog : public KDialogBase
00513 {
00514     Q_OBJECT
00515 
00516 public:
00524     static bool getInformation( bool allowGlobal, KURL& url,
00525                                 QString& description, QString& icon,
00526                                 bool& appLocal, int iconSize,
00527                                 QWidget *parent = 0 );
00528 
00546     KURLBarItemDialog( bool allowGlobal, const KURL& url,
00547                        const QString& description, QString icon,
00548                        bool appLocal = true,
00549                        int iconSize = KIcon::SizeMedium,
00550                        QWidget *parent = 0, const char *name = 0 );
00554     ~KURLBarItemDialog();
00555 
00559     KURL url() const;
00560 
00564     QString description() const;
00565 
00569     QString icon() const;
00570 
00576     bool applicationLocal() const;
00577 
00578 protected:
00582     KURLRequester * m_urlEdit;
00586     KLineEdit     * m_edit;
00590     KIconButton   * m_iconButton;
00594     QCheckBox     * m_appLocal;
00595 
00596 public slots:
00597     void urlChanged(const QString & );
00598 
00599 private:
00600     class KURLBarItemDialogPrivate;
00601     KURLBarItemDialogPrivate *d;
00602 };
00603 
00604 
00605 #endif // KURLBAR_H
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:21:32 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001