/* Copyright (C) 1998 Stefan Westerfeld stefan@space.twc.de 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. */ #include "choosebusdlg.h" #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; static void min_size(TQWidget *w) { w->setMinimumSize(w->sizeHint()); } ChooseBusDlg::ChooseBusDlg(TQWidget *parent) : KDialog(parent,"X", TRUE) , _newbusitemindex( -1 ) { setCaption(i18n("Choose Bus")); TQVBoxLayout *mainlayout = new TQVBoxLayout(this); // caption label: "Synthesis running..." mainlayout->addSpacing(5); TQLabel *captionlabel = new TQLabel(this); TQFont labelfont(captionlabel->font()); labelfont.setPointSize(labelfont.pointSize()*3/2); captionlabel->setFont(labelfont); captionlabel->setText(TQString(" ")+i18n("Available busses:")+TQString(" ")); captionlabel->setAlignment(AlignCenter); min_size(captionlabel); mainlayout->addWidget(captionlabel); // hruler mainlayout->addSpacing(5); KSeparator *ruler2 = new KSeparator( KSeparator::HLine, this); mainlayout->addWidget(ruler2); mainlayout->addSpacing(5); // listwidget listbox = new TQListBox(this); listbox->setMinimumSize(300,200); Arts::AudioManager aman = Arts::Reference("global:Arts_AudioManager"); if(!aman.isNull()) { vector *destinations = aman.destinations(); unsigned long i; for(i=0;isize();i++) listbox->insertItem((*destinations)[i].c_str()); delete destinations; } if( listbox->count() > 0 ) listbox->setCurrentItem( 0 ); mainlayout->addWidget(listbox); // hruler mainlayout->addSpacing(5); KSeparator *ruler = new KSeparator( KSeparator::HLine, this); mainlayout->addWidget(ruler); mainlayout->addSpacing(5); // new bus lineedit TQBoxLayout * layout2 = new TQHBoxLayout( mainlayout ); //mainlayout->addLayout( layout2 ); TQLabel * newbuslabel = new TQLabel( i18n( "New bus:" ), this ); layout2->addWidget( newbuslabel ); lineedit = new KLineEdit( this ); connect( lineedit, TQT_SIGNAL( textChanged( const TQString & ) ), TQT_SLOT( textChanged( const TQString & ) ) ); layout2->addWidget( lineedit ); // hruler mainlayout->addSpacing(5); KSeparator *ruler3 = new KSeparator( KSeparator::HLine, this); mainlayout->addWidget(ruler3); mainlayout->addSpacing(5); // buttons mainlayout->addSpacing(5); TQHBoxLayout *buttonlayout = new TQHBoxLayout( mainlayout ); //mainlayout->addLayout(buttonlayout); mainlayout->addSpacing(5); buttonlayout->addSpacing(5); KButtonBox *bbox = new KButtonBox(this); bbox->addButton(KStdGuiItem::help(), TQT_TQOBJECT(this), TQT_SLOT( help() )); bbox->addStretch(1); TQPushButton * okbutton = bbox->addButton(KStdGuiItem::ok()); okbutton->setDefault( true ); connect( okbutton, TQT_SIGNAL( clicked() ), TQT_SLOT(accept() ) ); TQButton *cancelbutton = bbox->addButton(KStdGuiItem::cancel()); connect( cancelbutton, TQT_SIGNAL( clicked() ), TQT_SLOT(reject() ) ); bbox->layout(); buttonlayout->addWidget(bbox); buttonlayout->addSpacing(5); mainlayout->freeze(); } TQString ChooseBusDlg::result() { if(listbox->currentItem() != -1) { return(listbox->text(listbox->currentItem())); } return(0); } void ChooseBusDlg::help() { KApplication::kApplication()->invokeHelp("", "artsbuilder"); } void ChooseBusDlg::textChanged( const TQString & busname ) { if( ! busname.isEmpty() ) { if( _newbusitemindex > -1 ) listbox->changeItem( busname, _newbusitemindex ); else { _newbusitemindex = listbox->count(); listbox->insertItem( busname, _newbusitemindex ); listbox->setCurrentItem( _newbusitemindex ); } } else { listbox->removeItem( _newbusitemindex ); listbox->setCurrentItem( _newbusitemindex - 1 ); _newbusitemindex = -1; } } #include "choosebusdlg.moc" // vim: sw=4 ts=4