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