summaryrefslogtreecommitdiffstats
path: root/kpacman/keys.cpp
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2020-08-17 18:58:43 +0200
committerSlávek Banko <slavek.banko@axis.cz>2020-08-17 18:58:43 +0200
commit6f2c87870081718731cccee678e1e89869826de2 (patch)
tree942f97a4b9d4126d385e8bdc0aee30ff3dc6ed6d /kpacman/keys.cpp
downloadtdepacman-6f2c87870081718731cccee678e1e89869826de2.tar.gz
tdepacman-6f2c87870081718731cccee678e1e89869826de2.zip
Initial import of version 0.3.2 from the source package.
https://sourceforge.net/projects/kpacman/files/kpacman/0.3.2/kpacman-0.3.2.tar.gz Original package is licenced under GPL 2.0. Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'kpacman/keys.cpp')
-rw-r--r--kpacman/keys.cpp190
1 files changed, 190 insertions, 0 deletions
diff --git a/kpacman/keys.cpp b/kpacman/keys.cpp
new file mode 100644
index 0000000..a3c2c81
--- /dev/null
+++ b/kpacman/keys.cpp
@@ -0,0 +1,190 @@
+#include <kapp.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <kstddirs.h>
+
+#include <keys.h>
+
+#include <kaccel.h>
+#include <qpushbt.h>
+#include <qlabel.h>
+#include <qframe.h>
+#include <qkeycode.h>
+#include <qpixmap.h>
+#include <qstring.h>
+
+Keys::Keys( QWidget *parent, const char *name)
+ : QDialog( parent, name, TRUE )
+{
+ KStandardDirs *dirs = KGlobal::dirs();
+
+ QPushButton *okButton = new QPushButton(this);
+ okButton->setText(i18n("Ok"));
+ okButton->setFixedSize(okButton->size());
+ connect( okButton, SIGNAL(clicked()),this, SLOT(ok()) );
+ okButton->move(20,210);
+
+ QPushButton *defaultButton = new QPushButton(this);
+ defaultButton->setText(i18n("Defaults"));
+ defaultButton->setFixedSize(defaultButton->size());
+ connect( defaultButton, SIGNAL(clicked()),this, SLOT(defaults()) );
+ defaultButton->move(140,210);
+
+ QPushButton *cancelButton = new QPushButton(this);
+ cancelButton->setText(i18n("Cancel"));
+ cancelButton->setFixedSize(cancelButton->size());
+ connect( cancelButton, SIGNAL(clicked()),this, SLOT(reject()) );
+ cancelButton->move(260,210);
+
+ QFrame *separator = new QFrame(this);
+ separator->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+ separator->setGeometry( 20, 190, 340, 4 );
+
+ for ( int x = 0; x < 4; x++) {
+ QLabel *l = new QLabel(this);
+ l->setAlignment(AlignCenter);
+ labels[x] = l;
+ }
+
+ labels[0]->setGeometry(120, 20, 140, 20 );
+ labels[1]->setGeometry(120,160, 140, 20 );
+ labels[2]->setGeometry( 20, 92, 100, 20 );
+ labels[3]->setGeometry(265, 92, 100, 20 );
+
+ QString pixPath;
+
+ QPushButton *up = new QPushButton(this);
+ pixPath = dirs->findResource("appdata", "pics/up.xpm");
+ up->setPixmap( QPixmap(pixPath));
+ up->setFixedSize(up->pixmap()->size());
+ connect( up, SIGNAL(clicked()),this, SLOT(butUp()) );
+ up->move(180, 50);
+
+ QPushButton *down = new QPushButton(this);
+ pixPath = dirs->findResource("appdata", "pics/down.xpm");
+ down->setPixmap( QPixmap(pixPath));
+ down->setFixedSize(down->pixmap()->size());
+ connect( down, SIGNAL(clicked()),this, SLOT(butDown()) );
+ down->move(180, 130);
+
+ QPushButton *left = new QPushButton(this);
+ pixPath = dirs->findResource("appdata", "pics/left.xpm");
+ left->setPixmap( QPixmap(pixPath));
+ left->setFixedSize(left->pixmap()->size());
+ connect( left, SIGNAL(clicked()),this, SLOT(butLeft()) );
+ left->move(140, 90);
+
+ QPushButton *right = new QPushButton(this);
+ pixPath = dirs->findResource("appdata", "pics/right.xpm");
+ right->setPixmap( QPixmap(pixPath));
+ right->setFixedSize(right->pixmap()->size());
+ connect( right, SIGNAL(clicked()),this, SLOT(butRight()) );
+ right->move(220, 90);
+
+
+ setCaption(i18n("Change Direction Keys"));
+ setFixedSize(380, 260);
+ lab = 0;
+ init();
+}
+
+void Keys::keyPressEvent( QKeyEvent *e )
+{
+ uint kCode = e->key() & ~(SHIFT | CTRL | ALT);
+ QString string = KAccel::keyToString(kCode);
+
+ if (lab != 0) {
+ if ( string.isNull() )
+ lab->setText(i18n("Undefined key"));
+ else
+ lab->setText(string);
+ }
+ else if ( lab == 0 && e->key() == Key_Escape)
+ reject();
+}
+
+void Keys::butUp()
+{
+ getKey(0);
+}
+
+void Keys::butDown()
+{
+ getKey(1);
+}
+
+void Keys::butLeft()
+{
+ getKey(2);
+}
+
+void Keys::butRight()
+{
+ getKey(3);
+}
+
+void Keys::getKey(int i)
+{
+ if ( lab != 0)
+ focusOut(lab);
+
+ focusIn(labels[i]);
+}
+
+void Keys::focusOut(QLabel *l)
+{
+ l->setFrameStyle( QFrame::NoFrame );
+ l->setBackgroundColor(backgroundColor());
+ l->repaint();
+}
+
+void Keys::focusIn(QLabel *l)
+{
+ lab = l;
+ lab->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+ lab->setBackgroundColor(white);
+ lab->repaint();
+}
+
+void Keys::defaults()
+{
+ if ( lab != 0)
+ focusOut(lab);
+
+ lab = 0;
+
+ labels[0]->setText("Up");
+ labels[1]->setText("Down");
+ labels[2]->setText("Left");
+ labels[3]->setText("Right");
+}
+
+void Keys::init()
+{
+ QString up("Up");
+ up = kapp->config()->readEntry("upKey", (const char*) up);
+ labels[0]->setText(up);
+
+ QString down("Down");
+ down = kapp->config()->readEntry("downKey", (const char*) down);
+ labels[1]->setText(down);
+
+ QString left("Left");
+ left = kapp->config()->readEntry("leftKey", (const char*) left);
+ labels[2]->setText(left);
+
+ QString right("Right");
+ right = kapp->config()->readEntry("rightKey", (const char*) right);
+ labels[3]->setText(right);
+}
+
+void Keys::ok()
+{
+ kapp->config()->writeEntry("upKey", (const char*) labels[0]->text() );
+ kapp->config()->writeEntry("downKey", (const char*) labels[1]->text() );
+ kapp->config()->writeEntry("leftKey", (const char*) labels[2]->text() );
+ kapp->config()->writeEntry("rightKey",(const char*) labels[3]->text() );
+ kapp->config()->sync();
+
+ accept();
+}