bsnes-plus/bsnes/ui-qt/base/stateselect.cpp
2014-11-26 18:35:12 -05:00

57 lines
1.7 KiB
C++

#include "stateselect.moc"
StateSelectWindow *stateSelectWindow;
void StateSelectWindow::setSlot(unsigned slot) {
state.active = slot;
hide();
utility.showMessage(string("Quick state ", slot + 1, " selected."));
}
void StateSelectWindow::keyReleaseEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_1: return setSlot(0);
case Qt::Key_2: return setSlot(1);
case Qt::Key_3: return setSlot(2);
case Qt::Key_4: return setSlot(3);
case Qt::Key_5: return setSlot(4);
case Qt::Key_6: return setSlot(5);
case Qt::Key_7: return setSlot(6);
case Qt::Key_8: return setSlot(7);
case Qt::Key_9: return setSlot(8);
case Qt::Key_0: return setSlot(9);
}
return Window::keyReleaseEvent(event);
}
StateSelectWindow::StateSelectWindow() {
setObjectName("state-select-window");
setWindowTitle("State Selection");
setGeometryString(&config().geometry.stateSelectWindow);
layout = new QGridLayout;
layout->setMargin(Style::WindowMargin);
layout->setSpacing(Style::WidgetSpacing);
setLayout(layout);
slot[0] = new QPushButton("Slot &1");
slot[1] = new QPushButton("Slot &2");
slot[2] = new QPushButton("Slot &3");
slot[3] = new QPushButton("Slot &4");
slot[4] = new QPushButton("Slot &5");
slot[5] = new QPushButton("Slot &6");
slot[6] = new QPushButton("Slot &7");
slot[7] = new QPushButton("Slot &8");
slot[8] = new QPushButton("Slot &9");
slot[9] = new QPushButton("Slot 1&0");
for(unsigned i = 0; i < 10; i++) {
layout->addWidget(slot[i], i / 5, i % 5);
connect(slot[i], SIGNAL(released()), this, SLOT(slotClicked()));
}
}
void StateSelectWindow::slotClicked() {
QPushButton *s = (QPushButton*)sender();
for(unsigned i = 0; i < 10; i++) {
if(slot[i] == s) return setSlot(i);
}
}