kurlbar.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
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
This file is part of the documentation for kdelibs Version 3.1.0.