summaryrefslogtreecommitdiff
path: root/libopie2/examples/opieui/okeyconfigwidget
authorzecke <zecke>2004-03-26 22:57:49 (UTC)
committer zecke <zecke>2004-03-26 22:57:49 (UTC)
commitdbd543660350e58b7d975e884439b0fbe314ef28 (patch) (side-by-side diff)
tree7ecbd79cc2031ff38e06a5b8742fbd5b0907798d /libopie2/examples/opieui/okeyconfigwidget
parentc54a3c8cc47258743381d4dee4200304d247182d (diff)
downloadopie-dbd543660350e58b7d975e884439b0fbe314ef28.zip
opie-dbd543660350e58b7d975e884439b0fbe314ef28.tar.gz
opie-dbd543660350e58b7d975e884439b0fbe314ef28.tar.bz2
A small example/test for the OKeyConfigWidget currently
in opie-eye. So you see my intention where it should end
Diffstat (limited to 'libopie2/examples/opieui/okeyconfigwidget') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/examples/opieui/okeyconfigwidget/keyconfig.pro12
-rw-r--r--libopie2/examples/opieui/okeyconfigwidget/testwidget.cpp122
-rw-r--r--libopie2/examples/opieui/okeyconfigwidget/testwidget.h40
3 files changed, 174 insertions, 0 deletions
diff --git a/libopie2/examples/opieui/okeyconfigwidget/keyconfig.pro b/libopie2/examples/opieui/okeyconfigwidget/keyconfig.pro
new file mode 100644
index 0000000..b38cf3b
--- a/dev/null
+++ b/libopie2/examples/opieui/okeyconfigwidget/keyconfig.pro
@@ -0,0 +1,12 @@
+CONFIG += qt debug
+
+TEMPLATE = app
+SOURCES = ../../../../noncore/graphics/opie-eye/lib/okeyconfigwidget.cpp testwidget.cpp
+HEADERS = ../../../../noncore/graphics/opie-eye/lib/okeyconfigwidget.h testwidget.h
+
+INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/noncore/graphics/opie-eye/lib/
+DESTPATH += $(OPIEDIR)/include
+
+LIBS += -lopieui2 -lopiecore2
+
+include ( $(OPIEDIR)/include.pro )
diff --git a/libopie2/examples/opieui/okeyconfigwidget/testwidget.cpp b/libopie2/examples/opieui/okeyconfigwidget/testwidget.cpp
new file mode 100644
index 0000000..329df09
--- a/dev/null
+++ b/libopie2/examples/opieui/okeyconfigwidget/testwidget.cpp
@@ -0,0 +1,122 @@
+#include "testwidget.h"
+
+#include "okeyconfigwidget.h"
+
+#include <opie2/oapplicationfactory.h>
+#include <opie2/otabwidget.h>
+
+#include <qpe/qpeapplication.h>
+
+#include <qevent.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qmainwindow.h>
+#include <qdialog.h>
+
+
+/**
+ * QObject with signals and slots inside a .cpp
+ * requires the .moc at the bottom! and a run of qmake
+ */
+class MainWindow : public QMainWindow {
+ Q_OBJECT
+public:
+ static QString appName() {
+ return QString::fromLatin1("keyconfig");
+ }
+ MainWindow( QWidget*, const char*, WFlags fl );
+ ~MainWindow() {}
+private slots:
+ void slotClicked();
+private:
+ Opie::Ui::OKeyConfigManager *m_manager;
+};
+
+
+OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<MainWindow> )
+
+
+MainWindow::MainWindow( QWidget* parent, const char* name, WFlags fl )
+ : QMainWindow( parent, name, fl )
+{
+ QVBoxLayout *lay = new QVBoxLayout( this );
+ QPushButton *btn = new QPushButton( tr("Configure" ), this );
+ TestMainWindow *wid = new TestMainWindow( this, "name", 0 );
+
+ lay->addWidget( btn );
+ lay->addWidget( wid );
+ m_manager = wid->manager();
+
+ connect( btn, SIGNAL(clicked()), this, SLOT(slotClicked()) );
+}
+
+void MainWindow::slotClicked() {
+ QDialog diag( this, "name", true );
+ QHBoxLayout *lay = new QHBoxLayout( &diag );
+ Opie::Ui::OKeyConfigWidget *wid = new Opie::Ui::OKeyConfigWidget( &diag, "key config" );
+ wid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue );
+ wid->insert( tr("MainWindow Options" ), m_manager );
+ wid->load();
+
+ lay->addWidget( wid );
+
+ if ( QPEApplication::execDialog( &diag ) == QDialog::Accepted ) {
+ wid->save();
+ }
+}
+
+TestMainWindow::TestMainWindow( QWidget* parent, const char* slot, WFlags fl )
+ : Opie::Ui::OListView( parent, slot, fl)
+{
+ addColumn( tr( "A Doo" ) );
+ addColumn( tr( "B Doo" ) );
+
+ m_config = new Opie::Core::OConfig( "test_config_foo" );
+
+ /* generate the black list */
+ Opie::Ui::OKeyPair::List blackList;
+ blackList.append( Opie::Ui::OKeyPair::leftArrowKey() );
+ blackList.append( Opie::Ui::OKeyPair::rightArrowKey() );
+ blackList.append( Opie::Ui::OKeyPair::downArrowKey() );
+ blackList.append( Opie::Ui::OKeyPair::upArrowKey() );
+
+ m_manager = new Opie::Ui::OKeyConfigManager( m_config, "Key Group",
+ blackList, false, this, "Key Manager" );
+
+ m_manager->addKeyConfig( Opie::Ui::OKeyConfigItem( tr( "Delete Action" ), "delete_key", QPixmap(),
+ 10, Opie::Ui::OKeyPair( Qt::Key_D, 0 ), this,
+ SLOT(slotDelete(QWidget*,QKeyEvent*)) ) );
+
+ connect(m_manager, SIGNAL(actionActivated(QWidget*,QKeyEvent*,const Opie::Ui::OKeyConfigItem&)),
+ this, SLOT(slotAction(QWidget*, QKeyEvent*, const Opie::Ui::OKeyConfigItem&)) );
+// when commenting the line below out the keyPressEvent will work
+ m_manager->handleWidget( this );
+ m_manager->load();
+}
+
+TestMainWindow::~TestMainWindow() {
+ m_manager->save();
+}
+
+Opie::Ui::OKeyConfigManager* TestMainWindow::manager() {
+ return m_manager;
+}
+
+/*
+ * This only works if we do not handle the even with m_manager->handleWidget( this )
+ * So this is only for demo purposes
+ */
+void TestMainWindow::keyPressEvent( QKeyEvent* ev ) {
+ qWarning( "String is "+ m_manager->handleKeyEvent( ev ).text() );
+ qWarning( "Id was %d", m_manager->handleKeyEventId( ev ) );
+}
+
+void TestMainWindow::slotDelete( QWidget* wid, QKeyEvent* ev ) {
+ qWarning( "Slot Delete %d %d %d", wid, ev->key(), ev->state() );
+}
+
+void TestMainWindow::slotAction( QWidget* wid, QKeyEvent* ev, const Opie::Ui::OKeyConfigItem& item) {
+ qWarning( "Slot Action %d %d %d %s %d", wid, ev->key(), ev->state(), item.text().latin1(), item.id() );
+}
+
+#include "testwidget.moc"
diff --git a/libopie2/examples/opieui/okeyconfigwidget/testwidget.h b/libopie2/examples/opieui/okeyconfigwidget/testwidget.h
new file mode 100644
index 0000000..b95c225
--- a/dev/null
+++ b/libopie2/examples/opieui/okeyconfigwidget/testwidget.h
@@ -0,0 +1,40 @@
+#ifndef TEST_WIDGET_H
+#define TEST_WIDGET_H
+
+#include <qmainwindow.h>
+
+#include <opie2/olistview.h>
+
+namespace Opie{
+namespace Ui{
+ class OTabWidget;
+ class OKeyConfigManager;
+ class OListView;
+ class OKeyConfigItem;
+}
+namespace Core {
+ class OConfig;
+}
+}
+class QKeyEvent;
+
+
+class TestMainWindow : public Opie::Ui::OListView {
+ Q_OBJECT
+public:
+
+ TestMainWindow(QWidget* parent, const char*, WFlags fl );
+ ~TestMainWindow();
+
+ Opie::Ui::OKeyConfigManager *manager();
+protected:
+ void keyPressEvent( QKeyEvent* );
+private slots:
+ void slotDelete( QWidget*, QKeyEvent* );
+ void slotAction( QWidget*, QKeyEvent*, const Opie::Ui::OKeyConfigItem& );
+private:
+ Opie::Core::OConfig *m_config;
+ Opie::Ui::OKeyConfigManager *m_manager;
+};
+
+#endif