add QAD::VirtualKeyboard library, vkbd for widgets with JSON-based description

This commit is contained in:
2024-05-29 21:42:16 +03:00
parent 85adc666ef
commit ac0f5bc325
18 changed files with 871 additions and 3 deletions

View File

@@ -0,0 +1 @@
qad_plugin(virtual_keyboard "Gui;Widgets" "")

View File

@@ -0,0 +1,17 @@
#include "qad_virtual_keyboard.h"
#include "virtual_keyboard_plugin.h"
QADVirtualKeyboard::QADVirtualKeyboard(QObject * parent): QObject(parent) {
m_widgets << new VirtualKeyboardPlugin(this);
}
QList<QDesignerCustomWidgetInterface *> QADVirtualKeyboard::customWidgets() const {
return m_widgets;
}
#if QT_VERSION < 0x050000
Q_EXPORT_PLUGIN2(qad_virtual_keyboard_plugin, QADVirtualKeyboard)
#endif

View File

@@ -0,0 +1,24 @@
#ifndef qad_virtual_keyboard_h
#define qad_virtual_keyboard_h
#include <QtCore/qplugin.h>
#include <QtDesigner/QtDesigner>
class QADVirtualKeyboard
: public QObject
, public QDesignerCustomWidgetCollectionInterface {
Q_OBJECT
#if QT_VERSION >= 0x050000
Q_PLUGIN_METADATA(IID "qad.virtual_keyboard")
#endif
Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
public:
explicit QADVirtualKeyboard(QObject * parent = 0);
virtual QList<QDesignerCustomWidgetInterface *> customWidgets() const;
private:
QList<QDesignerCustomWidgetInterface *> m_widgets;
};
#endif

View File

@@ -0,0 +1,62 @@
#include "virtual_keyboard_plugin.h"
#include "virtual_keyboard.h"
#include <QDesignerFormEditorInterface>
#include <QDesignerPropertyEditorInterface>
#include <QtCore/QtPlugin>
VirtualKeyboardPlugin::VirtualKeyboardPlugin(QObject * parent): QObject(parent) {
m_initialized = false;
}
void VirtualKeyboardPlugin::initialize(QDesignerFormEditorInterface * /* core */) {
if (m_initialized) return;
// Add extension registrations, etc. here
m_initialized = true;
}
bool VirtualKeyboardPlugin::isInitialized() const {
return m_initialized;
}
QWidget * VirtualKeyboardPlugin::createWidget(QWidget * parent) {
auto ret = new VirtualKeyboard(parent);
ret->setAlwaysVisible(true);
return ret;
}
QString VirtualKeyboardPlugin::name() const {
return QLatin1String("VirtualKeyboard");
}
QString VirtualKeyboardPlugin::group() const {
return QLatin1String("Touch Widgets");
}
QIcon VirtualKeyboardPlugin::icon() const {
return QIcon(":/icons/virtual_keyboard.png");
}
QString VirtualKeyboardPlugin::toolTip() const {
return QLatin1String("");
}
QString VirtualKeyboardPlugin::whatsThis() const {
return QLatin1String("");
}
bool VirtualKeyboardPlugin::isContainer() const {
return false;
}
QString VirtualKeyboardPlugin::domXml() const {
return QLatin1String("<widget class=\"VirtualKeyboard\" name=\"virtualKeyboard\">\n</widget>\n");
}
QString VirtualKeyboardPlugin::includeFile() const {
return QLatin1String("virtual_keyboard.h");
}

View File

@@ -0,0 +1,36 @@
#ifndef virtual_keyboard_plugin_h
#define virtual_keyboard_plugin_h
#include <QObject>
#if QT_VERSION >= 0x050000
# include <QtUiPlugin/QDesignerCustomWidgetInterface>
#else
# include <QDesignerCustomWidgetInterface>
#endif
class VirtualKeyboardPlugin
: public QObject
, public QDesignerCustomWidgetInterface {
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
VirtualKeyboardPlugin(QObject * parent = 0);
bool isContainer() const;
bool isInitialized() const;
QIcon icon() const;
QString domXml() const;
QString group() const;
QString includeFile() const;
QString name() const;
QString toolTip() const;
QString whatsThis() const;
QWidget * createWidget(QWidget * parent);
void initialize(QDesignerFormEditorInterface * core);
private:
bool m_initialized;
};
#endif