#include <kdialog.h>
#include <tdelocale.h>

/****************************************************************************
** Form implementation generated from reading ui file 'kcmkttsmgrwidget.ui'
**
** Created by: The TQt user interface compiler (TQt 3.5.0)
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/

#include "kcmkttsmgrwidget.h"

#include <ntqvariant.h>
#include <tdelocale.h>
#include <kdebug.h>
#include <tdecmodule.h>
#include <tdelistview.h>
#include <kpushbutton.h>
#include <klineedit.h>
#include <kurlrequester.h>
#include <knuminput.h>
#include <kcombobox.h>
#include <ntqpushbutton.h>
#include <ntqtabwidget.h>
#include <ntqwidget.h>
#include <ntqcheckbox.h>
#include <ntqgroupbox.h>
#include <ntqlabel.h>
#include <ntqcombobox.h>
#include <ntqlineedit.h>
#include <ntqslider.h>
#include <ntqbuttongroup.h>
#include <ntqradiobutton.h>
#include <ntqlayout.h>
#include <ntqtooltip.h>
#include <ntqwhatsthis.h>
#include "kcmkttsmgrwidget.ui.h"

/*
 *  Constructs a KCMKttsMgrWidget which is a child of 'parent', with the
 *  name 'name'.' 
 */
KCMKttsMgrWidget::KCMKttsMgrWidget( TQWidget* parent,  const char* name )
    : TDECModule( parent, name )
{
    if ( !name )
	setName( "KCMKttsMgrWidget" );
    setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) );
    KCMKttsMgrWidgetLayout = new TQGridLayout( this, 1, 1, 6, 6, "KCMKttsMgrWidgetLayout"); 

    mainTab = new TQTabWidget( this, "mainTab" );
    mainTab->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)7, 0, 0, mainTab->sizePolicy().hasHeightForWidth() ) );

    tab = new TQWidget( mainTab, "tab" );
    tabLayout = new TQGridLayout( tab, 1, 1, 6, 6, "tabLayout"); 

    enableKttsdCheckBox = new TQCheckBox( tab, "enableKttsdCheckBox" );

    tabLayout->addMultiCellWidget( enableKttsdCheckBox, 0, 0, 0, 1 );

    embedInSysTrayCheckBox = new TQCheckBox( tab, "embedInSysTrayCheckBox" );
    embedInSysTrayCheckBox->setChecked( true );

    tabLayout->addMultiCellWidget( embedInSysTrayCheckBox, 2, 2, 0, 1 );
    spacer6 = new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
    tabLayout->addItem( spacer6, 6, 1 );

    layout5 = new TQHBoxLayout( 0, 0, 6, "layout5"); 
    spacer5_2 = new TQSpacerItem( 20, 20, TQSizePolicy::Fixed, TQSizePolicy::Minimum );
    layout5->addItem( spacer5_2 );

    showMainWindowOnStartupCheckBox = new TQCheckBox( tab, "showMainWindowOnStartupCheckBox" );
    showMainWindowOnStartupCheckBox->setChecked( true );
    layout5->addWidget( showMainWindowOnStartupCheckBox );

    tabLayout->addMultiCellLayout( layout5, 3, 3, 0, 1 );

    layout5_2 = new TQHBoxLayout( 0, 0, 6, "layout5_2"); 
    spacer5_2_2 = new TQSpacerItem( 20, 20, TQSizePolicy::Fixed, TQSizePolicy::Minimum );
    layout5_2->addItem( spacer5_2_2 );

    autoexitMgrCheckBox = new TQCheckBox( tab, "autoexitMgrCheckBox" );
    autoexitMgrCheckBox->setChecked( true );
    layout5_2->addWidget( autoexitMgrCheckBox );

    tabLayout->addMultiCellLayout( layout5_2, 5, 5, 0, 1 );

    autostartMgrCheckBox = new TQCheckBox( tab, "autostartMgrCheckBox" );
    autostartMgrCheckBox->setChecked( true );

    tabLayout->addMultiCellWidget( autostartMgrCheckBox, 4, 4, 0, 1 );
    mainTab->insertTab( tab, TQString::fromLatin1("") );

    TabPage = new TQWidget( mainTab, "TabPage" );
    TabPageLayout = new TQGridLayout( TabPage, 1, 1, 6, 6, "TabPageLayout"); 

    talkersList = new TDEListView( TabPage, "talkersList" );
    talkersList->addColumn( tr2i18n( "ID" ) );
    talkersList->addColumn( tr2i18n( "Language" ) );
    talkersList->addColumn( tr2i18n( "Speech Synthesizer" ) );
    talkersList->addColumn( tr2i18n( "Voice" ) );
    talkersList->addColumn( tr2i18n( "Gender" ) );
    talkersList->addColumn( tr2i18n( "Volume" ) );
    talkersList->addColumn( tr2i18n( "Rate" ) );

    TabPageLayout->addWidget( talkersList, 0, 0 );

    layout9 = new TQVBoxLayout( 0, 0, 6, "layout9"); 

    addTalkerButton = new KPushButton( TabPage, "addTalkerButton" );
    addTalkerButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, addTalkerButton->sizePolicy().hasHeightForWidth() ) );
    layout9->addWidget( addTalkerButton );

    higherTalkerPriorityButton = new TQPushButton( TabPage, "higherTalkerPriorityButton" );
    higherTalkerPriorityButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)5, (TQSizePolicy::SizeType)0, 0, 0, higherTalkerPriorityButton->sizePolicy().hasHeightForWidth() ) );
    layout9->addWidget( higherTalkerPriorityButton );

    lowerTalkerPriorityButton = new TQPushButton( TabPage, "lowerTalkerPriorityButton" );
    lowerTalkerPriorityButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)5, (TQSizePolicy::SizeType)0, 0, 0, lowerTalkerPriorityButton->sizePolicy().hasHeightForWidth() ) );
    layout9->addWidget( lowerTalkerPriorityButton );

    configureTalkerButton = new KPushButton( TabPage, "configureTalkerButton" );
    configureTalkerButton->setEnabled( false );
    configureTalkerButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, configureTalkerButton->sizePolicy().hasHeightForWidth() ) );
    configureTalkerButton->setToggleButton( false );
    layout9->addWidget( configureTalkerButton );

    removeTalkerButton = new KPushButton( TabPage, "removeTalkerButton" );
    removeTalkerButton->setEnabled( false );
    removeTalkerButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, removeTalkerButton->sizePolicy().hasHeightForWidth() ) );
    removeTalkerButton->setToggleButton( false );
    layout9->addWidget( removeTalkerButton );
    spacer11 = new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
    layout9->addItem( spacer11 );

    TabPageLayout->addLayout( layout9, 0, 1 );
    mainTab->insertTab( TabPage, TQString::fromLatin1("") );

    TabPage_2 = new TQWidget( mainTab, "TabPage_2" );
    TabPageLayout_2 = new TQGridLayout( TabPage_2, 1, 1, 6, 6, "TabPageLayout_2"); 

    notifyGroup = new TQGroupBox( TabPage_2, "notifyGroup" );
    notifyGroup->setFrameShape( TQGroupBox::NoFrame );
    notifyGroup->setColumnLayout(0, TQt::Vertical );
    notifyGroup->layout()->setSpacing( 6 );
    notifyGroup->layout()->setMargin( 0 );
    notifyGroupLayout = new TQGridLayout( notifyGroup->layout() );
    notifyGroupLayout->setAlignment( TQt::AlignTop );

    notifyListView = new TDEListView( notifyGroup, "notifyListView" );
    notifyListView->addColumn( tr2i18n( "Application/Event" ) );
    notifyListView->addColumn( tr2i18n( "Action" ) );
    notifyListView->addColumn( tr2i18n( "Talker" ) );
    notifyListView->setRootIsDecorated( true );

    notifyGroupLayout->addWidget( notifyListView, 1, 0 );

    layout21 = new TQHBoxLayout( 0, 0, 6, "layout21"); 

    notifyPresentLabel = new TQLabel( notifyGroup, "notifyPresentLabel" );
    notifyPresentLabel->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)5, 0, 0, notifyPresentLabel->sizePolicy().hasHeightForWidth() ) );
    layout21->addWidget( notifyPresentLabel );

    notifyPresentComboBox = new TQComboBox( false, notifyGroup, "notifyPresentComboBox" );
    layout21->addWidget( notifyPresentComboBox );

    notifyGroupLayout->addLayout( layout21, 2, 0 );

    layout28 = new TQHBoxLayout( 0, 0, 6, "layout28"); 

    notifyAddButton = new TQPushButton( notifyGroup, "notifyAddButton" );
    layout28->addWidget( notifyAddButton );

    notifyRemoveButton = new TQPushButton( notifyGroup, "notifyRemoveButton" );
    layout28->addWidget( notifyRemoveButton );
    spacer16 = new TQSpacerItem( 152, 20, TQSizePolicy::Expanding, TQSizePolicy::Minimum );
    layout28->addItem( spacer16 );

    notifyClearButton = new TQPushButton( notifyGroup, "notifyClearButton" );
    layout28->addWidget( notifyClearButton );

    notifyLoadButton = new TQPushButton( notifyGroup, "notifyLoadButton" );
    layout28->addWidget( notifyLoadButton );

    notifySaveButton = new TQPushButton( notifyGroup, "notifySaveButton" );
    layout28->addWidget( notifySaveButton );

    notifyGroupLayout->addLayout( layout28, 0, 0 );

    notifyExceptionActionLayout = new TQGridLayout( 0, 1, 1, 0, 6, "notifyExceptionActionLayout"); 

    notifyTestButton = new TQPushButton( notifyGroup, "notifyTestButton" );

    notifyExceptionActionLayout->addWidget( notifyTestButton, 0, 2 );

    notifyActionLabel = new TQLabel( notifyGroup, "notifyActionLabel" );
    notifyActionLabel->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)5, 0, 0, notifyActionLabel->sizePolicy().hasHeightForWidth() ) );

    notifyExceptionActionLayout->addWidget( notifyActionLabel, 0, 0 );

    notifyMsgLineEdit = new TQLineEdit( notifyGroup, "notifyMsgLineEdit" );

    notifyExceptionActionLayout->addWidget( notifyMsgLineEdit, 0, 3 );

    notifyActionComboBox = new TQComboBox( false, notifyGroup, "notifyActionComboBox" );
    notifyActionComboBox->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)0, 0, 0, notifyActionComboBox->sizePolicy().hasHeightForWidth() ) );

    notifyExceptionActionLayout->addWidget( notifyActionComboBox, 0, 1 );

    notifyGroupLayout->addLayout( notifyExceptionActionLayout, 3, 0 );

    layout19_2 = new TQHBoxLayout( 0, 0, 6, "layout19_2"); 

    notifyTalkerLabel = new TQLabel( notifyGroup, "notifyTalkerLabel" );
    notifyTalkerLabel->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)5, 0, 0, notifyTalkerLabel->sizePolicy().hasHeightForWidth() ) );
    layout19_2->addWidget( notifyTalkerLabel );

    notifyTalkerLineEdit = new KLineEdit( notifyGroup, "notifyTalkerLineEdit" );
    notifyTalkerLineEdit->setEnabled( false );
    notifyTalkerLineEdit->setPaletteForegroundColor( TQColor( 0, 0, 0 ) );
    layout19_2->addWidget( notifyTalkerLineEdit );

    notifyTalkerButton = new KPushButton( notifyGroup, "notifyTalkerButton" );
    layout19_2->addWidget( notifyTalkerButton );

    notifyGroupLayout->addLayout( layout19_2, 4, 0 );

    TabPageLayout_2->addWidget( notifyGroup, 1, 0 );

    layout17 = new TQHBoxLayout( 0, 0, 6, "layout17"); 

    notifyEnableCheckBox = new TQCheckBox( TabPage_2, "notifyEnableCheckBox" );
    layout17->addWidget( notifyEnableCheckBox );
    spacer12 = new TQSpacerItem( 16, 20, TQSizePolicy::Expanding, TQSizePolicy::Minimum );
    layout17->addItem( spacer12 );

    notifyExcludeEventsWithSoundCheckBox = new TQCheckBox( TabPage_2, "notifyExcludeEventsWithSoundCheckBox" );
    notifyExcludeEventsWithSoundCheckBox->setChecked( true );
    layout17->addWidget( notifyExcludeEventsWithSoundCheckBox );

    TabPageLayout_2->addLayout( layout17, 0, 0 );
    mainTab->insertTab( TabPage_2, TQString::fromLatin1("") );

    TabPage_3 = new TQWidget( mainTab, "TabPage_3" );
    TabPageLayout_3 = new TQGridLayout( TabPage_3, 1, 1, 6, 6, "TabPageLayout_3"); 

    layout14 = new TQHBoxLayout( 0, 0, 6, "layout14"); 

    filtersList = new TDEListView( TabPage_3, "filtersList" );
    filtersList->addColumn( tr2i18n( "Filter" ) );
    filtersList->setFullWidth( true );
    layout14->addWidget( filtersList );

    layout9_2 = new TQVBoxLayout( 0, 0, 6, "layout9_2"); 

    addFilterButton = new KPushButton( TabPage_3, "addFilterButton" );
    addFilterButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, addFilterButton->sizePolicy().hasHeightForWidth() ) );
    layout9_2->addWidget( addFilterButton );

    higherFilterPriorityButton = new TQPushButton( TabPage_3, "higherFilterPriorityButton" );
    higherFilterPriorityButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)5, (TQSizePolicy::SizeType)0, 0, 0, higherFilterPriorityButton->sizePolicy().hasHeightForWidth() ) );
    layout9_2->addWidget( higherFilterPriorityButton );

    lowerFilterPriorityButton = new TQPushButton( TabPage_3, "lowerFilterPriorityButton" );
    lowerFilterPriorityButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)5, (TQSizePolicy::SizeType)0, 0, 0, lowerFilterPriorityButton->sizePolicy().hasHeightForWidth() ) );
    layout9_2->addWidget( lowerFilterPriorityButton );

    configureFilterButton = new KPushButton( TabPage_3, "configureFilterButton" );
    configureFilterButton->setEnabled( false );
    configureFilterButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, configureFilterButton->sizePolicy().hasHeightForWidth() ) );
    configureFilterButton->setToggleButton( false );
    layout9_2->addWidget( configureFilterButton );

    removeFilterButton = new KPushButton( TabPage_3, "removeFilterButton" );
    removeFilterButton->setEnabled( false );
    removeFilterButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, removeFilterButton->sizePolicy().hasHeightForWidth() ) );
    removeFilterButton->setToggleButton( false );
    layout9_2->addWidget( removeFilterButton );
    spacer11_2 = new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
    layout9_2->addItem( spacer11_2 );
    layout14->addLayout( layout9_2 );

    TabPageLayout_3->addLayout( layout14, 0, 0 );

    layout18 = new TQHBoxLayout( 0, 0, 6, "layout18"); 

    sbdsList = new TDEListView( TabPage_3, "sbdsList" );
    sbdsList->addColumn( tr2i18n( "Sentence Boundary Detector" ) );
    sbdsList->setFullWidth( true );
    layout18->addWidget( sbdsList );

    layout16 = new TQVBoxLayout( 0, 0, 6, "layout16"); 

    sbdButton = new TQPushButton( TabPage_3, "sbdButton" );
    sbdButton->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)5, (TQSizePolicy::SizeType)0, 0, 0, sbdButton->sizePolicy().hasHeightForWidth() ) );
    layout16->addWidget( sbdButton );
    spacer11_2_2 = new TQSpacerItem( 20, 11, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
    layout16->addItem( spacer11_2_2 );
    layout18->addLayout( layout16 );

    TabPageLayout_3->addLayout( layout18, 1, 0 );
    mainTab->insertTab( TabPage_3, TQString::fromLatin1("") );

    TabPage_4 = new TQWidget( mainTab, "TabPage_4" );
    TabPageLayout_4 = new TQGridLayout( TabPage_4, 1, 1, 6, 6, "TabPageLayout_4"); 

    layout15 = new TQGridLayout( 0, 1, 1, 0, 6, "layout15"); 

    textPreSnd = new KURLRequester( TabPage_4, "textPreSnd" );
    textPreSnd->setEnabled( true );
    textPreSnd->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)5, 0, 0, textPreSnd->sizePolicy().hasHeightForWidth() ) );

    layout15->addWidget( textPreSnd, 1, 1 );

    textPostMsg = new KLineEdit( TabPage_4, "textPostMsg" );

    layout15->addWidget( textPostMsg, 2, 1 );

    textPostMsgCheck = new TQCheckBox( TabPage_4, "textPostMsgCheck" );
    textPostMsgCheck->setChecked( false );

    layout15->addWidget( textPostMsgCheck, 2, 0 );

    textPreSndCheck = new TQCheckBox( TabPage_4, "textPreSndCheck" );
    textPreSndCheck->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)0, 0, 0, textPreSndCheck->sizePolicy().hasHeightForWidth() ) );
    textPreSndCheck->setChecked( false );

    layout15->addWidget( textPreSndCheck, 1, 0 );

    textPreMsgCheck = new TQCheckBox( TabPage_4, "textPreMsgCheck" );
    textPreMsgCheck->setChecked( false );
    textPreMsgCheck->setTristate( false );

    layout15->addWidget( textPreMsgCheck, 0, 0 );

    textPostSnd = new KURLRequester( TabPage_4, "textPostSnd" );
    textPostSnd->setEnabled( true );
    textPostSnd->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)5, 0, 0, textPostSnd->sizePolicy().hasHeightForWidth() ) );

    layout15->addWidget( textPostSnd, 3, 1 );

    textPostSndCheck = new TQCheckBox( TabPage_4, "textPostSndCheck" );
    textPostSndCheck->setChecked( false );

    layout15->addWidget( textPostSndCheck, 3, 0 );

    textPreMsg = new KLineEdit( TabPage_4, "textPreMsg" );
    textPreMsg->setEnabled( true );

    layout15->addWidget( textPreMsg, 0, 1 );

    TabPageLayout_4->addLayout( layout15, 0, 0 );
    spacer4 = new TQSpacerItem( 21, 180, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
    TabPageLayout_4->addItem( spacer4, 1, 0 );
    mainTab->insertTab( TabPage_4, TQString::fromLatin1("") );

    TabPage_5 = new TQWidget( mainTab, "TabPage_5" );
    TabPageLayout_5 = new TQGridLayout( TabPage_5, 1, 1, 6, 6, "TabPageLayout_5"); 

    layout12 = new TQHBoxLayout( 0, 0, 6, "layout12"); 

    keepAudioCheckBox = new TQCheckBox( TabPage_5, "keepAudioCheckBox" );
    layout12->addWidget( keepAudioCheckBox );

    keepAudioPath = new KURLRequester( TabPage_5, "keepAudioPath" );
    keepAudioPath->setEnabled( true );
    keepAudioPath->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)5, 0, 0, keepAudioPath->sizePolicy().hasHeightForWidth() ) );
    layout12->addWidget( keepAudioPath );

    TabPageLayout_5->addMultiCellLayout( layout12, 2, 2, 0, 1 );

    layout13 = new TQHBoxLayout( 0, 0, 6, "layout13"); 

    timeLabel = new TQLabel( TabPage_5, "timeLabel" );
    timeLabel->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)5, 0, 0, timeLabel->sizePolicy().hasHeightForWidth() ) );
    layout13->addWidget( timeLabel );

    timeBox = new KIntSpinBox( TabPage_5, "timeBox" );
    timeBox->setEnabled( true );
    timeBox->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)0, 0, 0, timeBox->sizePolicy().hasHeightForWidth() ) );
    timeBox->setMaxValue( 200 );
    timeBox->setMinValue( 50 );
    timeBox->setValue( 100 );
    layout13->addWidget( timeBox );

    timeSlider = new TQSlider( TabPage_5, "timeSlider" );
    timeSlider->setEnabled( true );
    timeSlider->setFocusPolicy( TQSlider::NoFocus );
    timeSlider->setMaxValue( 1000 );
    timeSlider->setLineStep( 10 );
    timeSlider->setPageStep( 100 );
    timeSlider->setValue( 500 );
    timeSlider->setOrientation( TQSlider::Horizontal );
    layout13->addWidget( timeSlider );

    TabPageLayout_5->addMultiCellLayout( layout13, 1, 1, 0, 1 );
    spacer8 = new TQSpacerItem( 20, 40, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
    TabPageLayout_5->addItem( spacer8, 3, 0 );
    spacer9 = new TQSpacerItem( 90, 20, TQSizePolicy::Expanding, TQSizePolicy::Minimum );
    TabPageLayout_5->addItem( spacer9, 0, 1 );

    audioButtonGroup = new TQButtonGroup( TabPage_5, "audioButtonGroup" );
    audioButtonGroup->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)3, (TQSizePolicy::SizeType)5, 0, 0, audioButtonGroup->sizePolicy().hasHeightForWidth() ) );
    audioButtonGroup->setColumnLayout(0, TQt::Vertical );
    audioButtonGroup->layout()->setSpacing( 6 );
    audioButtonGroup->layout()->setMargin( 6 );
    audioButtonGroupLayout = new TQGridLayout( audioButtonGroup->layout() );
    audioButtonGroupLayout->setAlignment( TQt::AlignTop );

    layout8 = new TQHBoxLayout( 0, 0, 6, "layout8"); 

    sinkLabel = new TQLabel( audioButtonGroup, "sinkLabel" );
    sinkLabel->setEnabled( false );
    layout8->addWidget( sinkLabel );

    sinkComboBox = new KComboBox( false, audioButtonGroup, "sinkComboBox" );
    sinkComboBox->setEnabled( false );
    sinkComboBox->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)0, 0, 0, sinkComboBox->sizePolicy().hasHeightForWidth() ) );
    layout8->addWidget( sinkComboBox );

    audioButtonGroupLayout->addLayout( layout8, 1, 1 );

    layout8_2_2 = new TQHBoxLayout( 0, 0, 6, "layout8_2_2"); 

    akodeSinkLabel = new TQLabel( audioButtonGroup, "akodeSinkLabel" );
    akodeSinkLabel->setEnabled( false );
    layout8_2_2->addWidget( akodeSinkLabel );

    akodeComboBox = new KComboBox( false, audioButtonGroup, "akodeComboBox" );
    akodeComboBox->setEnabled( false );
    akodeComboBox->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)0, 0, 0, akodeComboBox->sizePolicy().hasHeightForWidth() ) );
    layout8_2_2->addWidget( akodeComboBox );

    audioButtonGroupLayout->addLayout( layout8_2_2, 3, 1 );

    gstreamerRadioButton = new TQRadioButton( audioButtonGroup, "gstreamerRadioButton" );
    gstreamerRadioButton->setEnabled( false );
    audioButtonGroup->insert( gstreamerRadioButton, 0 );

    audioButtonGroupLayout->addWidget( gstreamerRadioButton, 1, 0 );

    artsRadioButton = new TQRadioButton( audioButtonGroup, "artsRadioButton" );
    artsRadioButton->setChecked( true );
    audioButtonGroup->insert( artsRadioButton, 0 );

    audioButtonGroupLayout->addWidget( artsRadioButton, 0, 0 );

    akodeRadioButton = new TQRadioButton( audioButtonGroup, "akodeRadioButton" );
    akodeRadioButton->setEnabled( false );
    akodeRadioButton->setChecked( false );
    audioButtonGroup->insert( akodeRadioButton, 0 );

    audioButtonGroupLayout->addWidget( akodeRadioButton, 3, 0 );

    layout21_2 = new TQHBoxLayout( 0, 0, 6, "layout21_2"); 

    alsaRadioButton = new TQRadioButton( audioButtonGroup, "alsaRadioButton" );
    alsaRadioButton->setEnabled( false );
    alsaRadioButton->setChecked( false );
    audioButtonGroup->insert( alsaRadioButton, -1 );
    layout21_2->addWidget( alsaRadioButton );

    layout8_2 = new TQHBoxLayout( 0, 0, 6, "layout8_2"); 

    pcmLabel = new TQLabel( audioButtonGroup, "pcmLabel" );
    pcmLabel->setEnabled( false );
    layout8_2->addWidget( pcmLabel );

    pcmComboBox = new KComboBox( false, audioButtonGroup, "pcmComboBox" );
    pcmComboBox->setEnabled( false );
    pcmComboBox->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)7, (TQSizePolicy::SizeType)0, 0, 0, pcmComboBox->sizePolicy().hasHeightForWidth() ) );
    layout8_2->addWidget( pcmComboBox );
    layout21_2->addLayout( layout8_2 );

    pcmCustom = new TQLineEdit( audioButtonGroup, "pcmCustom" );
    layout21_2->addWidget( pcmCustom );

    audioButtonGroupLayout->addMultiCellLayout( layout21_2, 2, 2, 0, 1 );

    TabPageLayout_5->addWidget( audioButtonGroup, 0, 0 );
    mainTab->insertTab( TabPage_5, TQString::fromLatin1("") );

    KCMKttsMgrWidgetLayout->addWidget( mainTab, 0, 0 );
    languageChange();
    resize( TQSize(638, 382).expandedTo(minimumSizeHint()) );
    clearWState( WState_Polished );

    // signals and slots connections
    connect( enableKttsdCheckBox, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( embedInSysTrayCheckBox, TQ_SIGNAL( toggled(bool) ), showMainWindowOnStartupCheckBox, TQ_SLOT( setEnabled(bool) ) );
    connect( embedInSysTrayCheckBox, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( showMainWindowOnStartupCheckBox, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( artsRadioButton, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( gstreamerRadioButton, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( sinkComboBox, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( autostartMgrCheckBox, TQ_SIGNAL( toggled(bool) ), autoexitMgrCheckBox, TQ_SLOT( setEnabled(bool) ) );
    connect( autostartMgrCheckBox, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( autoexitMgrCheckBox, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( pcmComboBox, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( alsaRadioButton, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( akodeRadioButton, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( akodeComboBox, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPreMsg, TQ_SIGNAL( textChanged(const TQString&) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPreMsgCheck, TQ_SIGNAL( toggled(bool) ), textPreMsg, TQ_SLOT( setEnabled(bool) ) );
    connect( textPreMsgCheck, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPreSndCheck, TQ_SIGNAL( toggled(bool) ), textPreSnd, TQ_SLOT( setEnabled(bool) ) );
    connect( textPreSndCheck, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPreSnd, TQ_SIGNAL( textChanged(const TQString&) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPostMsgCheck, TQ_SIGNAL( toggled(bool) ), textPostMsg, TQ_SLOT( setEnabled(bool) ) );
    connect( textPostMsgCheck, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPostMsg, TQ_SIGNAL( textChanged(const TQString&) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPostSndCheck, TQ_SIGNAL( toggled(bool) ), textPostSnd, TQ_SLOT( setEnabled(bool) ) );
    connect( textPostSndCheck, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( textPostSnd, TQ_SIGNAL( textChanged(const TQString&) ), this, TQ_SLOT( slotConfigChanged() ) );
    connect( pcmCustom, TQ_SIGNAL( textChanged(const TQString&) ), this, TQ_SLOT( slotConfigChanged() ) );

    // tab order
    setTabOrder( mainTab, enableKttsdCheckBox );
    setTabOrder( enableKttsdCheckBox, embedInSysTrayCheckBox );
    setTabOrder( embedInSysTrayCheckBox, showMainWindowOnStartupCheckBox );
    setTabOrder( showMainWindowOnStartupCheckBox, autostartMgrCheckBox );
    setTabOrder( autostartMgrCheckBox, autoexitMgrCheckBox );
    setTabOrder( autoexitMgrCheckBox, talkersList );
    setTabOrder( talkersList, addTalkerButton );
    setTabOrder( addTalkerButton, higherTalkerPriorityButton );
    setTabOrder( higherTalkerPriorityButton, lowerTalkerPriorityButton );
    setTabOrder( lowerTalkerPriorityButton, configureTalkerButton );
    setTabOrder( configureTalkerButton, removeTalkerButton );
    setTabOrder( removeTalkerButton, notifyEnableCheckBox );
    setTabOrder( notifyEnableCheckBox, notifyExcludeEventsWithSoundCheckBox );
    setTabOrder( notifyExcludeEventsWithSoundCheckBox, notifyAddButton );
    setTabOrder( notifyAddButton, notifyRemoveButton );
    setTabOrder( notifyRemoveButton, notifyClearButton );
    setTabOrder( notifyClearButton, notifyLoadButton );
    setTabOrder( notifyLoadButton, notifySaveButton );
    setTabOrder( notifySaveButton, notifyListView );
    setTabOrder( notifyListView, notifyPresentComboBox );
    setTabOrder( notifyPresentComboBox, notifyActionComboBox );
    setTabOrder( notifyActionComboBox, notifyTestButton );
    setTabOrder( notifyTestButton, notifyMsgLineEdit );
    setTabOrder( notifyMsgLineEdit, notifyTalkerLineEdit );
    setTabOrder( notifyTalkerLineEdit, notifyTalkerButton );
    setTabOrder( notifyTalkerButton, filtersList );
    setTabOrder( filtersList, addFilterButton );
    setTabOrder( addFilterButton, higherFilterPriorityButton );
    setTabOrder( higherFilterPriorityButton, lowerFilterPriorityButton );
    setTabOrder( lowerFilterPriorityButton, configureFilterButton );
    setTabOrder( configureFilterButton, removeFilterButton );
    setTabOrder( removeFilterButton, sbdsList );
    setTabOrder( sbdsList, sbdButton );
    setTabOrder( sbdButton, textPreMsgCheck );
    setTabOrder( textPreMsgCheck, textPreMsg );
    setTabOrder( textPreMsg, textPreSndCheck );
    setTabOrder( textPreSndCheck, textPreSnd );
    setTabOrder( textPreSnd, textPostMsgCheck );
    setTabOrder( textPostMsgCheck, textPostMsg );
    setTabOrder( textPostMsg, textPostSndCheck );
    setTabOrder( textPostSndCheck, textPostSnd );
    setTabOrder( textPostSnd, artsRadioButton );
    setTabOrder( artsRadioButton, sinkComboBox );
    setTabOrder( sinkComboBox, pcmComboBox );
    setTabOrder( pcmComboBox, akodeComboBox );
    setTabOrder( akodeComboBox, timeBox );
    setTabOrder( timeBox, keepAudioCheckBox );
    setTabOrder( keepAudioCheckBox, keepAudioPath );

    // buddies
    notifyActionLabel->setBuddy( notifyActionComboBox );
    notifyTalkerLabel->setBuddy( notifyTalkerLineEdit );
    timeLabel->setBuddy( timeBox );
}

/*
 *  Destroys the object and frees any allocated resources
 */
KCMKttsMgrWidget::~KCMKttsMgrWidget()
{
    // no need to delete child widgets, TQt does it all for us
}

/*
 *  Sets the strings of the subwidgets using the current
 *  language.
 */
void KCMKttsMgrWidget::languageChange()
{
    enableKttsdCheckBox->setText( tr2i18n( "&Enable Text-to-Speech System (KTTSD)" ) );
    TQWhatsThis::add( enableKttsdCheckBox, tr2i18n( "Check to start the KTTS Deamon and enable Text-to-Speech." ) );
    embedInSysTrayCheckBox->setText( tr2i18n( "Always em&bed Text-to-Speech Manager in system tray" ) );
    TQWhatsThis::add( embedInSysTrayCheckBox, tr2i18n( "When checked, KTTSMgr displays an icon in the system tray, and clicking OK or Cancel buttons does not stop KTTSMgr.  Use system tray context menu to quit KTTSMgr.  This setting takes effect when KTTSMgr is next started.  This setting has no effect when running in the Trinity Control Center." ) );
    showMainWindowOnStartupCheckBox->setText( tr2i18n( "Show &main window on startup" ) );
    TQWhatsThis::add( showMainWindowOnStartupCheckBox, tr2i18n( "When checked, the KTTSMgr window is displayed when KTTSMgr starts.  When unchecked, click on the icon in the system tray to display the KTTSMgr window." ) );
    autoexitMgrCheckBox->setText( tr2i18n( "E&xit when speaking is finished" ) );
    TQWhatsThis::add( autoexitMgrCheckBox, tr2i18n( "When checked, and KTTSMgr was automatically started when speech began, automatically exits when speech has finished.  Does not automatically exit if KTTSMgr was started manually or started from the Control Center." ) );
    autostartMgrCheckBox->setText( tr2i18n( "Sta&rt minimized in system tray when speaking" ) );
    TQWhatsThis::add( autostartMgrCheckBox, tr2i18n( "When checked, if KTTSMgr is not already running and speech begins, starts KTTSMgr and displays an icon in the system tray.  <em>Note<em>: KTTSMgr only automatically starts for text jobs having 5 sentences or more." ) );
    mainTab->changeTab( tab, tr2i18n( "&General" ) );
    talkersList->header()->setLabel( 0, tr2i18n( "ID" ) );
    talkersList->header()->setLabel( 1, tr2i18n( "Language" ) );
    talkersList->header()->setLabel( 2, tr2i18n( "Speech Synthesizer" ) );
    talkersList->header()->setLabel( 3, tr2i18n( "Voice" ) );
    talkersList->header()->setLabel( 4, tr2i18n( "Gender" ) );
    talkersList->header()->setLabel( 5, tr2i18n( "Volume" ) );
    talkersList->header()->setLabel( 6, tr2i18n( "Rate" ) );
    TQWhatsThis::add( talkersList, tr2i18n( "This is a list of all the configured Talkers.  A Talker is a speech synthesizer that has been configured with a language, voice, gender, speaking rate, and volume.  Talkers higher in the list have higher priority.  The topmost Talker will be used when no talker attributes have been specified by an application." ) );
    addTalkerButton->setText( tr2i18n( "Add..." ) );
    TQWhatsThis::add( addTalkerButton, tr2i18n( "Click to add and configure a new Talker (speech synthesizer).", "What's this text" ) );
    higherTalkerPriorityButton->setText( tr2i18n( "U&p" ) );
    lowerTalkerPriorityButton->setText( tr2i18n( "Do&wn" ) );
    configureTalkerButton->setText( tr2i18n( "&Edit..." ) );
    TQWhatsThis::add( configureTalkerButton, tr2i18n( "Click to configure options for the highlighted Talker." ) );
    removeTalkerButton->setText( tr2i18n( "&Remove" ) );
    TQWhatsThis::add( removeTalkerButton, tr2i18n( "Click to remove the highlighted Talker." ) );
    mainTab->changeTab( TabPage, tr2i18n( "&Talkers" ) );
    notifyGroup->setTitle( TQString::null );
    notifyListView->header()->setLabel( 0, tr2i18n( "Application/Event" ) );
    notifyListView->header()->setLabel( 1, tr2i18n( "Action" ) );
    notifyListView->header()->setLabel( 2, tr2i18n( "Talker" ) );
    TQToolTip::add( notifyListView, TQString::null );
    TQWhatsThis::add( notifyListView, tr2i18n( "This is a list of configured application events and actions to be taken when received.  The \"default\" event governs all events not specifically configured." ) );
    notifyPresentLabel->setText( tr2i18n( "Notifications to speak:" ) );
    TQWhatsThis::add( notifyPresentLabel, tr2i18n( "Applies only to the default event.  Does not affect application-specific events.  Only events that display in the manner which you select will be spoken." ) );
    TQWhatsThis::add( notifyPresentComboBox, tr2i18n( "Applies only to the default event.  Does not affect application-specific events.  Only events that display in the manner which you select will be spoken." ) );
    notifyAddButton->setText( tr2i18n( "Add..." ) );
    TQWhatsThis::add( notifyAddButton, tr2i18n( "Click to configure notification for a specific application event." ) );
    notifyRemoveButton->setText( tr2i18n( "Re&move" ) );
    TQWhatsThis::add( notifyRemoveButton, tr2i18n( "Click to remove a specific notification event from the list.  You cannot remove the default event." ) );
    notifyClearButton->setText( tr2i18n( "Cl&ear" ) );
    TQWhatsThis::add( notifyClearButton, tr2i18n( "Removes all the application specific events.  The default event remains." ) );
    notifyLoadButton->setText( tr2i18n( "&Load..." ) );
    TQWhatsThis::add( notifyLoadButton, tr2i18n( "Click to read configured notification events from a file." ) );
    notifySaveButton->setText( tr2i18n( "&Save..." ) );
    TQWhatsThis::add( notifySaveButton, tr2i18n( "Click to write all the configured application events to a file." ) );
    notifyTestButton->setText( TQString::null );
    TQToolTip::add( notifyTestButton, tr2i18n( "Click to test notification" ) );
    TQWhatsThis::add( notifyTestButton, tr2i18n( "Click this button to test the notification.  A sample message will be spoken.  Note: The Text-to-Speech system must be enabled." ) );
    notifyActionLabel->setText( tr2i18n( "Ac&tion:" ) );
    TQWhatsThis::add( notifyActionLabel, tr2i18n( "<qt>Specifies how KTTS should speak the event when received.  If you select \"Speak custom text\", enter the text in the box.  You may use the following substitution strings in the text:<dl><dt>%e</dt><dd>Name of the event</dd><dt>%a</dt><dd>Application that sent the event</dd><dt>%m</dt><dd>The message sent by the application</dd></dl></qt>" ) );
    TQWhatsThis::add( notifyMsgLineEdit, tr2i18n( "<qt>Specifies how KTTS should speak the event when received.  If you select \"Speak custom text\", enter the text in the box.  You may use the following substitution strings in the text:<dl><dt>%e</dt><dd>Name of the event</dd><dt>%a</dt><dd>Application that sent the event</dd><dt>%m</dt><dd>The message sent by the application</dd></dl></qt>" ) );
    TQWhatsThis::add( notifyActionComboBox, tr2i18n( "<qt>Specifies how KTTS should speak the event when received.  If you select \"Speak custom text\", enter the text in the box.  You may use the following substitution strings in the text:<dl><dt>%e</dt><dd>Name of the event</dd><dt>%a</dt><dd>Application that sent the event</dd><dt>%m</dt><dd>The message sent by the application</dd></dl></qt>" ) );
    notifyTalkerLabel->setText( tr2i18n( "Talke&r:" ) );
    TQWhatsThis::add( notifyTalkerLabel, tr2i18n( "The Talker that will speak the notification.  The \"default\" Talker is the topmost talker listed on the Talkers tab." ) );
    TQWhatsThis::add( notifyTalkerLineEdit, tr2i18n( "The Talker that will speak the notification.  The \"default\" Talker is the topmost talker listed on the Talkers tab." ) );
    notifyTalkerButton->setText( tr2i18n( "..." ) );
    TQWhatsThis::add( notifyTalkerButton, tr2i18n( "Click to select the Talker to speak the notification." ) );
    notifyEnableCheckBox->setText( tr2i18n( "Speak notifications (&KNotify)" ) );
    TQWhatsThis::add( notifyEnableCheckBox, tr2i18n( "When checked and KTTS is enabled, notification events from applications sent via KNotify will be spoken according to the options you set on this tab." ) );
    notifyExcludeEventsWithSoundCheckBox->setText( tr2i18n( "E&xclude notifications with a sound" ) );
    TQWhatsThis::add( notifyExcludeEventsWithSoundCheckBox, tr2i18n( "When checked, notification events that have a sound will not be spoken." ) );
    mainTab->changeTab( TabPage_2, tr2i18n( "&Notifications" ) );
    filtersList->header()->setLabel( 0, tr2i18n( "Filter" ) );
    TQWhatsThis::add( filtersList, tr2i18n( "This is a list of all the configured Filters.  Filters higher in the list are applied first.  Filters modify text before it is spoken.  They can be used to substitute for mispronounced words, transform XML from one form to another, or change the default Talker to be used for speech output." ) );
    addFilterButton->setText( tr2i18n( "Add..." ) );
    TQWhatsThis::add( addFilterButton, tr2i18n( "Click to add and configure a new Filter.", "What's this text" ) );
    higherFilterPriorityButton->setText( tr2i18n( "U&p" ) );
    TQWhatsThis::add( higherFilterPriorityButton, tr2i18n( "Click to move selected filter up in the list.  Filters higher in the list are applied first." ) );
    lowerFilterPriorityButton->setText( tr2i18n( "Do&wn" ) );
    TQWhatsThis::add( lowerFilterPriorityButton, tr2i18n( "Click to move a filter down in the list.  Filters lower in the list are applied last." ) );
    configureFilterButton->setText( tr2i18n( "&Edit..." ) );
    TQWhatsThis::add( configureFilterButton, tr2i18n( "Click to configure options for the highlighted Filter." ) );
    removeFilterButton->setText( tr2i18n( "&Remove" ) );
    TQWhatsThis::add( removeFilterButton, tr2i18n( "Click to remove the highlighted Filter." ) );
    sbdsList->header()->setLabel( 0, tr2i18n( "Sentence Boundary Detector" ) );
    TQWhatsThis::add( sbdsList, tr2i18n( "This is a list of all the configured Sentence Boundary Detector (SBD) Filters.  SBDs break long text jobs up into sentences, which reduces the time before a job begins speaking, and permits you to advance or rewind through a job.  SBDs are applied in the order listed (top to bottom) after all the normal filters at the top of this screen have been applied.  Filtering stops when the first SBD modifies the text." ) );
    sbdButton->setText( tr2i18n( "Co&nfigure" ) );
    TQWhatsThis::add( sbdButton, tr2i18n( "Click this button to edit the Sentence Boundary Detector (SBD) configuration or add additional SBD filters." ) );
    mainTab->changeTab( TabPage_3, tr2i18n( "&Filters" ) );
    TQWhatsThis::add( textPreSnd, tr2i18n( "Check the Pre-sound box and choose a Pre-sound audio file, which will sound when a text job is interrupted by another message." ) );
    textPostMsg->setText( TQString::null );
    TQWhatsThis::add( textPostMsg, tr2i18n( "Check the Post-message box and enter a Post-message, which will be spoken when a text job resumes after being interrupted by another message.", "What's this text" ) );
    textPostMsgCheck->setText( tr2i18n( "Post-&message:" ) );
    TQWhatsThis::add( textPostMsgCheck, tr2i18n( "Check the Post-message box and enter a Post-message, which will be spoken when a text job resumes after being interrupted by another message." ) );
    textPreSndCheck->setText( tr2i18n( "Pre-sou&nd:" ) );
    TQWhatsThis::add( textPreSndCheck, tr2i18n( "Check the Pre-sound box and choose a Pre-sound audio file, which will sound when a text job is interrupted by another message." ) );
    textPreMsgCheck->setText( tr2i18n( "&Pre-message:" ) );
    TQWhatsThis::add( textPreMsgCheck, tr2i18n( "Check the Pre-message box and enter a Pre-message, which will be spoken whenever a text job is interrupted by another message." ) );
    TQWhatsThis::add( textPostSnd, tr2i18n( "Check the Post-sound and choose a Post-sound audio file, which will sound before a text job resumes after being interrupted by another message." ) );
    textPostSndCheck->setText( tr2i18n( "Post-s&ound:" ) );
    TQWhatsThis::add( textPostSndCheck, tr2i18n( "Check the Post-sound and choose a Post-sound audio file, which will sound before a text job resumes after being interrupted by another message." ) );
    textPreMsg->setText( TQString::null );
    TQWhatsThis::add( textPreMsg, tr2i18n( "Check the Pre-message box and enter a Pre-message, which will be spoken whenever a text job is interrupted by another message.", "What's this text" ) );
    mainTab->changeTab( TabPage_4, tr2i18n( "&Interruption" ) );
    keepAudioCheckBox->setText( tr2i18n( "&Keep audio files:" ) );
    TQWhatsThis::add( keepAudioCheckBox, tr2i18n( "Check this if you want to keep the generated audio (wav) files.  You will find them in the indicated directory." ) );
    TQWhatsThis::add( keepAudioPath, tr2i18n( "Specify the directory in which the audio files will be copied." ) );
    timeLabel->setText( tr2i18n( "&Speed:" ) );
    TQWhatsThis::add( timeLabel, tr2i18n( "Sets the speed of speech.  Slide the slider to the left to slow speech down; to the right to increase talking speed.  Anything less than 75 percent is considered \"slow\", and anything greater than 125 percent is considered \"fast\".  You cannot change the speed of MultiSyn voices." ) );
    timeBox->setSuffix( tr2i18n( " %" ) );
    TQWhatsThis::add( timeBox, tr2i18n( "Sets the speed of speech.  Slide the slider to the left to slow speech down; to the right to increase talking speed.  Anything less than 75 percent is considered \"slow\", and anything greater than 125 percent is considered \"fast\".  You cannot change the speed of MultiSyn voices." ) );
    TQWhatsThis::add( timeSlider, tr2i18n( "Sets the speed of speech.  Slide the slider to the left to slow speech down; to the right to increase talking speed.  Anything less than 75 percent is considered \"slow\", and anything greater than 125 percent is considered \"fast\".  You cannot change the speed of MultiSyn voices." ) );
    audioButtonGroup->setTitle( tr2i18n( "Out&put Using" ) );
    TQWhatsThis::add( audioButtonGroup, tr2i18n( "<p>Select the audio output method desired.  If you select <b>GStreamer</b>, you must also select a <b>Sink</b>.</p><p><em>Note</em>:  You must have GStreamer >= 0.87 to use GStreamer.</p>" ) );
    sinkLabel->setText( tr2i18n( "Sink:" ) );
    TQWhatsThis::add( sinkLabel, tr2i18n( "Select the sound sink to be used for GStreamer output." ) );
    TQWhatsThis::add( sinkComboBox, tr2i18n( "Select the sound sink to be used for GStreamer output." ) );
    akodeSinkLabel->setText( tr2i18n( "Sink:" ) );
    TQWhatsThis::add( akodeSinkLabel, tr2i18n( "Select the sound sink to be used for aKode output." ) );
    TQWhatsThis::add( akodeComboBox, tr2i18n( "Select the sink to be used for aKode output.  Select \"auto\" to let aKode pick the best output method." ) );
    gstreamerRadioButton->setText( tr2i18n( "GStrea&mer" ) );
    TQWhatsThis::add( gstreamerRadioButton, tr2i18n( "<p>Check to use the GStreamer audio output system.  You must also select a <b>Sink</b> plugin.</p>" ) );
    artsRadioButton->setText( tr2i18n( "a&Rts" ) );
    TQWhatsThis::add( artsRadioButton, tr2i18n( "Check to use the TDE aRts system for audio output." ) );
    akodeRadioButton->setText( tr2i18n( "aKode" ) );
    TQWhatsThis::add( akodeRadioButton, tr2i18n( "<p>Check to use aKode for audio output.  You must also select a <b>Sink</b>.</p>" ) );
    alsaRadioButton->setText( tr2i18n( "ALSA" ) );
    TQWhatsThis::add( alsaRadioButton, tr2i18n( "Check to use Advanced Linux Sound Architecture (ALSA) for audio output." ) );
    pcmLabel->setText( tr2i18n( "Device:" ) );
    TQWhatsThis::add( pcmLabel, tr2i18n( "Select the sound sink to be used for GStreamer output." ) );
    TQWhatsThis::add( pcmComboBox, tr2i18n( "Select the PCM device to be used for ALSA output.  Select \"default\" to use the default ALSA device." ) );
    mainTab->changeTab( TabPage_5, tr2i18n( "A&udio" ) );
}

/****************************************************************************
** KCMKttsMgrWidget meta object code from reading C++ file 'kcmkttsmgrwidget.h'
**
** Created by: The TQt Meta Object Compiler version 26 (TQt 3.5.0)
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

#undef TQT_NO_COMPAT
#include "kcmkttsmgrwidget.h"
#include <ntqmetaobject.h>
#include <ntqapplication.h>

#include <private/qucomextra_p.h>
#if !defined(Q_MOC_OUTPUT_REVISION) || (Q_MOC_OUTPUT_REVISION != 26)
#error "This file was generated using the moc from 3.5.0. It"
#error "cannot be used with the include files from this version of TQt."
#error "(The moc has changed too much.)"
#endif

const char *KCMKttsMgrWidget::className() const
{
    return "KCMKttsMgrWidget";
}

TQMetaObject *KCMKttsMgrWidget::metaObj = 0;
static TQMetaObjectCleanUp cleanUp_KCMKttsMgrWidget( "KCMKttsMgrWidget", &KCMKttsMgrWidget::staticMetaObject );

#ifndef TQT_NO_TRANSLATION
TQString KCMKttsMgrWidget::tr( const char *s, const char *c )
{
    if ( tqApp )
	return tqApp->translate( "KCMKttsMgrWidget", s, c, TQApplication::DefaultCodec );
    else
	return TQString::fromLatin1( s );
}
#ifndef TQT_NO_TRANSLATION_UTF8
TQString KCMKttsMgrWidget::trUtf8( const char *s, const char *c )
{
    if ( tqApp )
	return tqApp->translate( "KCMKttsMgrWidget", s, c, TQApplication::UnicodeUTF8 );
    else
	return TQString::fromUtf8( s );
}
#endif // TQT_NO_TRANSLATION_UTF8

#endif // TQT_NO_TRANSLATION

TQMetaObject* KCMKttsMgrWidget::staticMetaObject()
{
    if ( metaObj ) {
	return metaObj;
}
#ifdef TQT_THREAD_SUPPORT
    if (tqt_sharedMetaObjectMutex) tqt_sharedMetaObjectMutex->lock();
    if ( metaObj ) {
	if (tqt_sharedMetaObjectMutex) tqt_sharedMetaObjectMutex->unlock();
	return metaObj;
    }
#endif // TQT_THREAD_SUPPORT
    TQMetaObject* parentObject = TDECModule::staticMetaObject();
    static const TQUMethod slot_0 = {"languageChange", 0, 0 };
    static const TQUMethod slot_1 = {"slotConfigChanged", 0, 0 };
    static const TQMetaData slot_tbl[] = {
	{ "languageChange()", &slot_0, TQMetaData::Protected },
	{ "slotConfigChanged()", &slot_1, TQMetaData::Private }
    };
    static const TQUMethod signal_0 = {"configChanged", 0, 0 };
    static const TQMetaData signal_tbl[] = {
	{ "configChanged()", &signal_0, TQMetaData::Public }
    };
    metaObj = TQMetaObject::new_metaobject(
	"KCMKttsMgrWidget", parentObject,
	slot_tbl, 2,
	signal_tbl, 1,
#ifndef TQT_NO_PROPERTIES
	0, 0,
	0, 0,
#endif // TQT_NO_PROPERTIES
	0, 0 );
    cleanUp_KCMKttsMgrWidget.setMetaObject( metaObj );
#ifdef TQT_THREAD_SUPPORT
    if (tqt_sharedMetaObjectMutex) tqt_sharedMetaObjectMutex->unlock();
#endif // TQT_THREAD_SUPPORT
    return metaObj;
}

void* KCMKttsMgrWidget::tqt_cast( const char* clname )
{
    if ( !qstrcmp( clname, "KCMKttsMgrWidget" ) )
	return this;
    return TDECModule::tqt_cast( clname );
}

// TQ_SIGNAL configChanged
void KCMKttsMgrWidget::configChanged()
{
    activate_signal( staticMetaObject()->signalOffset() + 0 );
}

bool KCMKttsMgrWidget::tqt_invoke( int _id, TQUObject* _o )
{
    switch ( _id - staticMetaObject()->slotOffset() ) {
    case 0: languageChange(); break;
    case 1: slotConfigChanged(); break;
    default:
	return TDECModule::tqt_invoke( _id, _o );
    }
    return true;
}

bool KCMKttsMgrWidget::tqt_emit( int _id, TQUObject* _o )
{
    switch ( _id - staticMetaObject()->signalOffset() ) {
    case 0: configChanged(); break;
    default:
	return TDECModule::tqt_emit(_id,_o);
    }
    return true;
}
#ifndef TQT_NO_PROPERTIES

bool KCMKttsMgrWidget::tqt_property( int id, int f, TQVariant* v)
{
    return TDECModule::tqt_property( id, f, v);
}

bool KCMKttsMgrWidget::tqt_static_property( TQObject* , int , int , TQVariant* ){ return false; }
#endif // TQT_NO_PROPERTIES
