void key_press(unsigned char key, int x, int y) { switch(key) { case 's': case 'S': shot = capturePoints(); if(gameState != STATE_CALIBRATE) calculateCoor(); shot[0] = 0; shot[1] = 0; isShotFired = true; if(gameState == STATE_PLAY) checkAllHits(); else if(gameState == STATE_HIGHSCORES) checkKeyboardTargets(); break; case 'r': case 'R': playSound1(); gameState = STATE_START; break; case 'q': case 'Q': stopCamera(); releaseSounds(); exit(0); } }
KPrEffectDia::KPrEffectDia( QWidget* parent, const char* name, const QPtrList<KPrObject>& _objs, KPrView *_view ) : KDialogBase( parent, name, true ), objs( _objs ) { view = _view; KPrObject *obj = objs.at( 0 ); soundPlayer1 = 0; soundPlayer2 = 0; QWidget *page = new QWidget( this ); setMainWidget(page); topLayout = new QVBoxLayout( page, 0, spacingHint() ); QGroupBox *grp1 = new QGroupBox(0, Qt::Vertical, i18n( "Appear" ), page ); grp1->layout()->setSpacing(KDialog::spacingHint()); grp1->layout()->setMargin(KDialog::marginHint()); topLayout->addWidget(grp1); QGridLayout *upperRow = new QGridLayout(grp1->layout(), 6, 4); lAppear = new QLabel( i18n( "Order of appearance:" ), grp1 ); lAppear->setAlignment( AlignVCenter ); upperRow->addWidget(lAppear, 0, 0); eAppearStep = new QSpinBox( 0, 100, 1, grp1 ); eAppearStep->setValue( obj->getAppearStep() ); upperRow->addWidget(eAppearStep, 0, 1); //( void )new QWidget( grp1 ); //( void )new QWidget( grp1 ); lEffect = new QLabel( i18n( "Effect (appearing):" ), grp1 ); lEffect->setAlignment( AlignVCenter ); upperRow->addWidget(lEffect, 1, 0); cEffect = new QComboBox( false, grp1, "cEffect" ); cEffect->insertItem( i18n( "No Effect" ) ); cEffect->insertItem( i18n( "Come From Right" ) ); cEffect->insertItem( i18n( "Come From Left" ) ); cEffect->insertItem( i18n( "Come From Top" ) ); cEffect->insertItem( i18n( "Come From Bottom" ) ); cEffect->insertItem( i18n( "Come From Right/Top" ) ); cEffect->insertItem( i18n( "Come From Right/Bottom" ) ); cEffect->insertItem( i18n( "Come From Left/Top" ) ); cEffect->insertItem( i18n( "Come From Left/Bottom" ) ); cEffect->insertItem( i18n( "Wipe From Left" ) ); cEffect->insertItem( i18n( "Wipe From Right" ) ); cEffect->insertItem( i18n( "Wipe From Top" ) ); cEffect->insertItem( i18n( "Wipe From Bottom" ) ); cEffect->setCurrentItem( static_cast<int>( obj->getEffect() ) ); upperRow->addWidget(cEffect, 1, 1); connect( cEffect, SIGNAL( activated( int ) ), this, SLOT( appearEffectChanged( int ) ) ); lAppearSpeed = new QLabel( i18n( "Speed:" ), grp1 ); lAppearSpeed->setAlignment( AlignVCenter ); upperRow->addWidget(lAppearSpeed, 2, 0); cAppearSpeed = new QComboBox( false, grp1, "cEffect" ); cAppearSpeed->insertItem( i18n( "Slow" ) ); cAppearSpeed->insertItem( i18n( "Medium" ) ); cAppearSpeed->insertItem( i18n( "Fast" ) ); cAppearSpeed->setCurrentItem( static_cast<int>( obj->getAppearSpeed() ) ); upperRow->addWidget(cAppearSpeed, 2, 1); appearEffectChanged( cEffect->currentItem() ); lEffect2 = new QLabel( i18n( "Effect (object specific):" ), grp1 ); lEffect2->setAlignment( AlignVCenter ); upperRow->addWidget(lEffect2, 3, 0); cEffect2 = new QComboBox( false, grp1, "cEffect2" ); cEffect2->insertItem( i18n( "No Effect" ) ); upperRow->addWidget(cEffect2, 3, 1); switch ( obj->getType() ) { case OT_TEXT: { cEffect2->insertItem( i18n( "Paragraph After Paragraph" ) ); } break; default: lEffect2->setEnabled(false); cEffect2->setEnabled(false); break; } if ( obj->getEffect2() == EF2_NONE ) cEffect2->setCurrentItem( static_cast<int>( obj->getEffect2() ) ); else { switch ( obj->getType() ) { case OT_TEXT: cEffect2->setCurrentItem( static_cast<int>( obj->getEffect2() + TxtObjOffset ) ); break; default: break; } } QLabel *lTimerOfAppear = new QLabel( i18n( "Timer of the object:" ), grp1 ); lTimerOfAppear->setAlignment( AlignVCenter ); upperRow->addWidget( lTimerOfAppear, 4, 0 ); timerOfAppear = new KIntNumInput( obj->getAppearTimer(), grp1 ); timerOfAppear->setRange( 1, 600, 1 ); timerOfAppear->setSuffix( i18n( " seconds" ) ); upperRow->addWidget( timerOfAppear, 4, 1 ); if ( view->kPresenterDoc()->spManualSwitch() ) timerOfAppear->setEnabled( false ); // setup the Sound Effect stuff appearSoundEffect = new QCheckBox( i18n( "Sound effect" ), grp1 ); appearSoundEffect->setChecked( obj->getAppearSoundEffect() ); upperRow->addWidget( appearSoundEffect, 5, 0 ); connect( appearSoundEffect, SIGNAL( clicked() ), this, SLOT( appearSoundEffectChanged() ) ); lSoundEffect1 = new QLabel( i18n( "File name:" ), grp1 ); lSoundEffect1->setAlignment( AlignVCenter ); upperRow->addWidget( lSoundEffect1, 6, 0 ); requester1 = new KURLRequester( grp1 ); requester1->setURL( obj->getAppearSoundEffectFileName() ); upperRow->addWidget( requester1, 6, 1 ); connect( requester1, SIGNAL( openFileDialog( KURLRequester * ) ), this, SLOT( slotRequesterClicked( KURLRequester * ) ) ); connect( requester1, SIGNAL( textChanged( const QString& ) ), this, SLOT( slotAppearFileChanged( const QString& ) ) ); buttonTestPlaySoundEffect1 = new QPushButton( grp1 ); buttonTestPlaySoundEffect1->setIconSet( SmallIconSet("1rightarrow") ); QToolTip::add( buttonTestPlaySoundEffect1, i18n("Play") ); upperRow->addWidget( buttonTestPlaySoundEffect1, 6, 2 ); connect( buttonTestPlaySoundEffect1, SIGNAL( clicked() ), this, SLOT( playSound1() ) ); buttonTestStopSoundEffect1 = new QPushButton( grp1 ); buttonTestStopSoundEffect1->setIconSet( SmallIconSet("player_stop") ); QToolTip::add( buttonTestStopSoundEffect1, i18n("Stop") ); upperRow->addWidget( buttonTestStopSoundEffect1, 6, 3 ); connect( buttonTestStopSoundEffect1, SIGNAL( clicked() ), this, SLOT( stopSound1() ) ); disappear = new QCheckBox( i18n( "Disappear" ), page ); disappear->setChecked( obj->getDisappear() ); topLayout->addWidget(disappear); QGroupBox *grp2 = new QGroupBox(0, Qt::Vertical, i18n( "Disappear" ), page); grp2->layout()->setSpacing(KDialog::spacingHint()); grp2->layout()->setMargin(KDialog::marginHint()); topLayout->addWidget(grp2); QGridLayout *lowerRow = new QGridLayout(grp2->layout(), 5, 4); lDisappear = new QLabel( i18n( "Order of disappearance:" ), grp2 ); lDisappear->setAlignment( AlignVCenter ); lowerRow->addWidget(lDisappear, 0, 0); eDisappearStep = new QSpinBox( 0, 100, 1, grp2 ); eDisappearStep->setValue( obj->getDisappearStep() ); lowerRow->addWidget(eDisappearStep, 0, 1); lDEffect = new QLabel( i18n( "Effect (disappearing):" ), grp2 ); lDEffect->setAlignment( AlignVCenter ); lowerRow->addWidget(lDEffect, 1, 0); cDisappear = new QComboBox( false, grp2, "cDisappear" ); cDisappear->insertItem( i18n( "No Effect" ) ); cDisappear->insertItem( i18n( "Disappear to Right" ) ); cDisappear->insertItem( i18n( "Disappear to Left" ) ); cDisappear->insertItem( i18n( "Disappear to Top" ) ); cDisappear->insertItem( i18n( "Disappear to Bottom" ) ); cDisappear->insertItem( i18n( "Disappear to Right/Top" ) ); cDisappear->insertItem( i18n( "Disappear to Right/Bottom" ) ); cDisappear->insertItem( i18n( "Disappear to Left/Top" ) ); cDisappear->insertItem( i18n( "Disappear to Left/Bottom" ) ); cDisappear->insertItem( i18n( "Wipe to Left" ) ); cDisappear->insertItem( i18n( "Wipe to Right" ) ); cDisappear->insertItem( i18n( "Wipe to Top" ) ); cDisappear->insertItem( i18n( "Wipe to Bottom" ) ); cDisappear->setCurrentItem( static_cast<int>( obj->getEffect3() ) ); lowerRow->addWidget(cDisappear, 1, 1); connect( cDisappear, SIGNAL( activated( int ) ), this, SLOT( disappearEffectChanged( int ) ) ); lDisappearSpeed = new QLabel( i18n( "Speed:" ), grp2 ); lDisappearSpeed->setAlignment( AlignVCenter ); lowerRow->addWidget(lDisappearSpeed, 2, 0); cDisappearSpeed = new QComboBox( false, grp2, "cEffect" ); cDisappearSpeed->insertItem( i18n( "Slow" ) ); cDisappearSpeed->insertItem( i18n( "Medium" ) ); cDisappearSpeed->insertItem( i18n( "Fast" ) ); cDisappearSpeed->setCurrentItem( static_cast<int>( obj->getDisappearSpeed() ) ); lowerRow->addWidget(cDisappearSpeed, 2, 1); //appearEffectChanged( cEffect->currentItem() ); QLabel *lTimerOfDisappear = new QLabel( i18n( "Timer of the object:" ), grp2 ); lTimerOfDisappear->setAlignment( AlignVCenter ); lowerRow->addWidget( lTimerOfDisappear, 3, 0 ); timerOfDisappear = new KIntNumInput( obj->getDisappearTimer(), grp2 ); timerOfDisappear->setRange( 1, 600, 1 ); timerOfDisappear->setSuffix( i18n( " seconds" ) ); lowerRow->addWidget( timerOfDisappear, 3, 1 ); if ( view->kPresenterDoc()->spManualSwitch() ) timerOfDisappear->setEnabled( false ); // setup the Sound Effect stuff disappearSoundEffect = new QCheckBox( i18n( "Sound effect" ), grp2 ); disappearSoundEffect->setChecked( obj->getDisappearSoundEffect() ); lowerRow->addWidget( disappearSoundEffect, 4, 0 ); disappearSoundEffect->setEnabled( disappear->isChecked() ); connect( disappearSoundEffect, SIGNAL( clicked() ), this, SLOT( disappearSoundEffectChanged() ) ); lSoundEffect2 = new QLabel( i18n( "File name:" ), grp2 ); lSoundEffect2->setAlignment( AlignVCenter ); lowerRow->addWidget( lSoundEffect2, 5, 0 ); requester2 = new KURLRequester( grp2 ); requester2->setURL( obj->getDisappearSoundEffectFileName() ); lowerRow->addWidget( requester2, 5, 1 ); connect( requester2, SIGNAL( openFileDialog( KURLRequester * ) ), this, SLOT( slotRequesterClicked( KURLRequester * ) ) ); connect( requester2, SIGNAL( textChanged( const QString& ) ), this, SLOT( slotDisappearFileChanged( const QString& ) ) ); buttonTestPlaySoundEffect2 = new QPushButton( grp2 ); buttonTestPlaySoundEffect2->setIconSet( SmallIconSet("1rightarrow") ); QToolTip::add( buttonTestPlaySoundEffect2, i18n("Play") ); lowerRow->addWidget( buttonTestPlaySoundEffect2, 5, 2 ); connect( buttonTestPlaySoundEffect2, SIGNAL( clicked() ), this, SLOT( playSound2() ) ); buttonTestStopSoundEffect2 = new QPushButton( grp2 ); buttonTestStopSoundEffect2->setIconSet( SmallIconSet("player_stop") ); QToolTip::add( buttonTestStopSoundEffect2, i18n("Stop") ); lowerRow->addWidget( buttonTestStopSoundEffect2, 5, 3 ); connect( buttonTestStopSoundEffect2, SIGNAL( clicked() ), this, SLOT( stopSound2() ) ); topLayout->activate(); connect( this, SIGNAL( okClicked() ), this, SLOT( slotEffectDiaOk() ) ); connect( this, SIGNAL( okClicked() ), this, SLOT( accept() ) ); connect( disappear, SIGNAL( clicked() ), this, SLOT( disappearChanged() ) ); disappearChanged(); appearSoundEffectChanged(); }