#include "keygrabber.h"
-// These tables are used to convert Qt keycodes into human readable form. Note that
-// a lot of these are just filler.
+// These tables are used to convert Qt keycodes into human readable form. Note
+// that a lot of these are just filler.
char ControllerWidget::keyName1[96][16] = {
"Space",
"!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/",
painter.setPen(colorPen);
painter.drawLine(line);
+//#define DEBUG_CWPAINT
+#ifdef DEBUG_CWPAINT
+printf("------------------------------\n");
+#endif
for(int i=BUTTON_FIRST; i<=BUTTON_LAST; i++)
{
if (keyToHighlight == i)
painter.setFont(font);
}
+#ifdef DEBUG_CWPAINT
+printf("key %02i: ", i);
+#endif
+
if (keys[i] < 0x80)
+#ifdef DEBUG_CWPAINT
+{
+printf("Drawing a key < 0x80 [keys[i]=%X, keyname=%s]...\n", keys[i], keyName1[keys[i] - 0x20]);
+#endif
DrawBorderedText(painter, buttonPos[i][0], buttonPos[i][1],
QString(keyName1[keys[i] - 0x20]));
+#ifdef DEBUG_CWPAINT
+}
+#endif
else if ((keys[i] & 0xFFFFFF00) == 0x01000000)
{
+#ifdef DEBUG_CWPAINT
+printf("Drawing a key with bit 48 set...\n");
+#endif
DrawBorderedText(painter, buttonPos[i][0], buttonPos[i][1],
QString(keyName2[keys[i] & 0x3F]));
}
#if 1
else if (keys[i] & JOY_BUTTON)
{
+#ifdef DEBUG_CWPAINT
+printf("Drawing a joystick button...\n");
+#endif
DrawBorderedText(painter, buttonPos[i][0], buttonPos[i][1],
QString("JB%1").arg(keys[i] & JOY_BUTTON_MASK));
}
else if (keys[i] & JOY_HAT)
{
+#ifdef DEBUG_CWPAINT
+printf("Drawing a joystick hat...\n");
+#endif
DrawBorderedText(painter, buttonPos[i][0], buttonPos[i][1],
QString("j%1").arg(hatName[keys[i] & JOY_BUTTON_MASK]));
}
else if (keys[i] & JOY_AXIS)
{
+#ifdef DEBUG_CWPAINT
+printf("Drawing a joystick axis...\n");
+#endif
DrawBorderedText(painter, buttonPos[i][0], buttonPos[i][1],
QString("JA%1%2").arg((keys[i] & JOY_AXISNUM_MASK) >> 1).arg(axisName[keys[i] & JOY_AXISDIR_MASK]));
}
#endif
else
+#ifdef DEBUG_CWPAINT
+{
+printf("Drawing ???...\n");
+#endif
DrawBorderedText(painter, buttonPos[i][0], buttonPos[i][1], QString("???"));
+#ifdef DEBUG_CWPAINT
+}
+#endif
}
}
void ControllerWidget::mouseReleaseEvent(QMouseEvent * /*event*/)
{
mouseDown = false;
- // Spawning the keygrabber causes leaveEvent() to be called, so we need to save this
+ // Spawning the keygrabber causes leaveEvent() to be called, so we need to
+ // save this
int keyToHighlightSave = keyToHighlight;
KeyGrabber keyGrab(this);
int key = keyGrab.key;
if (key != Qt::Key_Escape)
+ {
keys[keyToHighlightSave] = key;
+ emit(KeyDefined(keyToHighlightSave, key));
+ }
keyToHighlight = keyToHighlightSave;
update();