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:
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 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 public slots:
00394 virtual void setCurrentItem( const KURL& url );
00395
00396 signals:
00401 void activated( const KURL& url );
00402
00403 protected:
00409 virtual bool addNewItem();
00417 virtual bool editItem( KURLBarItem *item );
00418
00419 virtual void resizeEvent( QResizeEvent * );
00420
00424 KURLBarItem * m_activeItem;
00428 bool m_useGlobal :1;
00429
00434 bool m_isModified :1;
00435
00440 bool m_isImmutable :1;
00441
00442 protected slots:
00447 virtual void slotContextMenuRequested( QListBoxItem *, const QPoint& pos );
00452 virtual void slotSelected( QListBoxItem * );
00453
00458 virtual void slotDropped( QDropEvent * );
00459
00460 private slots:
00461 void slotSelected( int button, QListBoxItem * );
00462
00463 private:
00464 KURLBarListBox *m_listBox;
00465 int m_iconSize;
00466
00467
00468 protected:
00469 virtual void virtual_hook( int id, void* data );
00470 private:
00471 class KURLBarPrivate;
00472 KURLBarPrivate *d;
00473 };
00474
00475
00478
00479
00480 class QDragObject;
00481 class KURLBarToolTip;
00482
00491 class KURLBarListBox : public KListBox
00492 {
00493 Q_OBJECT
00494
00495 public:
00499 KURLBarListBox( QWidget *parent = 0, const char *name = 0 );
00503 ~KURLBarListBox();
00504
00511 virtual void setOrientation( Qt::Orientation orient );
00516 Qt::Orientation orientation() const { return m_orientation; }
00517
00518 bool isVertical() const { return m_orientation == Qt::Vertical; }
00519
00520 signals:
00524 void dropped( QDropEvent *e );
00525
00526 protected:
00530 virtual QDragObject * dragObject();
00531
00532 virtual void contentsDragEnterEvent( QDragEnterEvent * );
00533 virtual void contentsDropEvent( QDropEvent * );
00534 virtual void contextMenuEvent( QContextMenuEvent * );
00535
00536 private:
00537 Qt::Orientation m_orientation;
00538 KURLBarToolTip *m_toolTip;
00539
00540 protected:
00541 virtual void virtual_hook( int id, void* data );
00542 private:
00543 class KURLBarListBoxPrivate;
00544 KURLBarListBoxPrivate *d;
00545 };
00546
00547
00550
00551
00552 class QCheckBox;
00553 class KIconButton;
00554 class KLineEdit;
00555 class KURLRequester;
00556
00564 class KURLBarItemDialog : public KDialogBase
00565 {
00566 Q_OBJECT
00567
00568 public:
00576 static bool getInformation( bool allowGlobal, KURL& url,
00577 QString& description, QString& icon,
00578 bool& appLocal, int iconSize,
00579 QWidget *parent = 0 );
00580
00598 KURLBarItemDialog( bool allowGlobal, const KURL& url,
00599 const QString& description, QString icon,
00600 bool appLocal = true,
00601 int iconSize = KIcon::SizeMedium,
00602 QWidget *parent = 0, const char *name = 0 );
00606 ~KURLBarItemDialog();
00607
00611 KURL url() const;
00612
00616 QString description() const;
00617
00621 QString icon() const;
00622
00628 bool applicationLocal() const;
00629
00630 protected:
00634 KURLRequester * m_urlEdit;
00638 KLineEdit * m_edit;
00642 KIconButton * m_iconButton;
00646 QCheckBox * m_appLocal;
00647
00648 public slots:
00649 void urlChanged(const QString & );
00650
00651 private:
00652 class KURLBarItemDialogPrivate;
00653 KURLBarItemDialogPrivate *d;
00654 };
00655
00656
00657 #endif // KURLBAR_H