finishing up repo migration
git-svn-id: svn://svn.code.sf.net/p/qjoypad/code/trunk@80 c05e91a0-76c8-4ec0-b377-ef19ce7cc080
This commit is contained in:
102
src/joypadw.cpp
Normal file
102
src/joypadw.cpp
Normal file
@ -0,0 +1,102 @@
|
||||
#include "joypadw.h"
|
||||
//Added by qt3to4:
|
||||
|
||||
JoyPadWidget::JoyPadWidget( JoyPad* jp, int i, QWidget* parent )
|
||||
: QWidget(parent) {
|
||||
//initialize things, build the dialog
|
||||
joypad = jp;
|
||||
index = i;
|
||||
/* This was in below, no idea what it does :( ...
|
||||
* (joypad->axes+1)/2 +(joypad->buttons+1)/2 + 2
|
||||
*/
|
||||
LMain = new QGridLayout(this);
|
||||
LMain->setSpacing(5);
|
||||
LMain->setMargin(5);
|
||||
flashcount = 0;
|
||||
int insertCounter = 0;
|
||||
quickset = NULL;
|
||||
|
||||
Axes = new AxisWidget*[joypad->axes];
|
||||
for (int i = 0; i < joypad->axes; i++) {
|
||||
Axes[i] = new AxisWidget(joypad->Axes[i],this);
|
||||
connect( Axes[i], SIGNAL( flashed( bool ) ), this, SLOT( flash( bool )));
|
||||
LMain->addWidget(Axes[i], insertCounter / 2, insertCounter %2);
|
||||
insertCounter++;
|
||||
}
|
||||
|
||||
Buttons = new ButtonWidget*[joypad->buttons];
|
||||
for (int i = 0; i < joypad->buttons; i++) {
|
||||
Buttons[i] = new ButtonWidget(joypad->Buttons[i],this);
|
||||
connect( Buttons[i], SIGNAL( flashed( bool ) ), this, SLOT( flash( bool )));
|
||||
LMain->addWidget(Buttons[i], insertCounter/2, insertCounter%2);
|
||||
insertCounter++;
|
||||
}
|
||||
|
||||
|
||||
if(insertCounter % 2 == 1) {
|
||||
insertCounter++;
|
||||
}
|
||||
insertCounter+=2;
|
||||
BClear = new QPushButton("Clear", this);
|
||||
connect(BClear, SIGNAL(clicked()), this, SLOT(clear()));
|
||||
LMain->addWidget(BClear, insertCounter / 2, insertCounter %2);
|
||||
insertCounter++;
|
||||
BAll = new QPushButton("Quick Set", this);
|
||||
LMain->addWidget(BAll, insertCounter /2, insertCounter%2);
|
||||
connect(BAll, SIGNAL(clicked()), this, SLOT(setAll()));
|
||||
}
|
||||
|
||||
JoyPadWidget::~JoyPadWidget() {
|
||||
//so the joypad knows that we're done.
|
||||
joypad->releaseWidget();
|
||||
}
|
||||
|
||||
void JoyPadWidget::flash( bool on ) {
|
||||
//true iff this entire widget was considered "flashed" before
|
||||
bool wasOn = (flashcount != 0);
|
||||
|
||||
//adjust the count based on this new flash
|
||||
flashcount += (on?1:-1);
|
||||
|
||||
//if we were on and should now be off, or visa versa, flash the whole widget
|
||||
if (wasOn != (flashcount != 0))
|
||||
emit flashed(index);
|
||||
}
|
||||
|
||||
void JoyPadWidget::update() {
|
||||
for (int i = 0; i < joypad->axes; i++) {
|
||||
Axes[i]->update();
|
||||
}
|
||||
for (int i = 0; i < joypad->buttons; i++) {
|
||||
Buttons[i]->update();
|
||||
}
|
||||
}
|
||||
|
||||
void JoyPadWidget::clear() {
|
||||
joypad->toDefault();
|
||||
update();
|
||||
}
|
||||
|
||||
void JoyPadWidget::setAll() {
|
||||
//quickset is NULL if there is no quickset dialog, and a pointer to the
|
||||
//dialog otherwise. This is so we can forward jsevents properly.
|
||||
quickset = new QuickSet(joypad);
|
||||
quickset->exec();
|
||||
update();
|
||||
delete quickset;
|
||||
quickset = NULL;
|
||||
}
|
||||
|
||||
void JoyPadWidget::jsevent( js_event msg ) {
|
||||
//notify the component this event applies to. this cannot generate anything
|
||||
//other than a flash :)
|
||||
if (msg.type == JS_EVENT_AXIS) {
|
||||
Axes[msg.number]->jsevent(msg.value);
|
||||
}
|
||||
else {
|
||||
Buttons[msg.number]->jsevent(msg.value);
|
||||
}
|
||||
//if we're doing quickset, it needs to know when we do something.
|
||||
if (quickset != NULL)
|
||||
quickset->jsevent(msg);
|
||||
}
|
Reference in New Issue
Block a user