466 lines
18 KiB
C++
466 lines
18 KiB
C++
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2016 The Qt Company Ltd.
|
|
** Contact: https://www.qt.io/licensing/
|
|
**
|
|
** This file is part of the plugins of the Qt Toolkit.
|
|
**
|
|
** $QT_BEGIN_LICENSE:LGPL$
|
|
** Commercial License Usage
|
|
** Licensees holding valid commercial Qt licenses may use this file in
|
|
** accordance with the commercial license agreement provided with the
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
** a written agreement between you and The Qt Company. For licensing terms
|
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
** information use the contact form at https://www.qt.io/contact-us.
|
|
**
|
|
** GNU Lesser General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
** General Public License version 3 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
|
** packaging of this file. Please review the following information to
|
|
** ensure the GNU Lesser General Public License version 3 requirements
|
|
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
|
**
|
|
** GNU General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
** General Public License version 2.0 or (at your option) the GNU General
|
|
** Public license version 3 or any later version approved by the KDE Free
|
|
** Qt Foundation. The licenses are as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
|
** included in the packaging of this file. Please review the following
|
|
** information to ensure the GNU General Public License requirements will
|
|
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
|
** https://www.gnu.org/licenses/gpl-3.0.html.
|
|
**
|
|
** $QT_END_LICENSE$
|
|
**
|
|
****************************************************************************/
|
|
|
|
#include "qdirectfbconvenience.h"
|
|
#include "qdirectfbblitter.h"
|
|
#include "qdirectfbscreen.h"
|
|
|
|
#include <private/qpixmap_blitter_p.h>
|
|
|
|
#include <QtGui/QWindow>
|
|
#include <QtGui/QScreen>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
IDirectFB *QDirectFbConvenience::dfbInterface()
|
|
{
|
|
static IDirectFB *dfb = 0;
|
|
if (!dfb) {
|
|
DFBResult result = DirectFBCreate(&dfb);
|
|
if (result != DFB_OK) {
|
|
DirectFBErrorFatal("QDirectFBConvenience: error creating DirectFB interface", result);
|
|
return 0;
|
|
}
|
|
}
|
|
return dfb;
|
|
}
|
|
|
|
IDirectFBDisplayLayer *QDirectFbConvenience::dfbDisplayLayer(int display)
|
|
{
|
|
IDirectFBDisplayLayer *layer;
|
|
DFBResult result = QDirectFbConvenience::dfbInterface()->GetDisplayLayer(QDirectFbConvenience::dfbInterface(),display,&layer);
|
|
if (result != DFB_OK)
|
|
DirectFBErrorFatal("QDirectFbConvenience: "
|
|
"Unable to get primary display layer!", result);
|
|
return layer;
|
|
}
|
|
|
|
QImage::Format QDirectFbConvenience::imageFormatFromSurfaceFormat(const DFBSurfacePixelFormat format, const DFBSurfaceCapabilities caps)
|
|
{
|
|
switch (format) {
|
|
case DSPF_LUT8:
|
|
return QImage::Format_Indexed8;
|
|
case DSPF_RGB24:
|
|
return QImage::Format_RGB888;
|
|
case DSPF_ARGB4444:
|
|
return QImage::Format_ARGB4444_Premultiplied;
|
|
case DSPF_RGB444:
|
|
return QImage::Format_RGB444;
|
|
case DSPF_RGB555:
|
|
case DSPF_ARGB1555:
|
|
return QImage::Format_RGB555;
|
|
case DSPF_RGB16:
|
|
return QImage::Format_RGB16;
|
|
case DSPF_ARGB6666:
|
|
return QImage::Format_ARGB6666_Premultiplied;
|
|
case DSPF_RGB18:
|
|
return QImage::Format_RGB666;
|
|
case DSPF_RGB32:
|
|
return QImage::Format_RGB32;
|
|
case DSPF_ARGB: {
|
|
if (caps & DSCAPS_PREMULTIPLIED)
|
|
return QImage::Format_ARGB32_Premultiplied;
|
|
else return QImage::Format_ARGB32; }
|
|
default:
|
|
break;
|
|
}
|
|
return QImage::Format_Invalid;
|
|
|
|
}
|
|
|
|
int QDirectFbConvenience::colorDepthForSurface(const DFBSurfacePixelFormat format)
|
|
{
|
|
return ((0x1f << 7) & format) >> 7;
|
|
}
|
|
|
|
/**
|
|
* This is borrowing the reference of the QDirectFbBlitter. You may not store this
|
|
* pointer as a class member but must only use it locally.
|
|
*/
|
|
IDirectFBSurface *QDirectFbConvenience::dfbSurfaceForPlatformPixmap(QPlatformPixmap *handle)
|
|
{
|
|
QBlittablePlatformPixmap *blittablePmData = static_cast<QBlittablePlatformPixmap *>(handle);
|
|
if (blittablePmData) {
|
|
QBlittable *blittable = blittablePmData->blittable();
|
|
QDirectFbBlitter *dfbBlitter = static_cast<QDirectFbBlitter *>(blittable);
|
|
return dfbBlitter->m_surface.data();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
Qt::MouseButton QDirectFbConvenience::mouseButton(DFBInputDeviceButtonIdentifier identifier)
|
|
{
|
|
// The Enum contains values for DIBI_FIRST (= DIBI_LEFT), DIBI_LAST (= 0x1f,) and
|
|
// just 3 enumerated Mouse Buttons. To convert into *ALL* possible Qt::MoueButton values,
|
|
// the parameter is cast as integer.
|
|
|
|
switch (int(identifier)) {
|
|
case DIBI_LEFT: // value is 0x00
|
|
return Qt::LeftButton;
|
|
case DIBI_RIGHT: // value is 0x01
|
|
return Qt::RightButton;
|
|
case DIBI_MIDDLE: // value is 0x02
|
|
return Qt::MidButton;
|
|
case 0x03:
|
|
return Qt::BackButton;
|
|
case 0x04:
|
|
return Qt::ForwardButton;
|
|
case 0x05:
|
|
return Qt::ExtraButton3;
|
|
case 0x06:
|
|
return Qt::ExtraButton4;
|
|
case 0x07:
|
|
return Qt::ExtraButton5;
|
|
case 0x08:
|
|
return Qt::ExtraButton6;
|
|
case 0x09:
|
|
return Qt::ExtraButton7;
|
|
case 0x0a:
|
|
return Qt::ExtraButton8;
|
|
case 0x0b:
|
|
return Qt::ExtraButton9;
|
|
case 0x0c:
|
|
return Qt::ExtraButton10;
|
|
case 0x0d:
|
|
return Qt::ExtraButton11;
|
|
case 0x0e:
|
|
return Qt::ExtraButton12;
|
|
case 0x0f:
|
|
return Qt::ExtraButton13;
|
|
case 0x10:
|
|
return Qt::ExtraButton14;
|
|
case 0x11:
|
|
return Qt::ExtraButton15;
|
|
case 0x12:
|
|
return Qt::ExtraButton16;
|
|
case 0x13:
|
|
return Qt::ExtraButton17;
|
|
case 0x14:
|
|
return Qt::ExtraButton18;
|
|
case 0x15:
|
|
return Qt::ExtraButton19;
|
|
case 0x16:
|
|
return Qt::ExtraButton20;
|
|
case 0x17:
|
|
return Qt::ExtraButton21;
|
|
case 0x18:
|
|
return Qt::ExtraButton22;
|
|
case 0x19:
|
|
return Qt::ExtraButton23;
|
|
case 0x1a:
|
|
return Qt::ExtraButton24;
|
|
default:
|
|
return Qt::NoButton;
|
|
}
|
|
}
|
|
|
|
Qt::MouseButtons QDirectFbConvenience::mouseButtons(DFBInputDeviceButtonMask mask)
|
|
{
|
|
Qt::MouseButtons buttons = Qt::NoButton;
|
|
|
|
if (mask & DIBM_LEFT) {
|
|
buttons |= Qt::LeftButton;
|
|
}
|
|
if (mask & DIBM_MIDDLE) {
|
|
buttons |= Qt::MidButton;
|
|
}
|
|
if (mask & DIBM_RIGHT) {
|
|
buttons |= Qt::RightButton;
|
|
}
|
|
return buttons;
|
|
}
|
|
|
|
Qt::KeyboardModifiers QDirectFbConvenience::keyboardModifiers(DFBInputDeviceModifierMask mask)
|
|
{
|
|
Qt::KeyboardModifiers modifiers = Qt::NoModifier;
|
|
|
|
if (mask & DIMM_SHIFT) {
|
|
modifiers |= Qt::ShiftModifier;
|
|
}
|
|
if (mask & DIMM_ALT) {
|
|
modifiers |= Qt::AltModifier;
|
|
}
|
|
if (mask & DIMM_ALTGR) {
|
|
modifiers |= Qt::MetaModifier;
|
|
}
|
|
if (mask & DIMM_CONTROL) {
|
|
modifiers |= Qt::ControlModifier;
|
|
}
|
|
if (mask & DIMM_META) {
|
|
modifiers |= Qt::MetaModifier;
|
|
}
|
|
return modifiers;
|
|
}
|
|
|
|
QEvent::Type QDirectFbConvenience::eventType(DFBWindowEventType type)
|
|
{
|
|
switch(type) {
|
|
case DWET_BUTTONDOWN:
|
|
return QEvent::MouseButtonPress;
|
|
case DWET_BUTTONUP:
|
|
return QEvent::MouseButtonRelease;
|
|
case DWET_MOTION:
|
|
return QEvent::MouseMove;
|
|
case DWET_WHEEL:
|
|
return QEvent::Wheel;
|
|
case DWET_KEYDOWN:
|
|
return QEvent::KeyPress;
|
|
case DWET_KEYUP:
|
|
return QEvent::KeyRelease;
|
|
default:
|
|
return QEvent::None;
|
|
}
|
|
}
|
|
QDirectFbKeyMap *QDirectFbConvenience::dfbKeymap = 0;
|
|
QDirectFbKeyMap *QDirectFbConvenience::keyMap()
|
|
{
|
|
if (!dfbKeymap)
|
|
dfbKeymap = new QDirectFbKeyMap();
|
|
return dfbKeymap;
|
|
}
|
|
|
|
QDirectFbKeyMap::QDirectFbKeyMap()
|
|
{
|
|
insert(DIKS_BACKSPACE , Qt::Key_Backspace);
|
|
insert(DIKS_TAB , Qt::Key_Tab);
|
|
insert(DIKS_RETURN , Qt::Key_Return);
|
|
insert(DIKS_ESCAPE , Qt::Key_Escape);
|
|
insert(DIKS_DELETE , Qt::Key_Delete);
|
|
|
|
insert(DIKS_CURSOR_LEFT , Qt::Key_Left);
|
|
insert(DIKS_CURSOR_RIGHT , Qt::Key_Right);
|
|
insert(DIKS_CURSOR_UP , Qt::Key_Up);
|
|
insert(DIKS_CURSOR_DOWN , Qt::Key_Down);
|
|
insert(DIKS_INSERT , Qt::Key_Insert);
|
|
insert(DIKS_HOME , Qt::Key_Home);
|
|
insert(DIKS_END , Qt::Key_End);
|
|
insert(DIKS_PAGE_UP , Qt::Key_PageUp);
|
|
insert(DIKS_PAGE_DOWN , Qt::Key_PageDown);
|
|
insert(DIKS_PRINT , Qt::Key_Print);
|
|
insert(DIKS_PAUSE , Qt::Key_Pause);
|
|
insert(DIKS_SELECT , Qt::Key_Select);
|
|
insert(DIKS_GOTO , Qt::Key_OpenUrl);
|
|
insert(DIKS_CLEAR , Qt::Key_Clear);
|
|
insert(DIKS_MENU , Qt::Key_Menu);
|
|
insert(DIKS_HELP , Qt::Key_Help);
|
|
insert(DIKS_INFO , Qt::Key_Info);
|
|
insert(DIKS_EXIT , Qt::Key_Exit);
|
|
insert(DIKS_SETUP , Qt::Key_Settings);
|
|
|
|
insert(DIKS_CD , Qt::Key_CD);
|
|
insert(DIKS_INTERNET , Qt::Key_HomePage);
|
|
insert(DIKS_MAIL , Qt::Key_LaunchMail);
|
|
insert(DIKS_FAVORITES , Qt::Key_Favorites);
|
|
insert(DIKS_PHONE , Qt::Key_Phone);
|
|
insert(DIKS_PROGRAM , Qt::Key_Guide);
|
|
insert(DIKS_TIME , Qt::Key_Time);
|
|
|
|
insert(DIKS_RED , Qt::Key_Red);
|
|
insert(DIKS_GREEN , Qt::Key_Green);
|
|
insert(DIKS_YELLOW , Qt::Key_Yellow);
|
|
insert(DIKS_BLUE , Qt::Key_Blue);
|
|
|
|
insert(DIKS_CHANNEL_UP , Qt::Key_ChannelUp);
|
|
insert(DIKS_CHANNEL_DOWN , Qt::Key_ChannelDown);
|
|
|
|
insert(DIKS_BACK , Qt::Key_Back);
|
|
insert(DIKS_FORWARD , Qt::Key_Forward);
|
|
insert(DIKS_VOLUME_UP , Qt::Key_VolumeUp);
|
|
insert(DIKS_VOLUME_DOWN , Qt::Key_VolumeDown);
|
|
insert(DIKS_MUTE , Qt::Key_VolumeMute);
|
|
insert(DIKS_PLAYPAUSE , Qt::Key_MediaTogglePlayPause);
|
|
insert(DIKS_PLAY , Qt::Key_MediaPlay);
|
|
insert(DIKS_STOP , Qt::Key_MediaStop);
|
|
insert(DIKS_RECORD , Qt::Key_MediaRecord);
|
|
insert(DIKS_PREVIOUS , Qt::Key_MediaPrevious);
|
|
insert(DIKS_NEXT , Qt::Key_MediaNext);
|
|
insert(DIKS_REWIND , Qt::Key_AudioRewind);
|
|
insert(DIKS_FASTFORWARD , Qt::Key_AudioForward);
|
|
insert(DIKS_SUBTITLE , Qt::Key_Subtitle);
|
|
|
|
insert(DIKS_F1 , Qt::Key_F1);
|
|
insert(DIKS_F2 , Qt::Key_F2);
|
|
insert(DIKS_F3 , Qt::Key_F3);
|
|
insert(DIKS_F4 , Qt::Key_F4);
|
|
insert(DIKS_F5 , Qt::Key_F5);
|
|
insert(DIKS_F6 , Qt::Key_F6);
|
|
insert(DIKS_F7 , Qt::Key_F7);
|
|
insert(DIKS_F8 , Qt::Key_F8);
|
|
insert(DIKS_F9 , Qt::Key_F9);
|
|
insert(DIKS_F10 , Qt::Key_F10);
|
|
insert(DIKS_F11 , Qt::Key_F11);
|
|
insert(DIKS_F12 , Qt::Key_F12);
|
|
|
|
insert(DIKS_SHIFT , Qt::Key_Shift);
|
|
insert(DIKS_CONTROL , Qt::Key_Control);
|
|
insert(DIKS_ALT , Qt::Key_Alt);
|
|
insert(DIKS_ALTGR , Qt::Key_AltGr);
|
|
|
|
insert(DIKS_META , Qt::Key_Meta);
|
|
insert(DIKS_SUPER , Qt::Key_Super_L); // ???
|
|
insert(DIKS_HYPER , Qt::Key_Hyper_L); // ???
|
|
|
|
insert(DIKS_CAPS_LOCK , Qt::Key_CapsLock);
|
|
insert(DIKS_NUM_LOCK , Qt::Key_NumLock);
|
|
insert(DIKS_SCROLL_LOCK , Qt::Key_ScrollLock);
|
|
|
|
insert(DIKS_DEAD_ABOVEDOT , Qt::Key_Dead_Abovedot);
|
|
insert(DIKS_DEAD_ABOVERING , Qt::Key_Dead_Abovering);
|
|
insert(DIKS_DEAD_ACUTE , Qt::Key_Dead_Acute);
|
|
insert(DIKS_DEAD_BREVE , Qt::Key_Dead_Breve);
|
|
insert(DIKS_DEAD_CARON , Qt::Key_Dead_Caron);
|
|
insert(DIKS_DEAD_CEDILLA , Qt::Key_Dead_Cedilla);
|
|
insert(DIKS_DEAD_CIRCUMFLEX , Qt::Key_Dead_Circumflex);
|
|
insert(DIKS_DEAD_DIAERESIS , Qt::Key_Dead_Diaeresis);
|
|
insert(DIKS_DEAD_DOUBLEACUTE , Qt::Key_Dead_Doubleacute);
|
|
insert(DIKS_DEAD_GRAVE , Qt::Key_Dead_Grave);
|
|
insert(DIKS_DEAD_IOTA , Qt::Key_Dead_Iota);
|
|
insert(DIKS_DEAD_MACRON , Qt::Key_Dead_Macron);
|
|
insert(DIKS_DEAD_OGONEK , Qt::Key_Dead_Ogonek);
|
|
insert(DIKS_DEAD_SEMIVOICED_SOUND , Qt::Key_Dead_Semivoiced_Sound);
|
|
insert(DIKS_DEAD_TILDE , Qt::Key_Dead_Tilde);
|
|
insert(DIKS_DEAD_VOICED_SOUND , Qt::Key_Dead_Voiced_Sound);
|
|
insert(DIKS_SPACE , Qt::Key_Space);
|
|
insert(DIKS_EXCLAMATION_MARK , Qt::Key_Exclam);
|
|
insert(DIKS_QUOTATION , Qt::Key_QuoteDbl);
|
|
insert(DIKS_NUMBER_SIGN , Qt::Key_NumberSign);
|
|
insert(DIKS_DOLLAR_SIGN , Qt::Key_Dollar);
|
|
insert(DIKS_PERCENT_SIGN , Qt::Key_Percent);
|
|
insert(DIKS_AMPERSAND , Qt::Key_Ampersand);
|
|
insert(DIKS_APOSTROPHE , Qt::Key_Apostrophe);
|
|
insert(DIKS_PARENTHESIS_LEFT , Qt::Key_ParenLeft);
|
|
insert(DIKS_PARENTHESIS_RIGHT , Qt::Key_ParenRight);
|
|
insert(DIKS_ASTERISK , Qt::Key_Asterisk);
|
|
insert(DIKS_PLUS_SIGN , Qt::Key_Plus);
|
|
insert(DIKS_COMMA , Qt::Key_Comma);
|
|
insert(DIKS_MINUS_SIGN , Qt::Key_Minus);
|
|
insert(DIKS_PERIOD , Qt::Key_Period);
|
|
insert(DIKS_SLASH , Qt::Key_Slash);
|
|
insert(DIKS_0 , Qt::Key_0);
|
|
insert(DIKS_1 , Qt::Key_1);
|
|
insert(DIKS_2 , Qt::Key_2);
|
|
insert(DIKS_3 , Qt::Key_3);
|
|
insert(DIKS_4 , Qt::Key_4);
|
|
insert(DIKS_5 , Qt::Key_5);
|
|
insert(DIKS_6 , Qt::Key_6);
|
|
insert(DIKS_7 , Qt::Key_7);
|
|
insert(DIKS_8 , Qt::Key_8);
|
|
insert(DIKS_9 , Qt::Key_9);
|
|
insert(DIKS_COLON , Qt::Key_Colon);
|
|
insert(DIKS_SEMICOLON , Qt::Key_Semicolon);
|
|
insert(DIKS_LESS_THAN_SIGN , Qt::Key_Less);
|
|
insert(DIKS_EQUALS_SIGN , Qt::Key_Equal);
|
|
insert(DIKS_GREATER_THAN_SIGN , Qt::Key_Greater);
|
|
insert(DIKS_QUESTION_MARK , Qt::Key_Question);
|
|
insert(DIKS_AT , Qt::Key_At);
|
|
insert(DIKS_CAPITAL_A , Qt::Key_A);
|
|
insert(DIKS_CAPITAL_B , Qt::Key_B);
|
|
insert(DIKS_CAPITAL_C , Qt::Key_C);
|
|
insert(DIKS_CAPITAL_D , Qt::Key_D);
|
|
insert(DIKS_CAPITAL_E , Qt::Key_E);
|
|
insert(DIKS_CAPITAL_F , Qt::Key_F);
|
|
insert(DIKS_CAPITAL_G , Qt::Key_G);
|
|
insert(DIKS_CAPITAL_H , Qt::Key_H);
|
|
insert(DIKS_CAPITAL_I , Qt::Key_I);
|
|
insert(DIKS_CAPITAL_J , Qt::Key_J);
|
|
insert(DIKS_CAPITAL_K , Qt::Key_K);
|
|
insert(DIKS_CAPITAL_L , Qt::Key_L);
|
|
insert(DIKS_CAPITAL_M , Qt::Key_M);
|
|
insert(DIKS_CAPITAL_N , Qt::Key_N);
|
|
insert(DIKS_CAPITAL_O , Qt::Key_O);
|
|
insert(DIKS_CAPITAL_P , Qt::Key_P);
|
|
insert(DIKS_CAPITAL_Q , Qt::Key_Q);
|
|
insert(DIKS_CAPITAL_R , Qt::Key_R);
|
|
insert(DIKS_CAPITAL_S , Qt::Key_S);
|
|
insert(DIKS_CAPITAL_T , Qt::Key_T);
|
|
insert(DIKS_CAPITAL_U , Qt::Key_U);
|
|
insert(DIKS_CAPITAL_V , Qt::Key_V);
|
|
insert(DIKS_CAPITAL_W , Qt::Key_W);
|
|
insert(DIKS_CAPITAL_X , Qt::Key_X);
|
|
insert(DIKS_CAPITAL_Y , Qt::Key_Y);
|
|
insert(DIKS_CAPITAL_Z , Qt::Key_Z);
|
|
insert(DIKS_SQUARE_BRACKET_LEFT , Qt::Key_BracketLeft);
|
|
insert(DIKS_BACKSLASH , Qt::Key_Backslash);
|
|
insert(DIKS_SQUARE_BRACKET_RIGHT , Qt::Key_BracketRight);
|
|
insert(DIKS_CIRCUMFLEX_ACCENT , Qt::Key_AsciiCircum);
|
|
insert(DIKS_UNDERSCORE , Qt::Key_Underscore);
|
|
insert(DIKS_SMALL_A , Qt::Key_A);
|
|
insert(DIKS_SMALL_B , Qt::Key_B);
|
|
insert(DIKS_SMALL_C , Qt::Key_C);
|
|
insert(DIKS_SMALL_D , Qt::Key_D);
|
|
insert(DIKS_SMALL_E , Qt::Key_E);
|
|
insert(DIKS_SMALL_F , Qt::Key_F);
|
|
insert(DIKS_SMALL_G , Qt::Key_G);
|
|
insert(DIKS_SMALL_H , Qt::Key_H);
|
|
insert(DIKS_SMALL_I , Qt::Key_I);
|
|
insert(DIKS_SMALL_J , Qt::Key_J);
|
|
insert(DIKS_SMALL_K , Qt::Key_K);
|
|
insert(DIKS_SMALL_L , Qt::Key_L);
|
|
insert(DIKS_SMALL_M , Qt::Key_M);
|
|
insert(DIKS_SMALL_N , Qt::Key_N);
|
|
insert(DIKS_SMALL_O , Qt::Key_O);
|
|
insert(DIKS_SMALL_P , Qt::Key_P);
|
|
insert(DIKS_SMALL_Q , Qt::Key_Q);
|
|
insert(DIKS_SMALL_R , Qt::Key_R);
|
|
insert(DIKS_SMALL_S , Qt::Key_S);
|
|
insert(DIKS_SMALL_T , Qt::Key_T);
|
|
insert(DIKS_SMALL_U , Qt::Key_U);
|
|
insert(DIKS_SMALL_V , Qt::Key_V);
|
|
insert(DIKS_SMALL_W , Qt::Key_W);
|
|
insert(DIKS_SMALL_X , Qt::Key_X);
|
|
insert(DIKS_SMALL_Y , Qt::Key_Y);
|
|
insert(DIKS_SMALL_Z , Qt::Key_Z);
|
|
insert(DIKS_CURLY_BRACKET_LEFT , Qt::Key_BraceLeft);
|
|
insert(DIKS_VERTICAL_BAR , Qt::Key_Bar);
|
|
insert(DIKS_CURLY_BRACKET_RIGHT , Qt::Key_BraceRight);
|
|
insert(DIKS_TILDE , Qt::Key_AsciiTilde);
|
|
}
|
|
|
|
QDirectFbScreen *toDfbScreen(QWindow *window)
|
|
{
|
|
return static_cast<QDirectFbScreen*>(window->screen()->handle());
|
|
}
|
|
|
|
IDirectFBDisplayLayer *toDfbLayer(QPlatformScreen *screen)
|
|
{
|
|
return static_cast<QDirectFbScreen*>(screen)->dfbLayer();
|
|
}
|
|
|
|
QT_END_NAMESPACE
|