summaryrefslogtreecommitdiffstats
path: root/kdeui/klanguagebutton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/klanguagebutton.cpp')
-rw-r--r--kdeui/klanguagebutton.cpp284
1 files changed, 0 insertions, 284 deletions
diff --git a/kdeui/klanguagebutton.cpp b/kdeui/klanguagebutton.cpp
deleted file mode 100644
index bfc160c8e..000000000
--- a/kdeui/klanguagebutton.cpp
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * klanguagebutton.cpp - Adds some methods for inserting languages.
- *
- * Copyright (c) 1999-2003 Hans Petter Bieker <bieker@kde.org>
- *
- * Requires the Qt widget libraries, available at no cost at
- * http://www.trolltech.com/
- *
- * 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 of the License, 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#define INCLUDE_MENUITEM_DEF
-#include <tqpopupmenu.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-
-#include "klanguagebutton.h"
-#include "klanguagebutton.moc"
-
-#include <kdebug.h>
-
-static void checkInsertPos( TQPopupMenu *popup, const TQString & str,
- int &index )
-{
- if ( index == -1 )
- return;
-
- int a = 0;
- int b = popup->count();
- while ( a < b )
- {
- int w = ( a + b ) / 2;
-
- int id = popup->idAt( w );
- int j = str.localeAwareCompare( popup->text( id ) );
-
- if ( j > 0 )
- a = w + 1;
- else
- b = w;
- }
-
- index = a; // it doesn't really matter ... a == b here.
-
- Q_ASSERT( a == b );
-}
-
-static TQPopupMenu * checkInsertIndex( TQPopupMenu *popup,
- const TQStringList *tags, const TQString &submenu )
-{
- int pos = tags->findIndex( submenu );
-
- TQPopupMenu *pi = 0;
- if ( pos != -1 )
- {
- TQMenuItem *p = popup->findItem( pos );
- pi = p ? p->popup() : 0;
- }
- if ( !pi )
- pi = popup;
-
- return pi;
-}
-
-class KLanguageButtonPrivate
-{
-public:
- TQPushButton * button;
- bool staticText;
-};
-
-KLanguageButton::KLanguageButton( TQWidget * parent, const char *name )
- : TQWidget( parent, name )
-{
- init(name);
-}
-
-KLanguageButton::KLanguageButton( const TQString & text, TQWidget * parent, const char *name )
- : TQWidget( parent, name )
-{
- init(name);
-
- setText(text);
-}
-
-void KLanguageButton::setText(const TQString & text)
-{
- d->staticText = true;
- d->button->setText(text);
- d->button->setIconSet(TQIconSet()); // remove the icon
-}
-
-void KLanguageButton::init(const char * name)
-{
- m_current = 0;
- m_ids = new TQStringList;
- m_popup = 0;
- m_oldPopup = 0;
- d = new KLanguageButtonPrivate;
-
- d->staticText = false;
-
- TQHBoxLayout *layout = new TQHBoxLayout(this, 0, 0);
- layout->setAutoAdd(true);
- d->button = new TQPushButton( this, name ); // HPB don't touch this!!
-
- clear();
-}
-
-KLanguageButton::~KLanguageButton()
-{
- delete m_ids;
-
- delete d->button;
- delete d;
-}
-
-
-void KLanguageButton::insertLanguage( const TQString& path, const TQString& name,
- const TQString&, const TQString &submenu, int index )
-{
- TQString output = name + TQString::tqfromLatin1( " (" ) + path +
- TQString::tqfromLatin1( ")" );
-#if 0
- // Nooooo ! Country != language
- TQPixmap flag( locate( "locale", sub + path +
- TQString::tqfromLatin1( "/flag.png" ) ) );
-#endif
- insertItem( output, path, submenu, index );
-}
-
-void KLanguageButton::insertItem( const TQIconSet& icon, const TQString &text,
- const TQString & id, const TQString &submenu, int index )
-{
- TQPopupMenu *pi = checkInsertIndex( m_popup, m_ids, submenu );
- checkInsertPos( pi, text, index );
- pi->insertItem( icon, text, count(), index );
- m_ids->append( id );
-}
-
-void KLanguageButton::insertItem( const TQString &text, const TQString & id,
- const TQString &submenu, int index )
-{
- insertItem( TQIconSet(), text, id, submenu, index );
-}
-
-void KLanguageButton::insertSeparator( const TQString &submenu, int index )
-{
- TQPopupMenu *pi = checkInsertIndex( m_popup, m_ids, submenu );
- pi->insertSeparator( index );
- m_ids->append( TQString::null );
-}
-
-void KLanguageButton::insertSubmenu( const TQIconSet & icon,
- const TQString &text, const TQString &id,
- const TQString &submenu, int index )
-{
- TQPopupMenu *pi = checkInsertIndex( m_popup, m_ids, submenu );
- TQPopupMenu *p = new TQPopupMenu( pi );
- checkInsertPos( pi, text, index );
- pi->insertItem( icon, text, p, count(), index );
- m_ids->append( id );
- connect( p, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( slotActivated( int ) ) );
- connect( p, TQT_SIGNAL( highlighted( int ) ), this,
- TQT_SLOT( slotHighlighted( int ) ) );
-}
-
-void KLanguageButton::insertSubmenu( const TQString &text, const TQString &id,
- const TQString &submenu, int index )
-{
- insertSubmenu(TQIconSet(), text, id, submenu, index);
-}
-
-void KLanguageButton::slotActivated( int index )
-{
- //kdDebug() << "slotActivated" << index << endl;
-
- setCurrentItem( index );
-
- // Forward event from popup menu as if it was emitted from this widget:
- TQString id = *m_ids->tqat( index );
- emit activated( id );
-}
-
-void KLanguageButton::slotHighlighted( int index )
-{
- //kdDebug() << "slotHighlighted" << index << endl;
-
- TQString id = *m_ids->tqat( index );
- emit ( highlighted(id) );
-}
-
-int KLanguageButton::count() const
-{
- return m_ids->count();
-}
-
-void KLanguageButton::clear()
-{
- m_ids->clear();
-
- delete m_oldPopup;
- m_oldPopup = m_popup;
- m_popup = new TQPopupMenu( this );
-
- d->button->setPopup( m_popup );
-
- connect( m_popup, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( slotActivated( int ) ) );
- connect( m_popup, TQT_SIGNAL( highlighted( int ) ),
- TQT_SLOT( slotHighlighted( int ) ) );
-
- if ( !d->staticText )
- {
- d->button->setText( TQString::null );
- d->button->setIconSet( TQIconSet() );
- }
-}
-
-bool KLanguageButton::contains( const TQString & id ) const
-{
- return m_ids->contains( id ) > 0;
-}
-
-TQString KLanguageButton::current() const
-{
- return *m_ids->tqat( currentItem() );
-}
-
-
-TQString KLanguageButton::id( int i ) const
-{
- if ( i < 0 || i >= count() )
- {
- kdDebug() << "KLanguageButton::tag(), unknown tag " << i << endl;
- return TQString::null;
- }
- return *m_ids->tqat( i );
-}
-
-
-int KLanguageButton::currentItem() const
-{
- return m_current;
-}
-
-void KLanguageButton::setCurrentItem( int i )
-{
- if ( i < 0 || i >= count() )
- return;
- m_current = i;
-
- if ( !d->staticText )
- {
- d->button->setText( m_popup->text( m_current ) );
- TQIconSet *icon = m_popup->iconSet( m_current );
- if ( icon )
- d->button->setIconSet( *icon );
- else
- d->button->setIconSet( TQIconSet() );
- }
-}
-
-void KLanguageButton::setCurrentItem( const TQString & id )
-{
- int i = m_ids->findIndex( id );
- if ( id.isNull() )
- i = 0;
- if ( i != -1 )
- setCurrentItem( i );
-}