diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:41:16 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:41:16 +0000 |
commit | 698569f8428ca088f764d704034a1330517b98c0 (patch) | |
tree | bf45be6946ebbbee9cce5a5bcf838f4c952d87e6 /chalk/ui/squeezedcombobox.h | |
parent | 2785103a6bd4de55bd26d79e34d0fdd4b329a73a (diff) | |
download | koffice-698569f8428ca088f764d704034a1330517b98c0.tar.gz koffice-698569f8428ca088f764d704034a1330517b98c0.zip |
Finish rebranding of Krita as Chalk
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238363 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'chalk/ui/squeezedcombobox.h')
-rw-r--r-- | chalk/ui/squeezedcombobox.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/chalk/ui/squeezedcombobox.h b/chalk/ui/squeezedcombobox.h new file mode 100644 index 00000000..66758335 --- /dev/null +++ b/chalk/ui/squeezedcombobox.h @@ -0,0 +1,137 @@ +/* ============================================================ + * Author: Tom Albers <tomalbers@kde.nl> + * Date : 2005-01-01 + * Description : + * + * Copyright 2005 by Tom Albers + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) + * any later version. + * + * This program 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 General Public License for more details. + * + * ============================================================ */ + +/** @file squeezedcombobox.h */ + +#ifndef STQUEEZEDCOMBOBOX_H +#define STQUEEZEDCOMBOBOX_H + +class TQTimer; + +// TQt includes. + +#include <tqcombobox.h> +#include <tqtooltip.h> + +class SqueezedComboBox; + +/** @class SqueezedComboBoxTip + * This class shows a tooltip for a SqueezedComboBox + * the tooltip will contain the full text and helps + * the user find the correct entry. It is automatically + * activated when starting a SqueezedComboBox. This is + * inherited from TQToolTip + * + * @author Tom Albers + */ +class SqueezedComboBoxTip : public TQToolTip +{ +public: + /** + * Constructor. An example call (as done in + * SqueezedComboBox::SqueezedComboBox): + * @code + * t = new SqueezedComboBoxTip( this->listBox()->viewport(), this ); + * @endcode + * + * @param tqparent tqparent widget (viewport) + * @param name tqparent widget + */ + SqueezedComboBoxTip( TQWidget *tqparent, SqueezedComboBox *name ); + +protected: + /** + * Reimplemented version from TQToolTip which shows the + * tooltip when needed. + * @param pos the point where the mouse currently is + */ + void maybeTip( const TQPoint& pos ); + +private: + SqueezedComboBox* m_originalWidget; +}; + +/** @class SqueezedComboBox + * + * This widget is a TQComboBox, but then a little bit + * different. It only shows the right part of the items + * depending on de size of the widget. When it is not + * possible to show the complete item, it will be shortened + * and "..." will be prepended. + * + * @image html squeezedcombobox.png "This is how it looks" + * @author Tom Albers + */ +class SqueezedComboBox : public TQComboBox +{ + Q_OBJECT + TQ_OBJECT + +public: + /** + * Constructor + * @param tqparent tqparent widget + * @param name name to give to the widget + */ + SqueezedComboBox(TQWidget *tqparent = 0, const char *name = 0 ); + + /** + * destructor + */ + virtual ~SqueezedComboBox(); + + bool tqcontains(const TQString & text) const; + + /** + * This inserts a item to the list. See TQComboBox::insertItem() + * for detaills. Please do not use TQComboBox::insertItem() to this + * widget, as that will fail. + * @param newItem the original (long version) of the item which needs + * to be added to the combobox + * @param index the position in the widget. + */ + void insertSqueezedItem(const TQString& newItem, int index); + + /** + * This method returns the full text (not squeezed) of the currently + * highlighted item. + * @return full text of the highlighted item + */ + TQString itemHighlighted( ); + + /** + * Sets the tqsizeHint() of this widget. + */ + virtual TQSize tqsizeHint() const; + +private slots: + void slotTimeOut(); + void slotUpdateToolTip( int index ); + +private: + void resizeEvent ( TQResizeEvent * ); + TQString squeezeText( const TQString& original); + + TQMap<int,TQString> m_originalItems; + TQTimer* m_timer; + SqueezedComboBoxTip* m_tooltip; +}; + +#endif // STQUEEZEDCOMBOBOX_H |