diff options
Diffstat (limited to 'krita/ui/squeezedcombobox.cpp')
-rw-r--r-- | krita/ui/squeezedcombobox.cpp | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/krita/ui/squeezedcombobox.cpp b/krita/ui/squeezedcombobox.cpp deleted file mode 100644 index 81aaa33f..00000000 --- a/krita/ui/squeezedcombobox.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/* ============================================================ - * Author: Tom Albers <[email protected]> - * 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.cpp */ - -// TQt includes. - -#include <tqlistbox.h> -#include <tqcombobox.h> -#include <tqpair.h> -#include <tqtimer.h> -#include <tqvaluelist.h> -#include <tqstyle.h> -#include <tqapplication.h> -#include <tqtooltip.h> - -// Local includes. - -#include "squeezedcombobox.h" - -SqueezedComboBoxTip::SqueezedComboBoxTip( TQWidget * tqparent, SqueezedComboBox* name ) - : TQToolTip( tqparent ) -{ - m_originalWidget = name; -} - -void SqueezedComboBoxTip::maybeTip( const TQPoint &pos ) -{ - TQListBox* listBox = m_originalWidget->listBox(); - if (!listBox) - return; - - TQListBoxItem* selectedItem = listBox->itemAt( pos ); - if (selectedItem) - { - TQRect positionToolTip = listBox->tqitemRect( selectedItem ); - TQString toolTipText = m_originalWidget->itemHighlighted(); - if (!toolTipText.isNull()) - tip(positionToolTip, toolTipText); - } -} - -SqueezedComboBox::SqueezedComboBox( TQWidget *tqparent, const char *name ) - : TQComboBox( tqparent, name ) -{ - setMinimumWidth(100); - m_timer = new TQTimer(this); - m_tooltip = new SqueezedComboBoxTip( listBox()->viewport(), this ); - - connect(m_timer, TQT_SIGNAL(timeout()), - TQT_SLOT(slotTimeOut())); - connect(this, TQT_SIGNAL(activated( int )), - TQT_SLOT(slotUpdateToolTip( int ))); -} - -SqueezedComboBox::~SqueezedComboBox() -{ - delete m_tooltip; - delete m_timer; -} - -bool SqueezedComboBox::tqcontains( const TQString& _text ) const -{ - if ( _text.isEmpty() ) - return false; - - const int itemCount = count(); - for (int i = 0; i < itemCount; ++i ) - { - if ( text(i) == _text ) - return true; - } - return false; -} - -TQSize SqueezedComboBox::tqsizeHint() const -{ - constPolish(); - TQFontMetrics fm = fontMetrics(); - - int maxW = count() ? 18 : 7 * fm.width(TQChar('x')) + 18; - int maxH = TQMAX( fm.lineSpacing(), 14 ) + 2; - - return style().sizeFromContents(TQStyle::CT_ComboBox, this, - TQSize(maxW, maxH)). - expandedTo(TQApplication::globalStrut()); -} - -void SqueezedComboBox::insertSqueezedItem(const TQString& newItem, int index) -{ - m_originalItems[index] = newItem; - insertItem( squeezeText(newItem), index ); - - // if this is the first item, set the tooltip. - if (index == 0) - slotUpdateToolTip(0); -} - -void SqueezedComboBox::resizeEvent ( TQResizeEvent * ) -{ - m_timer->start(200, true); -} - -void SqueezedComboBox::slotTimeOut() -{ - TQMapIterator<int,TQString> it; - for (it = m_originalItems.begin() ; it != m_originalItems.end(); - ++it) - { - changeItem( squeezeText( it.data() ), it.key() ); - } -} - -TQString SqueezedComboBox::squeezeText( const TQString& original) -{ - // not the complete widgetSize is usable. Need to compensate for that. - int widgetSize = width()-30; - TQFontMetrics fm( fontMetrics() ); - - // If we can fit the full text, return that. - if (fm.width(original) < widgetSize) - return(original); - - // We need to squeeze. - TQString sqItem = original; // prevent empty return value; - widgetSize = widgetSize-fm.width("..."); - for (uint i = 0 ; i != original.length(); ++i) - { - if ( (int)fm.width(original.right(i)) > widgetSize) - { - sqItem = TQString("..." + original.right(--i)); - break; - } - } - return sqItem; -} - -void SqueezedComboBox::slotUpdateToolTip( int index ) -{ - TQToolTip::remove(this); - TQToolTip::add(this, m_originalItems[index]); -} - -TQString SqueezedComboBox::itemHighlighted() -{ - int curItem = this->listBox()->currentItem(); - return m_originalItems[curItem]; -} - -#include "squeezedcombobox.moc" |