VirtualBox

Ignore:
Timestamp:
Jun 21, 2019 1:19:52 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:6143. Rendering the key captions a bit differently.

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp

    r79249 r79277  
    2727#include <QMenu>
    2828#include <QPainter>
     29#include <QPicture>
    2930#include <QPushButton>
    3031#include <QSplitter>
     
    8485    QString m_strShift;
    8586    QString m_strAltGr;
     87    QString m_strShiftAltGr;
    8688};
    8789
     
    147149    void sltKeyShiftCaptionChange(const QString &strCaption);
    148150    void sltKeyAltGrCaptionChange(const QString &strCaption);
     151    void sltKeyShiftAltGrCaptionChange(const QString &strCaption);
    149152    void sltPhysicalLayoutChanged();
    150153    void sltLayoutNameChanged(const QString &strCaption);
     
    156159    QWidget *prepareKeyCaptionEditWidgets();
    157160    void reset();
    158 
     161    void resetKeyWidgets();
    159162    QGridLayout *m_pEditorLayout;
    160163    QToolButton *m_pGoBackButton;
     
    171174    QLabel *m_pShiftCaptionLabel;
    172175    QLabel *m_pAltGrCaptionLabel;
     176    QLabel *m_pShiftAltGrCaptionLabel;
    173177
    174178    QLineEdit *m_pLayoutNameEdit;
     
    178182    QLineEdit *m_pShiftCaptionEdit;
    179183    QLineEdit *m_pAltGrCaptionEdit;
     184    QLineEdit *m_pShiftAltGrCaptionEdit;
    180185
    181186    /** The key which is being currently edited. Might be Null. */
     
    285290    void  setAltGrCaption(const QString &strAltGrCaption);
    286291
     292    const QString shiftAltGrCaption() const;
     293    void  setShiftAltGrCaption(const QString &strAltGrCaption);
     294
    287295    const QString text() const;
    288296
     
    325333    int cutoutWidth() const;
    326334    int cutoutHeight() const;
    327 
     335    QPicture m_textPixmap;
    328336private:
    329337
     
    336344    QString    m_strShiftCaption;
    337345    QString    m_strAltGrCaption;
     346    QString    m_strShiftAltGrCaption;
     347
    338348    /** m_strText is concatenation of base, shift, and altgr captions. */
    339349    QString    m_strText;
     
    617627    , m_pShiftCaptionLabel(0)
    618628    , m_pAltGrCaptionLabel(0)
     629    , m_pShiftAltGrCaptionLabel(0)
    619630    , m_pLayoutNameEdit(0)
    620631    , m_pScanCodeEdit(0)
     
    623634    , m_pShiftCaptionEdit(0)
    624635    , m_pAltGrCaptionEdit(0)
     636    , m_pShiftAltGrCaptionEdit(0)
    625637    , m_pKey(0)
    626638    , m_pLayout(0)
     
    643655        if (m_pKey->altGrCaption() != m_pAltGrCaptionEdit->text())
    644656            m_pKey->setAltGrCaption(m_pAltGrCaptionEdit->text());
     657        if (m_pKey->shiftAltGrCaption() != m_pShiftAltGrCaptionEdit->text())
     658            m_pKey->setShiftAltGrCaption(m_pShiftAltGrCaptionEdit->text());
    645659    }
    646660
     
    649663        m_pSelectedKeyGroupBox->setEnabled(m_pKey);
    650664    if (!m_pKey)
    651         return;
     665    {
     666        resetKeyWidgets();
     667        return;
     668    }
    652669    if (m_pScanCodeEdit)
    653670        m_pScanCodeEdit->setText(QString::number(m_pKey->scanCode(), 16));
     
    660677    if (m_pAltGrCaptionEdit)
    661678        m_pAltGrCaptionEdit->setText(m_pKey->altGrCaption());
     679    if (m_pShiftAltGrCaptionEdit)
     680        m_pShiftAltGrCaptionEdit->setText(m_pKey->shiftAltGrCaption());
    662681}
    663682
     
    712731    if (m_pAltGrCaptionLabel)
    713732        m_pAltGrCaptionLabel->setText(UISoftKeyboard::tr("AltGr"));
     733   if (m_pShiftAltGrCaptionLabel)
     734        m_pShiftAltGrCaptionLabel->setText(UISoftKeyboard::tr("ShiftAltGr"));
    714735    if (m_pCaptionEditGroupBox)
    715736        m_pCaptionEditGroupBox->setTitle(UISoftKeyboard::tr("Captions"));
     
    739760        return;
    740761    m_pKey->setAltGrCaption(strCaption);
     762    emit sigKeyCaptionsEdited(m_pKey);
     763}
     764
     765void UILayoutEditor::sltKeyShiftAltGrCaptionChange(const QString &strCaption)
     766{
     767    if (!m_pKey  || m_pKey->shiftAltGrCaption() == strCaption)
     768        return;
     769    m_pKey->setShiftAltGrCaption(strCaption);
    741770    emit sigKeyCaptionsEdited(m_pKey);
    742771}
     
    863892    connect(m_pAltGrCaptionEdit, &QLineEdit::textChanged, this, &UILayoutEditor::sltKeyAltGrCaptionChange);
    864893
     894    m_pShiftAltGrCaptionLabel = new QLabel;
     895    m_pShiftAltGrCaptionEdit = new QLineEdit;
     896    m_pShiftAltGrCaptionLabel->setBuddy(m_pShiftAltGrCaptionEdit);
     897    pCaptionEditorLayout->addWidget(m_pShiftAltGrCaptionLabel, 3, 0);
     898    pCaptionEditorLayout->addWidget(m_pShiftAltGrCaptionEdit, 3, 1);
     899    connect(m_pShiftAltGrCaptionEdit, &QLineEdit::textChanged, this, &UILayoutEditor::sltKeyShiftAltGrCaptionChange);
     900
     901
    865902    QSpacerItem *pSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding);
    866903    if (pSpacer)
     
    873910    if (m_pLayoutNameEdit)
    874911        m_pLayoutNameEdit->clear();
     912    resetKeyWidgets();
     913}
     914
     915void UILayoutEditor::resetKeyWidgets()
     916{
    875917    if (m_pScanCodeEdit)
    876918        m_pScanCodeEdit->clear();
     
    883925    if (m_pAltGrCaptionEdit)
    884926        m_pAltGrCaptionEdit->clear();
     927    if (m_pShiftAltGrCaptionEdit)
     928        m_pShiftAltGrCaptionEdit->clear();
    885929}
    886930
     
    11231167}
    11241168
     1169const QString UISoftKeyboardKey::shiftAltGrCaption() const
     1170{
     1171    return m_strShiftAltGrCaption;
     1172}
     1173
     1174void UISoftKeyboardKey::setShiftAltGrCaption(const QString &strShiftAltGrCaption)
     1175{
     1176    m_strShiftAltGrCaption = strShiftAltGrCaption;
     1177    updateText();
     1178}
     1179
    11251180const QString UISoftKeyboardKey::text() const
    11261181{
     
    13001355void UISoftKeyboardKey::updateText()
    13011356{
    1302     m_strText.clear();
     1357
     1358    QPainter painter(&m_textPixmap);
     1359    painter.setPen(QColor(0,0,0));
     1360    painter.setRenderHint(QPainter::Antialiasing);
     1361    QFont painterFont(painter.font());
     1362
     1363    painterFont.setPixelSize(15);
     1364    painterFont.setBold(true);
     1365    painter.setFont(painterFont);
     1366    QFontMetrics fontMetric = painter.fontMetrics();
     1367    int iSideMargin = 1 * fontMetric.width('X');
     1368
     1369    int iX = 0;
     1370    int iY = fontMetric.height();
    13031371    if (!m_strShiftCaption.isEmpty())
    1304         m_strText += QString("%1\n").arg(m_strShiftCaption);
    1305     if (!m_strBaseCaption.isEmpty())
    1306         m_strText += QString("%1\n").arg(m_strBaseCaption);
    1307     if (!m_strAltGrCaption.isEmpty())
    1308         m_strText += QString("%1\n").arg(m_strAltGrCaption);
     1372    {
     1373        painter.drawText(iX + iSideMargin, iY, m_strShiftCaption);
     1374        painter.drawText(iX + iSideMargin, 2 * iY, m_strBaseCaption);
     1375    }
     1376    else
     1377    {
     1378        int iSpaceIndex = m_strBaseCaption.indexOf(" " );
     1379        if (iSpaceIndex == -1)
     1380            painter.drawText(iX + iSideMargin, iY, m_strBaseCaption);
     1381        else
     1382        {
     1383            painter.drawText(iX + iSideMargin, iY, m_strBaseCaption.left(iSpaceIndex));
     1384            painter.drawText(iX + iSideMargin, 2 * iY, m_strBaseCaption.right(m_strBaseCaption.length() - iSpaceIndex - 1));
     1385        }
     1386    }
     1387
     1388    if (!m_strShiftAltGrCaption.isEmpty())
     1389    {
     1390        painter.drawText(keyGeometry().width() - fontMetric.width('X') - iSideMargin, iY, m_strShiftAltGrCaption);
     1391        painter.drawText(keyGeometry().width() - fontMetric.width('X') - iSideMargin, 2 * iY, m_strAltGrCaption);
     1392    }
     1393    else
     1394        painter.drawText(keyGeometry().width() - fontMetric.width('X') - iSideMargin, 2 * iY, m_strAltGrCaption);
     1395
     1396    painter.end();
    13091397}
    13101398
     
    14571545    QFont painterFont(font());
    14581546    painterFont.setPixelSize(15);
    1459     painterFont.setBold(false);
     1547    painterFont.setBold(true);
    14601548    painter.setFont(painterFont);
    14611549    painter.setRenderHint(QPainter::Antialiasing);
     
    14951583            painter.drawPolygon(key.polygon());
    14961584
    1497 
    1498             QRect textRect(0.55 * unitSize, 1 * unitSize
    1499                            , key.keyGeometry().width(), key.keyGeometry().height());
    1500             if (m_pShowPositionsAction && m_pShowPositionsAction->isChecked())
    1501                 painter.drawText(textRect, Qt::TextWordWrap, QString::number(key.position()));
    1502             else
    1503                 painter.drawText(textRect, Qt::TextWordWrap, key.text());
     1585            key.m_textPixmap.play(&painter);
    15041586
    15051587            if (key.type() != UIKeyType_Ordinary)
     
    16401722           xmlWriter.writeTextElement("shiftcaption", key.shiftCaption());
    16411723           xmlWriter.writeTextElement("altgrcaption", key.altGrCaption());
     1724           xmlWriter.writeTextElement("shiftaltgrcaption", key.shiftAltGrCaption());
    16421725           xmlWriter.writeEndElement();
    16431726       }
     
    17121795        m_pKeyBeingEdited = 0;
    17131796    }
     1797    update();
    17141798}
    17151799
     
    17241808    newCaptions.m_strShift = pKey->shiftCaption();
    17251809    newCaptions.m_strAltGr = pKey->altGrCaption();
     1810    newCaptions.m_strShiftAltGr = pKey->shiftAltGrCaption();
    17261811    m_pCurrentKeyboardLayout->updateKeyCaptions(pKey->position(), newCaptions);
    17271812}
     
    20572142            key.setShiftCaption(captions.m_strShift);
    20582143            key.setAltGrCaption(captions.m_strAltGr);
     2144            key.setShiftAltGrCaption(captions.m_strShiftAltGr);
    20592145        }
    20602146    }
     
    23752461        else if (m_xmlReader.name() == "altgrcaption")
    23762462            keyCaptions.m_strAltGr = m_xmlReader.readElementText();
     2463        else if (m_xmlReader.name() == "shiftaltgrcaption")
     2464            keyCaptions.m_strShiftAltGr = m_xmlReader.readElementText();
    23772465        else if (m_xmlReader.name() == "position")
    23782466            iKeyPosition = m_xmlReader.readElementText().toInt();
     
    25222610    if (m_pKeyboardWidget)
    25232611        m_pKeyboardWidget->toggleEditMode(false);
     2612    if (m_pLayoutEditor)
     2613        m_pLayoutEditor->setKey(0);
    25242614}
    25252615
  • trunk/src/VBox/Frontends/VirtualBox/xml/us_international.xml

    r79130 r79277  
    88        <shiftcaption></shiftcaption>
    99        <altgrcaption></altgrcaption>
     10        <shiftaltgrcaption></shiftaltgrcaption>
    1011    </key>
    1112    <key>
     
    1415        <shiftcaption></shiftcaption>
    1516        <altgrcaption></altgrcaption>
     17        <shiftaltgrcaption></shiftaltgrcaption>
    1618    </key>
    1719    <key>
     
    2022        <shiftcaption></shiftcaption>
    2123        <altgrcaption></altgrcaption>
     24        <shiftaltgrcaption></shiftaltgrcaption>
    2225    </key>
    2326    <key>
     
    2629        <shiftcaption></shiftcaption>
    2730        <altgrcaption></altgrcaption>
     31        <shiftaltgrcaption></shiftaltgrcaption>
    2832    </key>
    2933    <key>
     
    3236        <shiftcaption></shiftcaption>
    3337        <altgrcaption></altgrcaption>
     38        <shiftaltgrcaption></shiftaltgrcaption>
    3439    </key>
    3540    <key>
     
    3843        <shiftcaption></shiftcaption>
    3944        <altgrcaption></altgrcaption>
     45        <shiftaltgrcaption></shiftaltgrcaption>
    4046    </key>
    4147    <key>
     
    4450        <shiftcaption></shiftcaption>
    4551        <altgrcaption></altgrcaption>
     52        <shiftaltgrcaption></shiftaltgrcaption>
    4653    </key>
    4754    <key>
     
    5057        <shiftcaption></shiftcaption>
    5158        <altgrcaption></altgrcaption>
     59        <shiftaltgrcaption></shiftaltgrcaption>
    5260    </key>
    5361    <key>
     
    5664        <shiftcaption></shiftcaption>
    5765        <altgrcaption></altgrcaption>
     66        <shiftaltgrcaption></shiftaltgrcaption>
    5867    </key>
    5968    <key>
     
    6271        <shiftcaption></shiftcaption>
    6372        <altgrcaption></altgrcaption>
     73        <shiftaltgrcaption></shiftaltgrcaption>
    6474    </key>
    6575    <key>
     
    6878        <shiftcaption></shiftcaption>
    6979        <altgrcaption></altgrcaption>
     80        <shiftaltgrcaption></shiftaltgrcaption>
    7081    </key>
    7182    <key>
     
    7485        <shiftcaption></shiftcaption>
    7586        <altgrcaption></altgrcaption>
     87        <shiftaltgrcaption></shiftaltgrcaption>
    7688    </key>
    7789    <key>
     
    8092        <shiftcaption></shiftcaption>
    8193        <altgrcaption></altgrcaption>
     94        <shiftaltgrcaption></shiftaltgrcaption>
    8295    </key>
    8396    <key>
    8497        <position>124</position>
    85         <basecaption></basecaption>
    86         <shiftcaption></shiftcaption>
    87         <altgrcaption></altgrcaption>
     98        <basecaption>Prt Scrn</basecaption>
     99        <shiftcaption>Sys Rq</shiftcaption>
     100        <altgrcaption></altgrcaption>
     101        <shiftaltgrcaption></shiftaltgrcaption>
    88102    </key>
    89103    <key>
    90104        <position>125</position>
    91         <basecaption></basecaption>
    92         <shiftcaption></shiftcaption>
    93         <altgrcaption></altgrcaption>
     105        <basecaption>Scroll Lock</basecaption>
     106        <shiftcaption></shiftcaption>
     107        <altgrcaption></altgrcaption>
     108        <shiftaltgrcaption></shiftaltgrcaption>
    94109    </key>
    95110    <key>
    96111        <position>126</position>
    97         <basecaption></basecaption>
    98         <shiftcaption></shiftcaption>
    99         <altgrcaption></altgrcaption>
     112        <basecaption>Pause Break</basecaption>
     113        <shiftcaption></shiftcaption>
     114        <altgrcaption></altgrcaption>
     115        <shiftaltgrcaption></shiftaltgrcaption>
    100116    </key>
    101117    <key>
     
    104120        <shiftcaption>~</shiftcaption>
    105121        <altgrcaption></altgrcaption>
     122        <shiftaltgrcaption></shiftaltgrcaption>
    106123    </key>
    107124    <key>
     
    109126        <basecaption>1</basecaption>
    110127        <shiftcaption>!</shiftcaption>
    111         <altgrcaption></altgrcaption>
     128        <altgrcaption>¹</altgrcaption>
     129        <shiftaltgrcaption>¡</shiftaltgrcaption>
    112130    </key>
    113131    <key>
     
    115133        <basecaption>2</basecaption>
    116134        <shiftcaption>@</shiftcaption>
    117         <altgrcaption></altgrcaption>
     135        <altgrcaption>²</altgrcaption>
     136        <shiftaltgrcaption></shiftaltgrcaption>
    118137    </key>
    119138    <key>
     
    121140        <basecaption>3</basecaption>
    122141        <shiftcaption>#</shiftcaption>
    123         <altgrcaption></altgrcaption>
     142        <altgrcaption>³</altgrcaption>
     143        <shiftaltgrcaption></shiftaltgrcaption>
    124144    </key>
    125145    <key>
     
    127147        <basecaption>4</basecaption>
    128148        <shiftcaption>$</shiftcaption>
    129         <altgrcaption></altgrcaption>
     149        <altgrcaption>¤</altgrcaption>
     150        <shiftaltgrcaption></shiftaltgrcaption>
    130151    </key>
    131152    <key>
    132153        <position>6</position>
    133         <basecaption></basecaption>
    134         <shiftcaption></shiftcaption>
    135         <altgrcaption></altgrcaption>
     154        <basecaption>5</basecaption>
     155        <shiftcaption>%</shiftcaption>
     156        <altgrcaption>€</altgrcaption>
     157        <shiftaltgrcaption></shiftaltgrcaption>
    136158    </key>
    137159    <key>
    138160        <position>7</position>
    139         <basecaption></basecaption>
    140         <shiftcaption></shiftcaption>
    141         <altgrcaption></altgrcaption>
     161        <basecaption>6</basecaption>
     162        <shiftcaption>^</shiftcaption>
     163        <altgrcaption>¼</altgrcaption>
     164        <shiftaltgrcaption></shiftaltgrcaption>
    142165    </key>
    143166    <key>
    144167        <position>8</position>
    145         <basecaption></basecaption>
    146         <shiftcaption></shiftcaption>
    147         <altgrcaption></altgrcaption>
     168        <basecaption>7</basecaption>
     169        <shiftcaption>&amp;</shiftcaption>
     170        <altgrcaption>½</altgrcaption>
     171        <shiftaltgrcaption></shiftaltgrcaption>
    148172    </key>
    149173    <key>
    150174        <position>9</position>
    151         <basecaption></basecaption>
    152         <shiftcaption></shiftcaption>
    153         <altgrcaption></altgrcaption>
     175        <basecaption>8</basecaption>
     176        <shiftcaption>*</shiftcaption>
     177        <altgrcaption>¾</altgrcaption>
     178        <shiftaltgrcaption></shiftaltgrcaption>
    154179    </key>
    155180    <key>
    156181        <position>10</position>
    157         <basecaption></basecaption>
    158         <shiftcaption></shiftcaption>
    159         <altgrcaption></altgrcaption>
     182        <basecaption>9</basecaption>
     183        <shiftcaption>(</shiftcaption>
     184        <altgrcaption>‘</altgrcaption>
     185        <shiftaltgrcaption></shiftaltgrcaption>
    160186    </key>
    161187    <key>
    162188        <position>11</position>
    163         <basecaption></basecaption>
    164         <shiftcaption></shiftcaption>
    165         <altgrcaption></altgrcaption>
     189        <basecaption>0</basecaption>
     190        <shiftcaption>)</shiftcaption>
     191        <altgrcaption>’</altgrcaption>
     192        <shiftaltgrcaption></shiftaltgrcaption>
    166193    </key>
    167194    <key>
    168195        <position>12</position>
    169         <basecaption></basecaption>
    170         <shiftcaption></shiftcaption>
    171         <altgrcaption></altgrcaption>
     196        <basecaption>-</basecaption>
     197        <shiftcaption>_</shiftcaption>
     198        <altgrcaption>¥</altgrcaption>
     199        <shiftaltgrcaption></shiftaltgrcaption>
    172200    </key>
    173201    <key>
    174202        <position>13</position>
    175         <basecaption></basecaption>
    176         <shiftcaption></shiftcaption>
    177         <altgrcaption></altgrcaption>
     203        <basecaption>=</basecaption>
     204        <shiftcaption>+</shiftcaption>
     205        <altgrcaption>×</altgrcaption>
     206        <shiftaltgrcaption>÷</shiftaltgrcaption>
    178207    </key>
    179208    <key>
    180209        <position>15</position>
    181         <basecaption></basecaption>
    182         <shiftcaption></shiftcaption>
    183         <altgrcaption></altgrcaption>
     210        <basecaption>Backspace</basecaption>
     211        <shiftcaption></shiftcaption>
     212        <altgrcaption></altgrcaption>
     213        <shiftaltgrcaption></shiftaltgrcaption>
    184214    </key>
    185215    <key>
    186216        <position>75</position>
    187         <basecaption></basecaption>
     217        <basecaption>Insert</basecaption>
    188218        <shiftcaption></shiftcaption>
    189219        <altgrcaption></altgrcaption>
     
    191221    <key>
    192222        <position>80</position>
    193         <basecaption></basecaption>
     223        <basecaption>Home</basecaption>
    194224        <shiftcaption></shiftcaption>
    195225        <altgrcaption></altgrcaption>
     
    197227    <key>
    198228        <position>85</position>
    199         <basecaption></basecaption>
     229        <basecaption>Page Up</basecaption>
    200230        <shiftcaption></shiftcaption>
    201231        <altgrcaption></altgrcaption>
     
    206236        <shiftcaption></shiftcaption>
    207237        <altgrcaption></altgrcaption>
     238        <shiftaltgrcaption></shiftaltgrcaption>
    208239    </key>
    209240    <key>
    210241        <position>17</position>
    211         <basecaption></basecaption>
    212         <shiftcaption></shiftcaption>
    213         <altgrcaption></altgrcaption>
     242        <basecaption>Q</basecaption>
     243        <shiftcaption></shiftcaption>
     244        <altgrcaption>Ä</altgrcaption>
     245        <shiftaltgrcaption></shiftaltgrcaption>
    214246    </key>
    215247    <key>
    216248        <position>18</position>
    217         <basecaption></basecaption>
    218         <shiftcaption></shiftcaption>
    219         <altgrcaption></altgrcaption>
     249        <basecaption>W</basecaption>
     250        <shiftcaption></shiftcaption>
     251        <altgrcaption>Å</altgrcaption>
     252        <shiftaltgrcaption></shiftaltgrcaption>
    220253    </key>
    221254    <key>
    222255        <position>19</position>
    223         <basecaption></basecaption>
    224         <shiftcaption></shiftcaption>
    225         <altgrcaption></altgrcaption>
     256        <basecaption>E</basecaption>
     257        <shiftcaption></shiftcaption>
     258        <altgrcaption>É</altgrcaption>
     259        <shiftaltgrcaption></shiftaltgrcaption>
    226260    </key>
    227261    <key>
    228262        <position>20</position>
    229         <basecaption></basecaption>
    230         <shiftcaption></shiftcaption>
    231         <altgrcaption></altgrcaption>
     263        <basecaption>R</basecaption>
     264        <shiftcaption></shiftcaption>
     265        <altgrcaption>®</altgrcaption>
     266        <shiftaltgrcaption></shiftaltgrcaption>
    232267    </key>
    233268    <key>
    234269        <position>21</position>
    235         <basecaption></basecaption>
    236         <shiftcaption></shiftcaption>
    237         <altgrcaption></altgrcaption>
     270        <basecaption>T</basecaption>
     271        <shiftcaption></shiftcaption>
     272        <altgrcaption>Þ</altgrcaption>
     273        <shiftaltgrcaption></shiftaltgrcaption>
    238274    </key>
    239275    <key>
    240276        <position>22</position>
    241         <basecaption></basecaption>
    242         <shiftcaption></shiftcaption>
    243         <altgrcaption></altgrcaption>
     277        <basecaption>Y</basecaption>
     278        <shiftcaption></shiftcaption>
     279        <altgrcaption>Ü</altgrcaption>
     280        <shiftaltgrcaption></shiftaltgrcaption>
    244281    </key>
    245282    <key>
    246283        <position>23</position>
    247         <basecaption></basecaption>
    248         <shiftcaption></shiftcaption>
    249         <altgrcaption></altgrcaption>
     284        <basecaption>U</basecaption>
     285        <shiftcaption></shiftcaption>
     286        <altgrcaption>Ú</altgrcaption>
     287        <shiftaltgrcaption></shiftaltgrcaption>
    250288    </key>
    251289    <key>
    252290        <position>24</position>
    253         <basecaption></basecaption>
    254         <shiftcaption></shiftcaption>
    255         <altgrcaption></altgrcaption>
     291        <basecaption>I</basecaption>
     292        <shiftcaption></shiftcaption>
     293        <altgrcaption>Í</altgrcaption>
     294        <shiftaltgrcaption></shiftaltgrcaption>
    256295    </key>
    257296    <key>
    258297        <position>25</position>
    259         <basecaption></basecaption>
    260         <shiftcaption></shiftcaption>
    261         <altgrcaption></altgrcaption>
     298        <basecaption>O</basecaption>
     299        <shiftcaption></shiftcaption>
     300        <altgrcaption>Ó</altgrcaption>
     301        <shiftaltgrcaption></shiftaltgrcaption>
    262302    </key>
    263303    <key>
    264304        <position>26</position>
    265         <basecaption></basecaption>
    266         <shiftcaption></shiftcaption>
    267         <altgrcaption></altgrcaption>
     305        <basecaption>p</basecaption>
     306        <shiftcaption></shiftcaption>
     307        <altgrcaption>Ö</altgrcaption>
     308        <shiftaltgrcaption></shiftaltgrcaption>
    268309    </key>
    269310    <key>
    270311        <position>27</position>
    271         <basecaption></basecaption>
    272         <shiftcaption></shiftcaption>
    273         <altgrcaption></altgrcaption>
     312        <basecaption>[</basecaption>
     313        <shiftcaption>{</shiftcaption>
     314        <altgrcaption>«</altgrcaption>
     315        <shiftaltgrcaption></shiftaltgrcaption>
    274316    </key>
    275317    <key>
    276318        <position>28</position>
    277         <basecaption></basecaption>
    278         <shiftcaption></shiftcaption>
    279         <altgrcaption></altgrcaption>
     319        <basecaption>]</basecaption>
     320        <shiftcaption>}</shiftcaption>
     321        <altgrcaption>»</altgrcaption>
     322        <shiftaltgrcaption></shiftaltgrcaption>
    280323    </key>
    281324    <key>
    282325        <position>29</position>
    283         <basecaption></basecaption>
    284         <shiftcaption></shiftcaption>
    285         <altgrcaption></altgrcaption>
     326        <basecaption>\</basecaption>
     327        <shiftcaption>|</shiftcaption>
     328        <altgrcaption>¬</altgrcaption>
     329        <shiftaltgrcaption>¦</shiftaltgrcaption>
    286330    </key>
    287331    <key>
    288332        <position>76</position>
    289         <basecaption></basecaption>
     333        <basecaption>Delete</basecaption>
    290334        <shiftcaption></shiftcaption>
    291335        <altgrcaption></altgrcaption>
     
    293337    <key>
    294338        <position>81</position>
    295         <basecaption></basecaption>
     339        <basecaption>End</basecaption>
    296340        <shiftcaption></shiftcaption>
    297341        <altgrcaption></altgrcaption>
     
    299343    <key>
    300344        <position>86</position>
    301         <basecaption></basecaption>
     345        <basecaption>Page Down</basecaption>
    302346        <shiftcaption></shiftcaption>
    303347        <altgrcaption></altgrcaption>
     
    308352        <shiftcaption></shiftcaption>
    309353        <altgrcaption></altgrcaption>
     354        <shiftaltgrcaption></shiftaltgrcaption>
    310355    </key>
    311356    <key>
    312357        <position>31</position>
    313         <basecaption></basecaption>
    314         <shiftcaption></shiftcaption>
    315         <altgrcaption></altgrcaption>
     358        <basecaption>A</basecaption>
     359        <shiftcaption></shiftcaption>
     360        <altgrcaption>Á</altgrcaption>
     361        <shiftaltgrcaption></shiftaltgrcaption>
    316362    </key>
    317363    <key>
    318364        <position>32</position>
    319         <basecaption></basecaption>
    320         <shiftcaption></shiftcaption>
    321         <altgrcaption></altgrcaption>
     365        <basecaption>S</basecaption>
     366        <shiftcaption></shiftcaption>
     367        <altgrcaption>ß</altgrcaption>
     368        <shiftaltgrcaption>§</shiftaltgrcaption>
    322369    </key>
    323370    <key>
    324371        <position>33</position>
    325         <basecaption></basecaption>
    326         <shiftcaption></shiftcaption>
    327         <altgrcaption></altgrcaption>
     372        <basecaption>D</basecaption>
     373        <shiftcaption></shiftcaption>
     374        <altgrcaption></altgrcaption>
     375        <shiftaltgrcaption>Ð</shiftaltgrcaption>
    328376    </key>
    329377    <key>
    330378        <position>34</position>
    331         <basecaption></basecaption>
    332         <shiftcaption></shiftcaption>
    333         <altgrcaption></altgrcaption>
     379        <basecaption>F</basecaption>
     380        <shiftcaption></shiftcaption>
     381        <altgrcaption></altgrcaption>
     382        <shiftaltgrcaption></shiftaltgrcaption>
    334383    </key>
    335384    <key>
    336385        <position>35</position>
    337         <basecaption></basecaption>
    338         <shiftcaption></shiftcaption>
    339         <altgrcaption></altgrcaption>
     386        <basecaption>G</basecaption>
     387        <shiftcaption></shiftcaption>
     388        <altgrcaption></altgrcaption>
     389        <shiftaltgrcaption></shiftaltgrcaption>
    340390    </key>
    341391    <key>
    342392        <position>36</position>
    343         <basecaption></basecaption>
    344         <shiftcaption></shiftcaption>
    345         <altgrcaption></altgrcaption>
     393        <basecaption>H</basecaption>
     394        <shiftcaption></shiftcaption>
     395        <altgrcaption></altgrcaption>
     396        <shiftaltgrcaption></shiftaltgrcaption>
    346397    </key>
    347398    <key>
    348399        <position>37</position>
    349         <basecaption></basecaption>
    350         <shiftcaption></shiftcaption>
    351         <altgrcaption></altgrcaption>
     400        <basecaption>J</basecaption>
     401        <shiftcaption></shiftcaption>
     402        <altgrcaption></altgrcaption>
     403        <shiftaltgrcaption></shiftaltgrcaption>
    352404    </key>
    353405    <key>
    354406        <position>38</position>
    355         <basecaption></basecaption>
    356         <shiftcaption></shiftcaption>
    357         <altgrcaption></altgrcaption>
     407        <basecaption>K</basecaption>
     408        <shiftcaption></shiftcaption>
     409        <altgrcaption></altgrcaption>
     410        <shiftaltgrcaption></shiftaltgrcaption>
    358411    </key>
    359412    <key>
    360413        <position>39</position>
    361         <basecaption></basecaption>
    362         <shiftcaption></shiftcaption>
    363         <altgrcaption></altgrcaption>
     414        <basecaption>L</basecaption>
     415        <shiftcaption></shiftcaption>
     416        <altgrcaption>Ø</altgrcaption>
     417        <shiftaltgrcaption></shiftaltgrcaption>
    364418    </key>
    365419    <key>
    366420        <position>40</position>
    367         <basecaption></basecaption>
    368         <shiftcaption></shiftcaption>
    369         <altgrcaption></altgrcaption>
     421        <basecaption>;</basecaption>
     422        <shiftcaption>:</shiftcaption>
     423        <altgrcaption>¶</altgrcaption>
     424        <shiftaltgrcaption>°</shiftaltgrcaption>
    370425    </key>
    371426    <key>
    372427        <position>41</position>
    373         <basecaption></basecaption>
    374         <shiftcaption></shiftcaption>
    375         <altgrcaption></altgrcaption>
     428        <basecaption>'</basecaption>
     429        <shiftcaption>&quot;</shiftcaption>
     430        <altgrcaption></altgrcaption>
     431        <shiftaltgrcaption></shiftaltgrcaption>
    376432    </key>
    377433    <key>
    378434        <position>43</position>
    379         <basecaption></basecaption>
    380         <shiftcaption></shiftcaption>
    381         <altgrcaption></altgrcaption>
     435        <basecaption>Enter</basecaption>
     436        <shiftcaption></shiftcaption>
     437        <altgrcaption></altgrcaption>
     438        <shiftaltgrcaption></shiftaltgrcaption>
    382439    </key>
    383440    <key>
     
    386443        <shiftcaption></shiftcaption>
    387444        <altgrcaption></altgrcaption>
     445        <shiftaltgrcaption></shiftaltgrcaption>
    388446    </key>
    389447    <key>
     
    391449        <basecaption>Z</basecaption>
    392450        <shiftcaption></shiftcaption>
    393         <altgrcaption></altgrcaption>
     451        <altgrcaption>Æ</altgrcaption>
     452        <shiftaltgrcaption></shiftaltgrcaption>
    394453    </key>
    395454    <key>
     
    398457        <shiftcaption></shiftcaption>
    399458        <altgrcaption></altgrcaption>
     459        <shiftaltgrcaption></shiftaltgrcaption>
    400460    </key>
    401461    <key>
     
    403463        <basecaption>C</basecaption>
    404464        <shiftcaption></shiftcaption>
    405         <altgrcaption></altgrcaption>
     465        <altgrcaption>©</altgrcaption>
     466        <shiftaltgrcaption>¢</shiftaltgrcaption>
    406467    </key>
    407468    <key>
     
    410471        <shiftcaption></shiftcaption>
    411472        <altgrcaption></altgrcaption>
     473        <shiftaltgrcaption></shiftaltgrcaption>
    412474    </key>
    413475    <key>
     
    416478        <shiftcaption></shiftcaption>
    417479        <altgrcaption></altgrcaption>
     480        <shiftaltgrcaption></shiftaltgrcaption>
    418481    </key>
    419482    <key>
     
    421484        <basecaption>N</basecaption>
    422485        <shiftcaption></shiftcaption>
    423         <altgrcaption></altgrcaption>
     486        <altgrcaption>Ñ</altgrcaption>
     487        <shiftaltgrcaption></shiftaltgrcaption>
    424488    </key>
    425489    <key>
     
    427491        <basecaption>M</basecaption>
    428492        <shiftcaption></shiftcaption>
    429         <altgrcaption></altgrcaption>
     493        <altgrcaption>µ</altgrcaption>
     494        <shiftaltgrcaption></shiftaltgrcaption>
    430495    </key>
    431496    <key>
     
    434499        <shiftcaption>&lt;</shiftcaption>
    435500        <altgrcaption></altgrcaption>
     501        <shiftaltgrcaption>Ç</shiftaltgrcaption>
    436502    </key>
    437503    <key>
     
    440506        <shiftcaption>&gt;</shiftcaption>
    441507        <altgrcaption></altgrcaption>
     508        <shiftaltgrcaption></shiftaltgrcaption>
    442509    </key>
    443510    <key>
     
    445512        <basecaption>/</basecaption>
    446513        <shiftcaption>?</shiftcaption>
    447         <altgrcaption></altgrcaption>
     514        <altgrcaption>¿</altgrcaption>
     515        <shiftaltgrcaption></shiftaltgrcaption>
    448516    </key>
    449517    <key>
    450518        <position>57</position>
    451         <basecaption></basecaption>
    452         <shiftcaption></shiftcaption>
    453         <altgrcaption></altgrcaption>
     519        <basecaption>Shift</basecaption>
     520        <shiftcaption></shiftcaption>
     521        <altgrcaption></altgrcaption>
     522        <shiftaltgrcaption></shiftaltgrcaption>
    454523    </key>
    455524    <key>
    456525        <position>83</position>
    457         <basecaption></basecaption>
    458         <shiftcaption></shiftcaption>
    459         <altgrcaption></altgrcaption>
     526        <basecaption>↑</basecaption>
     527        <shiftcaption></shiftcaption>
     528        <altgrcaption></altgrcaption>
     529        <shiftaltgrcaption></shiftaltgrcaption>
    460530    </key>
    461531    <key>
     
    464534        <shiftcaption></shiftcaption>
    465535        <altgrcaption></altgrcaption>
     536        <shiftaltgrcaption></shiftaltgrcaption>
    466537    </key>
    467538    <key>
    468539        <position>227</position>
    469         <basecaption></basecaption>
    470         <shiftcaption></shiftcaption>
    471         <altgrcaption></altgrcaption>
     540        <basecaption>OS</basecaption>
     541        <shiftcaption></shiftcaption>
     542        <altgrcaption></altgrcaption>
     543        <shiftaltgrcaption></shiftaltgrcaption>
    472544    </key>
    473545    <key>
    474546        <position>60</position>
    475         <basecaption></basecaption>
    476         <shiftcaption></shiftcaption>
    477         <altgrcaption></altgrcaption>
     547        <basecaption>Alt</basecaption>
     548        <shiftcaption></shiftcaption>
     549        <altgrcaption></altgrcaption>
     550        <shiftaltgrcaption></shiftaltgrcaption>
    478551    </key>
    479552    <key>
     
    482555        <shiftcaption></shiftcaption>
    483556        <altgrcaption></altgrcaption>
     557        <shiftaltgrcaption></shiftaltgrcaption>
    484558    </key>
    485559    <key>
    486560        <position>62</position>
    487         <basecaption></basecaption>
    488         <shiftcaption></shiftcaption>
    489         <altgrcaption></altgrcaption>
     561        <basecaption>AltGr</basecaption>
     562        <shiftcaption></shiftcaption>
     563        <altgrcaption></altgrcaption>
     564        <shiftaltgrcaption></shiftaltgrcaption>
    490565    </key>
    491566    <key>
    492567        <position>231</position>
    493         <basecaption></basecaption>
    494         <shiftcaption></shiftcaption>
    495         <altgrcaption></altgrcaption>
     568        <basecaption>OS</basecaption>
     569        <shiftcaption></shiftcaption>
     570        <altgrcaption></altgrcaption>
     571        <shiftaltgrcaption></shiftaltgrcaption>
    496572    </key>
    497573    <key>
    498574        <position>0</position>
    499         <basecaption></basecaption>
    500         <shiftcaption></shiftcaption>
    501         <altgrcaption></altgrcaption>
     575        <basecaption>Menu</basecaption>
     576        <shiftcaption></shiftcaption>
     577        <altgrcaption></altgrcaption>
     578        <shiftaltgrcaption></shiftaltgrcaption>
    502579    </key>
    503580    <key>
    504581        <position>64</position>
    505         <basecaption></basecaption>
    506         <shiftcaption></shiftcaption>
    507         <altgrcaption></altgrcaption>
     582        <basecaption>Ctrl</basecaption>
     583        <shiftcaption></shiftcaption>
     584        <altgrcaption></altgrcaption>
     585        <shiftaltgrcaption></shiftaltgrcaption>
    508586    </key>
    509587    <key>
    510588        <position>79</position>
    511         <basecaption></basecaption>
    512         <shiftcaption></shiftcaption>
    513         <altgrcaption></altgrcaption>
     589        <basecaption>←</basecaption>
     590        <shiftcaption></shiftcaption>
     591        <altgrcaption></altgrcaption>
     592        <shiftaltgrcaption></shiftaltgrcaption>
    514593    </key>
    515594    <key>
    516595        <position>84</position>
    517         <basecaption></basecaption>
    518         <shiftcaption></shiftcaption>
    519         <altgrcaption></altgrcaption>
     596        <basecaption>↓</basecaption>
     597        <shiftcaption></shiftcaption>
     598        <altgrcaption></altgrcaption>
     599        <shiftaltgrcaption></shiftaltgrcaption>
    520600    </key>
    521601    <key>
    522602        <position>89</position>
    523         <basecaption></basecaption>
    524         <shiftcaption></shiftcaption>
    525         <altgrcaption></altgrcaption>
     603        <basecaption>→</basecaption>
     604        <shiftcaption></shiftcaption>
     605        <altgrcaption></altgrcaption>
     606        <shiftaltgrcaption></shiftaltgrcaption>
    526607    </key>
    527608</layout>
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette