|
|
|
/* This file is part of the KDE libraries
|
|
|
|
Copyright (C) 1997 Mark Donohoe (donohoe@kde.org)
|
|
|
|
Copyright (C) 1997, 1998 1998 Sven Radej (sven@lisa.exp.univie.ac.at)
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __KSTATUSBAR_H__
|
|
|
|
#define __KSTATUSBAR_H__
|
|
|
|
|
|
|
|
#include <tqstatusbar.h>
|
|
|
|
#include <tqintdict.h>
|
|
|
|
#include <tqlabel.h>
|
|
|
|
#include <kdelibs_export.h>
|
|
|
|
|
|
|
|
class KStatusBar;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Internal label class for use in KStatusBar
|
|
|
|
* @internal
|
|
|
|
*/
|
|
|
|
class KDEUI_EXPORT KStatusBarLabel : public TQLabel
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
KStatusBarLabel( const TQString& text, int _id, KStatusBar* parent = 0L, const char *name=0L );
|
|
|
|
~KStatusBarLabel () {}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
void mousePressEvent (TQMouseEvent* _event);
|
|
|
|
void mouseReleaseEvent (TQMouseEvent* _event);
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
int id;
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
void itemPressed (int id);
|
|
|
|
void itemReleased (int id);
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @short %KDE statusbar widget
|
|
|
|
*
|
|
|
|
* Display status messages.
|
|
|
|
*
|
|
|
|
* You can insert text labels or custom widgets. Their geometry is managed
|
|
|
|
* internally. KStatusBar resizes itself, but positioning is left to
|
|
|
|
* KMainWindow (or to you, if you don't use KMainWindow ).
|
|
|
|
*
|
|
|
|
* A special type of item is a message which is a temporary text-message
|
|
|
|
* displayed on top of other items in full-width. Messages are visible for
|
|
|
|
* specified time, or until you call the slot TQStatusBar::clear(). See
|
|
|
|
* TQStatusBar::message for details.
|
|
|
|
*
|
|
|
|
* It is useful to connect the KActionCollection signals to the
|
|
|
|
* TQStatusBar::message slots.
|
|
|
|
*
|
|
|
|
* KStatusBar inherits TQStatusBar, you can freely use all QStatusBar
|
|
|
|
* methods.
|
|
|
|
*
|
|
|
|
* Empty text items are not visible. They will become visible when you change
|
|
|
|
* (add) text.
|
|
|
|
*
|
|
|
|
* @author Mark Donohoe (donohoe@kde.org) Maintained by Sven Radej <radej@kde.org>
|
|
|
|
|
|
|
|
* @see KActionCollection
|
|
|
|
*/
|
|
|
|
class KDEUI_EXPORT KStatusBar : public TQStatusBar
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* @deprecated
|
|
|
|
* WARNING: This enum is only for backward compatibility and it may be removed.
|
|
|
|
* No method here uses it.
|
|
|
|
*/
|
|
|
|
enum BarStatus{ Toggle, Show, Hide };
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructs a status bar. @p parent is usually KMainWindow.
|
|
|
|
*/
|
|
|
|
KStatusBar( TQWidget* parent = 0L, const char* name = 0L );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Destructor.
|
|
|
|
*
|
|
|
|
* Deletes all internal objects.
|
|
|
|
*/
|
|
|
|
~KStatusBar();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Inserts a text label into the status bar.
|
|
|
|
* Parameters @p stretch and @p permanent are passed to
|
|
|
|
* TQStatusBar::addWidget .
|
|
|
|
*
|
|
|
|
* If @p permanent is true, then item will be placed on the far right of
|
|
|
|
* the statusbar and will never be hidden by TQStatusBar::message.
|
|
|
|
*
|
|
|
|
* @param text The label's text string.
|
|
|
|
* @param id id of item
|
|
|
|
* @param stretch stretch passed to TQStatusBar::addWidget
|
|
|
|
* @param permanent is item permanent or not (passed to TQStatusBar::addWidget )
|
|
|
|
*
|
|
|
|
* @see QStatusbar::addWidget
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void insertItem(const TQString& text, int id, int stretch=0, bool permanent=false );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Inserts a fixed width text label into status bar. The width will be set
|
|
|
|
* according to @p text, but will remain fixed even if you change text.
|
|
|
|
* You can change fixed width by calling setItemFixed.
|
|
|
|
*
|
|
|
|
* @param text The label's text string
|
|
|
|
* @param id id of item
|
|
|
|
* @param permanent permanent flag passed to TQStatusBar::addWidget
|
|
|
|
*/
|
|
|
|
inline void insertFixedItem(const TQString& text, int id, bool permanent=false)
|
|
|
|
{ insertItem(text, id, 0, permanent); setItemFixed(id); }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Removes an item.
|
|
|
|
*
|
|
|
|
* @param id The item to remove.
|
|
|
|
*/
|
|
|
|
void removeItem( int id );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 3.2
|
|
|
|
*
|
|
|
|
* Returns true if an item with @p id exists already in KStatusBar,
|
|
|
|
* otherwise returns false.
|
|
|
|
*
|
|
|
|
* @param id id of the item
|
|
|
|
*/
|
|
|
|
bool hasItem( int id ) const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Changes the text in a status bar field.
|
|
|
|
*
|
|
|
|
* The item will be resized to fit the text. If you change text to be empty,
|
|
|
|
* item will not be visible (untill you add some text).
|
|
|
|
*
|
|
|
|
* @param text The label's text string
|
|
|
|
* @param id The id of item.
|
|
|
|
*/
|
|
|
|
void changeItem( const TQString& text, int id );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the tqalignment of item @p id. By default all fields are aligned
|
|
|
|
* @p AlignHCenter | @p AlignVCenter. See TQLabel::setAlignment for details.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void setItemAlignment(int id, int align);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets item @p id to have fixed width. This cannot be undone, but you can
|
|
|
|
* always set new fixed width.
|
|
|
|
*
|
|
|
|
* @param id id of item
|
|
|
|
* @param width fixed width in pixels. Default -1 is to adapt to text width.
|
|
|
|
*/
|
|
|
|
void setItemFixed(int id, int width=-1);
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Emitted when mouse is pressed over item @p id.
|
|
|
|
*
|
|
|
|
* Connect to this signal if you want to respond to mouse press events.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void pressed( int );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Emitted when mouse is released over item @p id.
|
|
|
|
*
|
|
|
|
* Connect to this signal if you want to respond to mouse release events (clicks).
|
|
|
|
*/
|
|
|
|
void released( int );
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQIntDict<KStatusBarLabel> items;
|
|
|
|
class KStatusBarPrivate* d;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // __KSTATUSBAR_H__
|
|
|
|
|