kio Library API Documentation

kurlbar.h

00001 /* This file is part of the KDE libraries
00002     Copyright (C) 2001,2002,2003 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 KIO_EXPORT KURLBarItem : public QListBoxPixmap
00043 {
00044 public:
00058     KURLBarItem( KURLBar *parent, const KURL& url, bool persistent,
00059                  const QString& description = QString::null,
00060                  const QString& icon = QString::null,
00061                  KIcon::Group group = KIcon::Panel );
00062 
00075     KURLBarItem( KURLBar *parent, const KURL& url,
00076                  const QString& description = QString::null,
00077                  const QString& icon = QString::null,
00078                  KIcon::Group group = KIcon::Panel );
00079 
00083     ~KURLBarItem();
00084 
00090     void setURL( const KURL& url );
00096     void setIcon( const QString& icon, KIcon::Group group = KIcon::Panel );
00101     void setDescription( const QString& desc );
00106     void setToolTip( const QString& tip );
00107 
00112     QSize sizeHint() const;
00113 
00117     virtual int width( const QListBox * ) const;
00121     virtual int height( const QListBox * ) const;
00122 
00127     const KURL& url() const                     { return m_url; }
00132     const QString& description() const          { return m_description; }
00137     const QString& icon() const                 { return m_icon; }
00142     QString toolTip() const;
00147     KIcon::Group iconGroup() const              { return m_group; }
00151     virtual const QPixmap * pixmap() const      { return &m_pixmap; }
00152 
00159     void setApplicationLocal( bool local );
00160 
00167     bool applicationLocal() const               { return m_appLocal; }
00168 
00174     bool isPersistent() const;
00175 
00176 protected:
00177     virtual void paint( QPainter *p );
00178 
00179 private:
00180     int iconSize() const;
00181     void init( const QString& icon, KIcon::Group group,
00182                const QString& description, bool persistent );
00183 
00184     KURL m_url;
00185     QString m_description;
00186     QString m_icon;
00187     QString m_toolTip;
00188     QPixmap m_pixmap;
00189     KIcon::Group m_group;
00190     KURLBar *m_parent;
00191     bool m_appLocal :1;
00192 
00193 protected:
00194     virtual void virtual_hook( int id, void* data );
00195 private:
00196     class KURLBarItemPrivate;
00197     KURLBarItemPrivate *d;
00198 };
00199 
00200 
00203 
00204 
00205 class KURLBarListBox;
00206 
00230 class KIO_EXPORT KURLBar : public QFrame
00231 {
00232     Q_OBJECT
00233 
00234 public:
00239     KURLBar( bool useGlobalItems,
00240              QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
00244     ~KURLBar();
00245 
00256     virtual KURLBarItem * insertItem( const KURL& url,
00257                                       const QString& description,
00258                                       bool applicationLocal = true,
00259                                       const QString& icon = QString::null,
00260                                       KIcon::Group group = KIcon::Panel );
00271     virtual KURLBarItem * insertDynamicItem( const KURL& url,
00272                                              const QString& description,
00273                                              const QString& icon = QString::null,
00274                                              KIcon::Group group = KIcon::Panel );
00280     virtual void setOrientation( Qt::Orientation orient );
00285     Orientation orientation() const;
00286 
00293     virtual void setListBox( KURLBarListBox * );
00298     KURLBarListBox *listBox() const { return m_listBox; }
00299 
00305     virtual void setIconSize( int size );
00311     int iconSize() const { return m_iconSize; }
00312 
00316     virtual void clear();
00317 
00322     virtual QSize sizeHint() const;
00323 
00327     virtual QSize minimumSizeHint() const;
00328 
00334     virtual void readConfig(  KConfig *config, const QString& itemGroup );
00340     virtual void writeConfig( KConfig *config, const QString& itemGroup );
00341 
00347     virtual void readItem( int i, KConfig *config, bool applicationLocal );
00354     virtual void writeItem( KURLBarItem *item, int i, KConfig *, bool global );
00355 
00361     KURLBarItem * currentItem() const;
00368     KURL currentURL() const;
00369 
00375     bool isModified() const             { return m_isModified; }
00376 
00380     bool isImmutable() const             { return m_isImmutable; }
00381 
00385     bool isVertical() const { return orientation() == Vertical; }
00386 
00387     void  createItemOnMDKMerge( const KURL &url, const QString & description, const QString &icon );
00388 
00389 public slots:
00396     virtual void setCurrentItem( const KURL& url );
00397 
00398 signals:
00403     void activated( const KURL& url );
00404 
00405 protected:
00411     virtual bool addNewItem();
00419     virtual bool editItem( KURLBarItem *item );
00420 
00421     virtual void resizeEvent( QResizeEvent * );
00422 
00423     virtual void paletteChange( const QPalette & );
00424 
00428     KURLBarItem * m_activeItem;
00432     bool m_useGlobal  :1;
00433 
00438     bool m_isModified :1;
00439 
00444     bool m_isImmutable :1;
00445 
00446 protected slots:
00451     virtual void slotContextMenuRequested( QListBoxItem *, const QPoint& pos );
00456     virtual void slotSelected( QListBoxItem * );
00457 
00462     virtual void slotDropped( QDropEvent * );
00463 
00464 private slots:
00465     void slotSelected( int button, QListBoxItem * );
00466 
00467 private:
00468     KURLBarListBox *m_listBox;
00469     int m_iconSize;
00470 
00471 
00472 protected:
00473     virtual void virtual_hook( int id, void* data );
00474 private:
00475     class KURLBarPrivate;
00476     KURLBarPrivate *d;
00477 };
00478 
00479 
00482 
00483 
00484 class QDragObject;
00485 class KURLBarToolTip;
00486 
00495 class KIO_EXPORT KURLBarListBox : public KListBox
00496 {
00497     Q_OBJECT
00498 
00499 public:
00503     KURLBarListBox( QWidget *parent = 0, const char *name = 0 );
00507     ~KURLBarListBox();
00508 
00515     virtual void setOrientation( Qt::Orientation orient );
00520     Qt::Orientation orientation() const { return m_orientation; }
00521 
00522     bool isVertical() const { return m_orientation == Qt::Vertical; }
00523 
00524 signals:
00528     void dropped( QDropEvent *e );
00529 
00530 protected:
00534     virtual QDragObject * dragObject();
00535 
00536     virtual void contentsDragEnterEvent( QDragEnterEvent * );
00537     virtual void contentsDropEvent( QDropEvent * );
00538     virtual void contextMenuEvent( QContextMenuEvent * );
00539     virtual void paintEvent( QPaintEvent* );
00540 
00541 private:
00542     Qt::Orientation m_orientation;
00543     KURLBarToolTip *m_toolTip;
00544 
00545 protected:
00546     virtual void virtual_hook( int id, void* data );
00547 private:
00548     class KURLBarListBoxPrivate;
00549     KURLBarListBoxPrivate *d;
00550 };
00551 
00552 
00555 
00556 
00557 class QCheckBox;
00558 class KIconButton;
00559 class KLineEdit;
00560 class KURLRequester;
00561 
00569 class KIO_EXPORT KURLBarItemDialog : public KDialogBase
00570 {
00571     Q_OBJECT
00572 
00573 public:
00581     static bool getInformation( bool allowGlobal, KURL& url,
00582                                 QString& description, QString& icon,
00583                                 bool& appLocal, int iconSize,
00584                                 QWidget *parent = 0 );
00585 
00603     KURLBarItemDialog( bool allowGlobal, const KURL& url,
00604                        const QString& description, QString icon,
00605                        bool appLocal = true,
00606                        int iconSize = KIcon::SizeMedium,
00607                        QWidget *parent = 0, const char *name = 0 );
00611     ~KURLBarItemDialog();
00612 
00616     KURL url() const;
00617 
00621     QString description() const;
00622 
00626     QString icon() const;
00627 
00633     bool applicationLocal() const;
00634 
00635 protected:
00639     KURLRequester * m_urlEdit;
00643     KLineEdit     * m_edit;
00647     KIconButton   * m_iconButton;
00651     QCheckBox     * m_appLocal;
00652 
00653 public slots:
00654     void urlChanged(const QString & );
00655 
00656 private:
00657     class KURLBarItemDialogPrivate;
00658     KURLBarItemDialogPrivate *d;
00659 };
00660 
00661 
00662 #endif // KURLBAR_H
KDE Logo
This file is part of the documentation for kio Library Version 3.4.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Jul 20 13:55:16 2006 by doxygen 1.4.4 written by Dimitri van Heesch, © 1997-2003