Index: /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 81124)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp	(revision 81125)
@@ -96,4 +96,13 @@
     KeyboardColorType_Pressed,
     KeyboardColorType_Max
+};
+
+enum KeyboardRegion
+{
+    KeyboardRegion_Main = 0,
+    KeyboardRegion_NumPad,
+    KeyboardRegion_Multimedia,
+    KeyboardRegion_OSMenu,
+    KeyboardRegion_Max
 };
 
@@ -349,9 +358,6 @@
     KeyType type() const;
 
-    void setIsNumPadKey(bool fIsNumPadKey);
-    bool isNumPadKey() const;
-
-    void setIsOSMenuKey(bool fIsOSMenuKey);
-    bool isOSMenuKey() const;
+    KeyboardRegion keyboardRegion() const;
+    void setKeyboardRegion(KeyboardRegion enmRegion);
 
     void setCutout(int iCorner, int iWidth, int iHeight);
@@ -408,6 +414,5 @@
     LONG m_iUsageId;
     LONG m_iUsagePage;
-    bool m_fIsNumPadKey;
-    bool m_fIsOSMenuKey;
+    KeyboardRegion m_enmKeyboardRegion;
 };
 
@@ -1433,7 +1438,5 @@
     , m_iPosition(0)
     , m_pParentWidget(0)
-    , m_fIsNumPadKey(false)
-    , m_fIsOSMenuKey(false)
-
+    , m_enmKeyboardRegion(KeyboardRegion_Main)
 {
 }
@@ -1535,22 +1538,12 @@
 }
 
-void UISoftKeyboardKey::setIsNumPadKey(bool fIsNumPadKey)
-{
-    m_fIsNumPadKey = fIsNumPadKey;
-}
-
-bool UISoftKeyboardKey::isNumPadKey() const
-{
-    return m_fIsNumPadKey;
-}
-
-void UISoftKeyboardKey::setIsOSMenuKey(bool fIsOSMenuKey)
-{
-    m_fIsOSMenuKey = fIsOSMenuKey;
-}
-
-bool UISoftKeyboardKey::isOSMenuKey() const
-{
-    return m_fIsOSMenuKey;
+KeyboardRegion UISoftKeyboardKey::keyboardRegion() const
+{
+    return m_enmKeyboardRegion;
+}
+
+void UISoftKeyboardKey::setKeyboardRegion(KeyboardRegion enmRegion)
+{
+    m_enmKeyboardRegion = enmRegion;
 }
 
@@ -2096,8 +2089,8 @@
         {
             UISoftKeyboardKey &key = keys[j];
-            if (m_fHideOSMenuKeys && key.isOSMenuKey())
+            if (m_fHideOSMenuKeys && key.keyboardRegion() == KeyboardRegion_OSMenu)
                 continue;
 
-            if (m_fHideNumPad &&key.isNumPadKey())
+            if (m_fHideNumPad && key.keyboardRegion() == KeyboardRegion_NumPad)
                 continue;
 
@@ -2647,10 +2640,10 @@
             for (int j = 0; j < row.keys().size(); ++j)
             {
-                row.keys()[j].setIsNumPadKey(true);
+                row.keys()[j].setKeyboardRegion(KeyboardRegion_NumPad);
             }
         }
         return true;
     }
-
+    /* Go thru all the keys row by row and construct their geometries: */
     int iY = m_iTopMargin;
     int iMaxWidth = 0;
@@ -2694,5 +2687,5 @@
                 iX += (m_iXSpacing + key.spaceWidthAfter());
 
-            if (!key.isNumPadKey())
+            if (key.keyboardRegion() != KeyboardRegion_NumPad)
             {
                 iXNoNumPad += key.width();
@@ -3062,5 +3055,5 @@
         {
             if (m_xmlReader.readElementText() == "true")
-                key.setIsOSMenuKey(true);
+                key.setKeyboardRegion(KeyboardRegion_OSMenu);
         }
         else
