26#include <tqcombobox.h>
29#include <tqvaluelist.h>
31#include <tqapplication.h>
41 m_originalWidget = name;
46 TQListBox* listBox = m_originalWidget->listBox();
50 TQListBoxItem* selectedItem = listBox->itemAt( pos );
53 TQRect positionToolTip = listBox->itemRect( selectedItem );
55 if (!toolTipText.isNull())
56 tip(positionToolTip, toolTipText);
61 : TQComboBox( parent, name )
64 m_timer =
new TQTimer(
this);
67 connect(m_timer, TQ_SIGNAL(timeout()),
68 TQ_SLOT(slotTimeOut()));
69 connect(
this, TQ_SIGNAL(activated(
int )),
70 TQ_SLOT(slotUpdateToolTip(
int )));
79bool SqueezedComboBox::contains(
const TQString& _text )
const
81 if ( _text.isEmpty() )
84 const int itemCount = count();
85 for (
int i = 0; i < itemCount; ++i )
87 if ( text(i) == _text )
96 TQFontMetrics fm = fontMetrics();
98 int maxW = count() ? 18 : 7 * fm.width(TQChar(
'x')) + 18;
99 int maxH = TQMAX( fm.lineSpacing(), 14 ) + 2;
101 return style().sizeFromContents(TQStyle::CT_ComboBox,
this,
103 expandedTo(TQApplication::globalStrut());
108 m_originalItems[index] = newItem;
109 insertItem( squeezeText(newItem), index );
113 slotUpdateToolTip(0);
116void SqueezedComboBox::resizeEvent ( TQResizeEvent * )
118 m_timer->start(200,
true);
121void SqueezedComboBox::slotTimeOut()
123 TQMapIterator<int,TQString> it;
124 for (it = m_originalItems.begin() ; it != m_originalItems.end();
127 changeItem( squeezeText( it.data() ), it.key() );
131TQString SqueezedComboBox::squeezeText(
const TQString& original)
134 int widgetSize = width()-30;
135 TQFontMetrics fm( fontMetrics() );
138 if (fm.width(original) < widgetSize)
142 TQString sqItem = original;
143 widgetSize = widgetSize-fm.width(
"...");
144 for (uint i = 0 ; i != original.length(); ++i)
146 if ( (
int)fm.width(original.right(i)) > widgetSize)
148 sqItem = TQString(
"..." + original.right(--i));
155void SqueezedComboBox::slotUpdateToolTip(
int index )
157 TQToolTip::remove(
this);
158 TQToolTip::add(
this, m_originalItems[index]);
163 int curItem = this->listBox()->currentItem();
164 return m_originalItems[curItem];
167#include "squeezedcombobox.moc"
This class shows a tooltip for a SqueezedComboBox the tooltip will contain the full text and helps th...
SqueezedComboBoxTip(TQWidget *parent, SqueezedComboBox *name)
Constructor.
void maybeTip(const TQPoint &pos)
Reimplemented version from TQToolTip which shows the tooltip when needed.
This widget is a TQComboBox, but then a little bit different.
void insertSqueezedItem(const TQString &newItem, int index)
This inserts a item to the list.
virtual TQSize sizeHint() const
Sets the sizeHint() of this widget.
SqueezedComboBox(TQWidget *parent=0, const char *name=0)
Constructor.
TQString itemHighlighted()
This method returns the full text (not squeezed) of the currently highlighted item.
virtual ~SqueezedComboBox()
destructor