Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 54199)
@@ -369,5 +369,6 @@
 	src/settings/machine/UIMachineSettingsDisplay.h \
 	src/settings/machine/UIMachineSettingsGeneral.h \
-	src/settings/machine/UIMachineSettingsNetwork.h \
+    src/settings/machine/UIMachineSettingsInterface.h \
+    src/settings/machine/UIMachineSettingsNetwork.h \
 	src/settings/machine/UIMachineSettingsParallel.h \
 	src/settings/machine/UIMachineSettingsPortForwardingDlg.h \
@@ -647,5 +648,6 @@
 	src/settings/machine/UIMachineSettingsDisplay.cpp \
 	src/settings/machine/UIMachineSettingsGeneral.cpp \
-	src/settings/machine/UIMachineSettingsNetwork.cpp \
+    src/settings/machine/UIMachineSettingsInterface.cpp \
+    src/settings/machine/UIMachineSettingsNetwork.cpp \
 	src/settings/machine/UIMachineSettingsParallel.cpp \
 	src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp \
Index: trunk/src/VBox/Frontends/VirtualBox/VBoxUI.pro
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/VBoxUI.pro	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/VBoxUI.pro	(revision 54199)
@@ -48,4 +48,5 @@
     src/settings/machine/UIMachineSettingsSF.ui \
     src/settings/machine/UIMachineSettingsSFDetails.ui \
+    src/settings/machine/UIMachineSettingsInterface.ui \
     src/widgets/UIApplianceEditorWidget.ui \
     src/selector/VBoxSnapshotsWgt.ui
Index: trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc	(revision 54199)
@@ -178,4 +178,8 @@
         <file alias="ide_expand_16px.png">images/ide_expand_16px.png</file>
         <file alias="import_16px.png">images/import_16px.png</file>
+        <file alias="interface_16px.png">images/interface_16px.png</file>
+        <file alias="interface_24px.png">images/interface_24px.png</file>
+        <file alias="interface_32px.png">images/interface_32px.png</file>
+        <file alias="interface_warning_16px.png">images/interface_warning_16px.png</file>
         <file alias="keyboard_16px.png">images/keyboard_16px.png</file>
         <file alias="keyboard_24px.png">images/keyboard_24px.png</file>
@@ -275,6 +279,4 @@
         <file alias="os_turbolinux.png">images/os_turbolinux.png</file>
         <file alias="os_turbolinux_64.png">images/os_turbolinux_64.png</file>
-        <file alias="os_type_16px.png">images/os_type_16px.png</file>
-        <file alias="os_ubuntu.png">images/os_ubuntu.png</file>
     </qresource>
 </RCC>
Index: trunk/src/VBox/Frontends/VirtualBox/VirtualBox1_hidpi.qrc
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/VirtualBox1_hidpi.qrc	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/VirtualBox1_hidpi.qrc	(revision 54199)
@@ -178,4 +178,8 @@
         <file alias="ide_expand_16px_hidpi.png">images/hidpi/ide_expand_16px_hidpi.png</file>
         <file alias="import_16px_hidpi.png">images/hidpi/import_16px_hidpi.png</file>
+        <file alias="interface_16px_hidpi.png">images/hidpi/interface_16px_hidpi.png</file>
+        <file alias="interface_24px_hidpi.png">images/hidpi/interface_24px_hidpi.png</file>
+        <file alias="interface_32px_hidpi.png">images/hidpi/interface_32px_hidpi.png</file>
+        <file alias="interface_warning_16px_hidpi.png">images/hidpi/interface_warning_16px_hidpi.png</file>
         <file alias="keyboard_16px_hidpi.png">images/hidpi/keyboard_16px_hidpi.png</file>
         <file alias="keyboard_24px_hidpi.png">images/hidpi/keyboard_24px_hidpi.png</file>
@@ -254,6 +258,4 @@
         <file alias="os_opensuse_64_hidpi.png">images/hidpi/os_opensuse_64_hidpi.png</file>
         <file alias="os_opensuse_hidpi.png">images/hidpi/os_opensuse_hidpi.png</file>
-        <file alias="os_oracle_64_hidpi.png">images/hidpi/os_oracle_64_hidpi.png</file>
-        <file alias="os_oracle_hidpi.png">images/hidpi/os_oracle_hidpi.png</file>
     </qresource>
 </RCC>
Index: trunk/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc	(revision 54199)
@@ -1,4 +1,6 @@
 <RCC>
     <qresource prefix="/">
+        <file alias="os_type_16px.png">images/os_type_16px.png</file>
+        <file alias="os_ubuntu.png">images/os_ubuntu.png</file>
         <file alias="os_ubuntu_64.png">images/os_ubuntu_64.png</file>
         <file alias="os_win10.png">images/os_win10.png</file>
Index: trunk/src/VBox/Frontends/VirtualBox/VirtualBox2_hidpi.qrc
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/VirtualBox2_hidpi.qrc	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/VirtualBox2_hidpi.qrc	(revision 54199)
@@ -1,4 +1,6 @@
 <RCC>
     <qresource prefix="/">
+        <file alias="os_oracle_64_hidpi.png">images/hidpi/os_oracle_64_hidpi.png</file>
+        <file alias="os_oracle_hidpi.png">images/hidpi/os_oracle_hidpi.png</file>
         <file alias="os_oraclesolaris_64_hidpi.png">images/hidpi/os_oraclesolaris_64_hidpi.png</file>
         <file alias="os_oraclesolaris_hidpi.png">images/hidpi/os_oraclesolaris_hidpi.png</file>
Index: trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp	(revision 54199)
@@ -1076,15 +1076,16 @@
     switch (machineSettingsPageType)
     {
-        case MachineSettingsPageType_General:  strResult = "General"; break;
-        case MachineSettingsPageType_System:   strResult = "System"; break;
-        case MachineSettingsPageType_Display:  strResult = "Display"; break;
-        case MachineSettingsPageType_Storage:  strResult = "Storage"; break;
-        case MachineSettingsPageType_Audio:    strResult = "Audio"; break;
-        case MachineSettingsPageType_Network:  strResult = "Network"; break;
-        case MachineSettingsPageType_Ports:    strResult = "Ports"; break;
-        case MachineSettingsPageType_Serial:   strResult = "Serial"; break;
-        case MachineSettingsPageType_Parallel: strResult = "Parallel"; break;
-        case MachineSettingsPageType_USB:      strResult = "USB"; break;
-        case MachineSettingsPageType_SF:       strResult = "SharedFolders"; break;
+        case MachineSettingsPageType_General:   strResult = "General"; break;
+        case MachineSettingsPageType_System:    strResult = "System"; break;
+        case MachineSettingsPageType_Display:   strResult = "Display"; break;
+        case MachineSettingsPageType_Storage:   strResult = "Storage"; break;
+        case MachineSettingsPageType_Audio:     strResult = "Audio"; break;
+        case MachineSettingsPageType_Network:   strResult = "Network"; break;
+        case MachineSettingsPageType_Ports:     strResult = "Ports"; break;
+        case MachineSettingsPageType_Serial:    strResult = "Serial"; break;
+        case MachineSettingsPageType_Parallel:  strResult = "Parallel"; break;
+        case MachineSettingsPageType_USB:       strResult = "USB"; break;
+        case MachineSettingsPageType_SF:        strResult = "SharedFolders"; break;
+        case MachineSettingsPageType_Interface: strResult = "Interface"; break;
         default:
         {
@@ -1113,4 +1114,5 @@
     keys << "USB";           values << MachineSettingsPageType_USB;
     keys << "SharedFolders"; values << MachineSettingsPageType_SF;
+    keys << "Interface";     values << MachineSettingsPageType_Interface;
     /* Invalid type for unknown words: */
     if (!keys.contains(strMachineSettingsPageType, Qt::CaseInsensitive))
@@ -1125,15 +1127,16 @@
     switch (type)
     {
-        case MachineSettingsPageType_General:  return UIIconPool::pixmap(":/machine_warning_16px.png");
-        case MachineSettingsPageType_System:   return UIIconPool::pixmap(":/chipset_warning_16px.png");
-        case MachineSettingsPageType_Display:  return UIIconPool::pixmap(":/vrdp_warning_16px.png");
-        case MachineSettingsPageType_Storage:  return UIIconPool::pixmap(":/hd_warning_16px.png");
-        case MachineSettingsPageType_Audio:    return UIIconPool::pixmap(":/sound_warning_16px.png");
-        case MachineSettingsPageType_Network:  return UIIconPool::pixmap(":/nw_warning_16px.png");
-        case MachineSettingsPageType_Ports:    return UIIconPool::pixmap(":/serial_port_warning_16px.png");
-        case MachineSettingsPageType_Serial:   return UIIconPool::pixmap(":/serial_port_warning_16px.png");
-        case MachineSettingsPageType_Parallel: return UIIconPool::pixmap(":/parallel_port_warning_16px.png");
-        case MachineSettingsPageType_USB:      return UIIconPool::pixmap(":/usb_warning_16px.png");
-        case MachineSettingsPageType_SF:       return UIIconPool::pixmap(":/sf_warning_16px.png");
+        case MachineSettingsPageType_General:   return UIIconPool::pixmap(":/machine_warning_16px.png");
+        case MachineSettingsPageType_System:    return UIIconPool::pixmap(":/chipset_warning_16px.png");
+        case MachineSettingsPageType_Display:   return UIIconPool::pixmap(":/vrdp_warning_16px.png");
+        case MachineSettingsPageType_Storage:   return UIIconPool::pixmap(":/hd_warning_16px.png");
+        case MachineSettingsPageType_Audio:     return UIIconPool::pixmap(":/sound_warning_16px.png");
+        case MachineSettingsPageType_Network:   return UIIconPool::pixmap(":/nw_warning_16px.png");
+        case MachineSettingsPageType_Ports:     return UIIconPool::pixmap(":/serial_port_warning_16px.png");
+        case MachineSettingsPageType_Serial:    return UIIconPool::pixmap(":/serial_port_warning_16px.png");
+        case MachineSettingsPageType_Parallel:  return UIIconPool::pixmap(":/parallel_port_warning_16px.png");
+        case MachineSettingsPageType_USB:       return UIIconPool::pixmap(":/usb_warning_16px.png");
+        case MachineSettingsPageType_SF:        return UIIconPool::pixmap(":/sf_warning_16px.png");
+        case MachineSettingsPageType_Interface: return UIIconPool::pixmap(":/interface_warning_16px.png");
         default: AssertMsgFailed(("No pixmap for %d", type)); break;
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 54199)
@@ -480,4 +480,5 @@
     MachineSettingsPageType_USB,
     MachineSettingsPageType_SF,
+    MachineSettingsPageType_Interface,
     MachineSettingsPageType_Max
 };
Index: trunk/src/VBox/Frontends/VirtualBox/src/precomp.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/precomp.h	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/precomp.h	(revision 54199)
@@ -525,4 +525,5 @@
 #include "UIMachineSettingsDisplay.h"
 #include "UIMachineSettingsGeneral.h"
+#include "UIMachineSettingsInterface.h"
 #include "UIMachineSettingsNetwork.h"
 #include "UIMachineSettingsParallel.h"
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 54199)
@@ -60,4 +60,5 @@
 # include "UIMachineSettingsUSB.h"
 # include "UIMachineSettingsSF.h"
+# include "UIMachineSettingsInterface.h"
 
 /* COM includes: */
@@ -702,4 +703,12 @@
                     break;
                 }
+                /* Interface page: */
+                case MachineSettingsPageType_Interface:
+                {
+                    pSettingsPage = new UIMachineSettingsInterface(m_machine.GetId());
+                    addItem(":/interface_32px.png", ":/interface_24px.png", ":/interface_16px.png",
+                            iPageIndex, "#interface", pSettingsPage);
+                    break;
+                }
                 default:
                     break;
@@ -924,4 +933,7 @@
     m_pSelector->setItemText(MachineSettingsPageType_SF, tr("Shared Folders"));
 
+    /* Interface page: */
+    m_pSelector->setItemText(MachineSettingsPageType_Interface, tr("Interface"));
+
     /* Polish the selector: */
     m_pSelector->polish();
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 54199)
@@ -26,7 +26,5 @@
 # include "QIWidgetValidator.h"
 # include "UIMachineSettingsDisplay.h"
-# include "UIExtraDataManager.h"
 # include "UIMessageCenter.h"
-# include "UIActionPool.h"
 # include "UIConverter.h"
 # include "VBoxGlobal.h"
@@ -51,14 +49,7 @@
     , m_fWddmModeSupported(false)
 #endif /* VBOX_WITH_CRHGSMI */
-    , m_pActionPool(0)
 {
     /* Prepare: */
     prepare();
-}
-
-UIMachineSettingsDisplay::~UIMachineSettingsDisplay()
-{
-    /* Cleanup: */
-    cleanup();
 }
 
@@ -141,12 +132,4 @@
     displayData.m_screens = m_machine.GetVideoCaptureScreens();
 
-    /* Cache Machine Window data: */
-    displayData.m_dScaleFactor = gEDataManager->scaleFactor(m_machine.GetId());
-#ifdef Q_WS_MAC
-    displayData.m_fUseUnscaledHiDPIOutput = gEDataManager->useUnscaledHiDPIOutput(m_machine.GetId());
-#endif /* Q_WS_MAC */
-    displayData.m_fShowMiniToolBar = gEDataManager->miniToolbarEnabled(m_machine.GetId());
-    displayData.m_fMiniToolBarAtTop = gEDataManager->miniToolbarAlignment(m_machine.GetId()) == Qt::AlignTop;
-
     /* Initialize other variables: */
     m_iInitialVRAM = RT_MIN(displayData.m_iCurrentVRAM, m_iMaxVRAM);
@@ -196,16 +179,4 @@
     m_pScrollerVideoCaptureScreens->setValue(displayData.m_screens);
 
-    /* Prepare Machine Window data: */
-    const QString strMachineID = m_machine.GetId();
-    m_pMenuBarEditor->setMachineID(strMachineID);
-    m_pStatusBarEditor->setMachineID(strMachineID);
-    m_pMenuBarEditor->setActionPool(m_pActionPool);
-    m_pEditorGuestScreenScale->setValue(displayData.m_dScaleFactor * 100);
-#ifdef Q_WS_MAC
-    m_pCheckBoxUnscaledHiDPIOutput->setChecked(displayData.m_fUseUnscaledHiDPIOutput);
-#endif /* Q_WS_MAC */
-    m_pCheckBoxShowMiniToolBar->setChecked(displayData.m_fShowMiniToolBar);
-    m_pComboToolBarAlignment->setChecked(displayData.m_fMiniToolBarAtTop);
-
     /* Polish page finally: */
     polishPage();
@@ -219,5 +190,5 @@
 void UIMachineSettingsDisplay::putToCache()
 {
-    /* Prepare audio data: */
+    /* Prepare display data: */
     UIDataSettingsMachineDisplay displayData = m_cache.base();
 
@@ -249,12 +220,4 @@
     displayData.m_iVideoCaptureBitRate = m_pEditorVideoCaptureBitRate->value();
     displayData.m_screens = m_pScrollerVideoCaptureScreens->value();
-
-    /* Gather Machine Window data from page: */
-    displayData.m_dScaleFactor = (double)m_pEditorGuestScreenScale->value() / 100;
-#ifdef Q_WS_MAC
-    displayData.m_fUseUnscaledHiDPIOutput = m_pCheckBoxUnscaledHiDPIOutput->isChecked();
-#endif /* Q_WS_MAC */
-    displayData.m_fShowMiniToolBar = m_pCheckBoxShowMiniToolBar->isChecked();
-    displayData.m_fMiniToolBarAtTop = m_pComboToolBarAlignment->isChecked();
 
     /* Cache display data: */
@@ -339,15 +302,4 @@
             m_machine.SetVideoCaptureScreens(displayData.m_screens);
         }
-
-        /* Store Machine Window data: */
-        if (isMachineInValidMode())
-        {
-            gEDataManager->setScaleFactor(displayData.m_dScaleFactor, m_machine.GetId());
-#ifdef Q_WS_MAC
-            gEDataManager->setUseUnscaledHiDPIOutput(displayData.m_fUseUnscaledHiDPIOutput, m_machine.GetId());
-#endif /* Q_WS_MAC */
-            gEDataManager->setMiniToolbarEnabled(displayData.m_fShowMiniToolBar, m_machine.GetId());
-            gEDataManager->setMiniToolbarAlignment(displayData.m_fMiniToolBarAtTop ? Qt::AlignTop : Qt::AlignBottom, m_machine.GetId());
-        }
     }
 
@@ -481,5 +433,5 @@
 void UIMachineSettingsDisplay::setOrderAfter(QWidget *pWidget)
 {
-    /* Video tab-order */
+    /* Video tab-order: */
     setTabOrder(pWidget, m_pTabWidget->focusProxy());
     setTabOrder(m_pTabWidget->focusProxy(), m_pSliderVideoMemorySize);
@@ -511,16 +463,9 @@
     setTabOrder(m_pEditorVideoCaptureFrameRate, m_pSliderVideoCaptureQuality);
     setTabOrder(m_pSliderVideoCaptureQuality, m_pEditorVideoCaptureBitRate);
-
-    /* Machine Window tab-order: */
-    setTabOrder(m_pEditorVideoCaptureBitRate, m_pSliderGuestScreenScale);
-    setTabOrder(m_pSliderGuestScreenScale, m_pEditorGuestScreenScale);
-    setTabOrder(m_pEditorGuestScreenScale, m_pCheckBoxUnscaledHiDPIOutput);
-    setTabOrder(m_pCheckBoxUnscaledHiDPIOutput, m_pCheckBoxShowMiniToolBar);
-    setTabOrder(m_pCheckBoxShowMiniToolBar, m_pComboToolBarAlignment);
 }
 
 void UIMachineSettingsDisplay::retranslateUi()
 {
-    /* Translate uic generated strings */
+    /* Translate uic generated strings: */
     Ui::UIMachineSettingsDisplay::retranslateUi(this);
 
@@ -571,23 +516,4 @@
     m_pContainerVideoCapture->setEnabled(isMachineInValidMode());
     sltHandleVideoCaptureCheckboxToggle();
-
-    /* Machine-window tab: */
-    m_pMenuBarEditor->setEnabled(isMachineInValidMode());
-    m_pLabelGuestScreenScale->setEnabled(isMachineInValidMode());
-    m_pSliderGuestScreenScale->setEnabled(isMachineInValidMode());
-    m_pLabelGuestScreenScaleMin->setEnabled(isMachineInValidMode());
-    m_pLabelGuestScreenScaleMax->setEnabled(isMachineInValidMode());
-    m_pEditorGuestScreenScale->setEnabled(isMachineInValidMode());
-#ifdef Q_WS_MAC
-    m_pLabelHiDPI->setEnabled(isMachineInValidMode());
-    m_pCheckBoxUnscaledHiDPIOutput->setEnabled(isMachineInValidMode());
-#else /* !Q_WS_MAC */
-    m_pLabelHiDPI->hide();
-    m_pCheckBoxUnscaledHiDPIOutput->hide();
-#endif /* !Q_WS_MAC */
-    m_pLabelMiniToolBar->setEnabled(isMachineInValidMode());
-    m_pCheckBoxShowMiniToolBar->setEnabled(isMachineInValidMode());
-    m_pComboToolBarAlignment->setEnabled(isMachineInValidMode() && m_pCheckBoxShowMiniToolBar->isChecked());
-    m_pStatusBarEditor->setEnabled(isMachineInValidMode());
 }
 
@@ -758,20 +684,4 @@
 }
 
-void UIMachineSettingsDisplay::sltHandleGuestScreenScaleSliderChange()
-{
-    /* Apply proposed scale-factor: */
-    m_pEditorGuestScreenScale->blockSignals(true);
-    m_pEditorGuestScreenScale->setValue(m_pSliderGuestScreenScale->value());
-    m_pEditorGuestScreenScale->blockSignals(false);
-}
-
-void UIMachineSettingsDisplay::sltHandleGuestScreenScaleEditorChange()
-{
-    /* Apply proposed scale-factor: */
-    m_pSliderGuestScreenScale->blockSignals(true);
-    m_pSliderGuestScreenScale->setValue(m_pEditorGuestScreenScale->value());
-    m_pSliderGuestScreenScale->blockSignals(false);
-}
-
 void UIMachineSettingsDisplay::prepare()
 {
@@ -783,5 +693,4 @@
     prepareRemoteDisplayTab();
     prepareVideoCaptureTab();
-    prepareMachineWindowTab();
 
     /* Prepare validation: */
@@ -932,25 +841,4 @@
 }
 
-void UIMachineSettingsDisplay::prepareMachineWindowTab()
-{
-    /* Create personal action-pool: */
-    m_pActionPool = UIActionPool::create(UIActionPoolType_Runtime);
-
-    /* Prepare scale-factor slider: */
-    m_pSliderGuestScreenScale->setMinimum(100);
-    m_pSliderGuestScreenScale->setMaximum(200);
-    m_pSliderGuestScreenScale->setPageStep(10);
-    m_pSliderGuestScreenScale->setSingleStep(1);
-    m_pSliderGuestScreenScale->setTickInterval(10);
-    m_pSliderGuestScreenScale->setSnappingEnabled(true);
-    connect(m_pSliderGuestScreenScale, SIGNAL(valueChanged(int)), this, SLOT(sltHandleGuestScreenScaleSliderChange()));
-
-    /* Prepare scale-factor editor: */
-    m_pEditorGuestScreenScale->setMinimum(100);
-    m_pEditorGuestScreenScale->setMaximum(200);
-    vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorGuestScreenScale, 5);
-    connect(m_pEditorGuestScreenScale, SIGNAL(valueChanged(int)), this, SLOT(sltHandleGuestScreenScaleEditorChange()));
-}
-
 void UIMachineSettingsDisplay::prepareValidation()
 {
@@ -963,16 +851,4 @@
     connect(m_pEditorRemoteDisplayPort, SIGNAL(textChanged(const QString&)), this, SLOT(revalidate()));
     connect(m_pEditorRemoteDisplayTimeout, SIGNAL(textChanged(const QString&)), this, SLOT(revalidate()));
-}
-
-void UIMachineSettingsDisplay::cleanupMachineWindowTab()
-{
-    /* Destroy personal action-pool: */
-    UIActionPool::destroy(m_pActionPool);
-}
-
-void UIMachineSettingsDisplay::cleanup()
-{
-    /* Cleanup tabs: */
-    cleanupMachineWindowTab();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 54199)
@@ -52,10 +52,4 @@
         , m_iVideoCaptureFrameRate(0)
         , m_iVideoCaptureBitRate(0)
-        , m_dScaleFactor(1)
-#ifdef Q_WS_MAC
-        , m_fUseUnscaledHiDPIOutput(false)
-#endif /* Q_WS_MAC */
-        , m_fShowMiniToolBar(false)
-        , m_fMiniToolBarAtTop(false)
     {}
 
@@ -81,11 +75,5 @@
                (m_iVideoCaptureFrameRate == other.m_iVideoCaptureFrameRate) &&
                (m_iVideoCaptureBitRate == other.m_iVideoCaptureBitRate) &&
-               (m_screens == other.m_screens) &&
-               (m_dScaleFactor == other.m_dScaleFactor) &&
-#ifdef Q_WS_MAC
-               (m_fUseUnscaledHiDPIOutput == other.m_fUseUnscaledHiDPIOutput) &&
-#endif /* Q_WS_MAC */
-               (m_fShowMiniToolBar == other.m_fShowMiniToolBar) &&
-               (m_fMiniToolBarAtTop == other.m_fMiniToolBarAtTop);
+               (m_screens == other.m_screens);
     }
 
@@ -119,12 +107,4 @@
     int m_iVideoCaptureBitRate;
     QVector<BOOL> m_screens;
-
-    /* Variables: Machine Window stuff: */
-    double m_dScaleFactor;
-#ifdef Q_WS_MAC
-    bool m_fUseUnscaledHiDPIOutput;
-#endif /* Q_WS_MAC */
-    bool m_fShowMiniToolBar;
-    bool m_fMiniToolBarAtTop;
 };
 typedef UISettingsCache<UIDataSettingsMachineDisplay> UICacheSettingsMachineDisplay;
@@ -140,6 +120,4 @@
     /** Constructor. */
     UIMachineSettingsDisplay();
-    /** Destructor. */
-    ~UIMachineSettingsDisplay();
 
     /* API: Correlation stuff: */
@@ -198,8 +176,4 @@
     void sltHandleVideoCaptureBitRateEditorChange();
 
-    /* Handlers: Guest-screen scale-factor stuff: */
-    void sltHandleGuestScreenScaleSliderChange();
-    void sltHandleGuestScreenScaleEditorChange();
-
 private:
 
@@ -212,13 +186,6 @@
     /** Prepare routine: Video Capture tab. */
     void prepareVideoCaptureTab();
-    /** Prepare routine: Machine Window tab. */
-    void prepareMachineWindowTab();
     /** Prepare routine: Validation. */
     void prepareValidation();
-
-    /** Cleanup routine: Machine Window tab. */
-    void cleanupMachineWindowTab();
-    /** Cleanup routine. */
-    void cleanup();
 
     /* Helpers: Video stuff: */
@@ -257,7 +224,4 @@
     /* Cache: */
     UICacheSettingsMachineDisplay m_cache;
-
-    /** Holds the action-pool instance. */
-    UIActionPool *m_pActionPool;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui	(revision 54178)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui	(revision 54199)
@@ -645,176 +645,4 @@
       </layout>
      </widget>
-     <widget class="QWidget" name="m_pTabMachineWindow">
-      <attribute name="title">
-       <string>Machine &amp;Window</string>
-      </attribute>
-      <layout class="QGridLayout" name="m_pLayoutTabMachineWindow">
-       <item row="0" column="0" colspan="3">
-        <widget class="UIMenuBarEditorWidget" name="m_pMenuBarEditor">
-         <property name="whatsThis">
-          <string>Allows to modify VM menu-bar contents.</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QLabel" name="m_pLabelGuestScreenScale">
-         <property name="text">
-          <string>Screen Scale Factor:</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1" rowspan="2">
-        <layout class="QGridLayout" name="m_pLayoutGuestScreenScaleSlider">
-         <property name="spacing">
-          <number>0</number>
-         </property>
-         <item row="0" column="0" colspan="3">
-          <widget class="QIAdvancedSlider" name="m_pSliderGuestScreenScale">
-           <property name="whatsThis">
-            <string>This setting determines the guest screen scale factor.</string>
-           </property>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="m_pLabelGuestScreenScaleMin">
-           <property name="text">
-            <string>100%</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <spacer name="m_pSpacerGuestScreenScale">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>0</width>
-             <height>0</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="1" column="2">
-          <widget class="QLabel" name="m_pLabelGuestScreenScaleMax">
-           <property name="text">
-            <string>200%</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="1" column="2">
-        <widget class="QSpinBox" name="m_pEditorGuestScreenScale">
-         <property name="whatsThis">
-          <string>This setting determines the guest screen scale factor.</string>
-         </property>
-         <property name="suffix">
-          <string>%</string>
-         </property>
-        </widget>
-       </item>
-       <item row="3" column="0">
-        <widget class="QLabel" name="m_pLabelHiDPI">
-         <property name="text">
-          <string>HiDPI:</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-         </property>
-        </widget>
-       </item>
-       <item row="3" column="1" colspan="2">
-        <widget class="QCheckBox" name="m_pCheckBoxUnscaledHiDPIOutput">
-         <property name="sizePolicy">
-          <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="whatsThis">
-          <string>If checked, guest screen contents will not be scaled up to compensate for high host screen resolutions.</string>
-         </property>
-         <property name="text">
-          <string>Use &amp;Unscaled HiDPI Output</string>
-         </property>
-        </widget>
-       </item>
-       <item row="4" column="0">
-        <widget class="QLabel" name="m_pLabelMiniToolBar">
-         <property name="text">
-          <string>Mini ToolBar:</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-         </property>
-        </widget>
-       </item>
-       <item row="4" column="1" colspan="2">
-        <widget class="QCheckBox" name="m_pCheckBoxShowMiniToolBar">
-         <property name="sizePolicy">
-          <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="whatsThis">
-          <string>If checked, show the Mini ToolBar in Fullscreen and Seamless modes.</string>
-         </property>
-         <property name="text">
-          <string>Show in &amp;Fullscreen/Seamless</string>
-         </property>
-         <property name="checked">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="5" column="1" colspan="2">
-        <widget class="QCheckBox" name="m_pComboToolBarAlignment">
-         <property name="sizePolicy">
-          <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="whatsThis">
-          <string>If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen.</string>
-         </property>
-         <property name="text">
-          <string>Show at &amp;Top of Screen</string>
-         </property>
-         <property name="checked">
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="6" column="0" colspan="3">
-        <spacer name="m_pSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>0</width>
-           <height>0</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="7" column="0" colspan="3">
-        <widget class="UIStatusBarEditorWidget" name="m_pStatusBarEditor">
-         <property name="whatsThis">
-          <string>Allows to modify VM status-bar contents.</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
     </widget>
    </item>
@@ -843,14 +671,4 @@
    <header>UIFilmContainer.h</header>
   </customwidget>
-  <customwidget>
-   <class>UIMenuBarEditorWidget</class>
-   <extends>QWidget</extends>
-   <header>UIMenuBarEditorWindow.h</header>
-  </customwidget>
-  <customwidget>
-   <class>UIStatusBarEditorWidget</class>
-   <extends>QWidget</extends>
-   <header>UIStatusBarEditorWindow.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
@@ -862,20 +680,4 @@
    <slot>setEnabled(bool)</slot>
   </connection>
-  <connection>
-   <sender>m_pCheckBoxShowMiniToolBar</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>m_pComboToolBarAlignment</receiver>
-   <slot>setEnabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>195</x>
-     <y>50</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>196</x>
-     <y>72</y>
-    </hint>
-   </hints>
-  </connection>
  </connections>
 </ui>
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp	(revision 54199)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp	(revision 54199)
@@ -0,0 +1,234 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIMachineSettingsInterface class implementation.
+ */
+
+/*
+ * Copyright (C) 2008-2015 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifdef VBOX_WITH_PRECOMPILED_HEADERS
+# include <precomp.h>
+#else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+/* GUI includes: */
+# include "UIMachineSettingsInterface.h"
+# include "UIExtraDataManager.h"
+# include "UIActionPool.h"
+# include "VBoxGlobal.h"
+
+#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+
+UIMachineSettingsInterface::UIMachineSettingsInterface(const QString strMachineID)
+    : m_strMachineID(strMachineID)
+    , m_pActionPool(0)
+{
+    /* Prepare: */
+    prepare();
+}
+
+UIMachineSettingsInterface::~UIMachineSettingsInterface()
+{
+    /* Cleanup: */
+    cleanup();
+}
+
+/* Load data to cache from corresponding external object(s),
+ * this task COULD be performed in other than GUI thread: */
+void UIMachineSettingsInterface::loadToCacheFrom(QVariant &data)
+{
+    /* Fetch data to machine: */
+    UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
+
+    /* Prepare interface data: */
+    UIDataSettingsMachineInterface interfaceData;
+
+    /* Cache interface data: */
+    interfaceData.m_dScaleFactor = gEDataManager->scaleFactor(m_machine.GetId());
+#ifdef Q_WS_MAC
+    interfaceData.m_fUseUnscaledHiDPIOutput = gEDataManager->useUnscaledHiDPIOutput(m_machine.GetId());
+#endif /* Q_WS_MAC */
+    interfaceData.m_fShowMiniToolBar = gEDataManager->miniToolbarEnabled(m_machine.GetId());
+    interfaceData.m_fMiniToolBarAtTop = gEDataManager->miniToolbarAlignment(m_machine.GetId()) == Qt::AlignTop;
+
+    /* Cache interface data: */
+    m_cache.cacheInitialData(interfaceData);
+
+    /* Upload machine to data: */
+    UISettingsPageMachine::uploadData(data);
+}
+
+/* Load data to corresponding widgets from cache,
+ * this task SHOULD be performed in GUI thread only: */
+void UIMachineSettingsInterface::getFromCache()
+{
+    /* Get interface data from cache: */
+    const UIDataSettingsMachineInterface &interfaceData = m_cache.base();
+
+    /* Prepare interface data: */
+    m_pEditorGuestScreenScale->setValue(interfaceData.m_dScaleFactor * 100);
+#ifdef Q_WS_MAC
+    m_pCheckBoxUnscaledHiDPIOutput->setChecked(interfaceData.m_fUseUnscaledHiDPIOutput);
+#endif /* Q_WS_MAC */
+    m_pCheckBoxShowMiniToolBar->setChecked(interfaceData.m_fShowMiniToolBar);
+    m_pComboToolBarAlignment->setChecked(interfaceData.m_fMiniToolBarAtTop);
+
+    /* Polish page finally: */
+    polishPage();
+
+    /* Revalidate: */
+    revalidate();
+}
+
+/* Save data from corresponding widgets to cache,
+ * this task SHOULD be performed in GUI thread only: */
+void UIMachineSettingsInterface::putToCache()
+{
+    /* Prepare interface data: */
+    UIDataSettingsMachineInterface interfaceData = m_cache.base();
+
+    /* Gather interface data from page: */
+    interfaceData.m_dScaleFactor = (double)m_pEditorGuestScreenScale->value() / 100;
+#ifdef Q_WS_MAC
+    interfaceData.m_fUseUnscaledHiDPIOutput = m_pCheckBoxUnscaledHiDPIOutput->isChecked();
+#endif /* Q_WS_MAC */
+    interfaceData.m_fShowMiniToolBar = m_pCheckBoxShowMiniToolBar->isChecked();
+    interfaceData.m_fMiniToolBarAtTop = m_pComboToolBarAlignment->isChecked();
+
+    /* Cache interface data: */
+    m_cache.cacheCurrentData(interfaceData);
+}
+
+/* Save data from cache to corresponding external object(s),
+ * this task COULD be performed in other than GUI thread: */
+void UIMachineSettingsInterface::saveFromCacheTo(QVariant &data)
+{
+    /* Fetch data to machine: */
+    UISettingsPageMachine::fetchData(data);
+
+    /* Make sure machine is in valid mode & interface data was changed: */
+    if (isMachineInValidMode() && m_cache.wasChanged())
+    {
+        /* Get interface data from cache: */
+        const UIDataSettingsMachineInterface &interfaceData = m_cache.data();
+
+        /* Store interface data: */
+        if (isMachineInValidMode())
+        {
+            gEDataManager->setScaleFactor(interfaceData.m_dScaleFactor, m_machine.GetId());
+#ifdef Q_WS_MAC
+            gEDataManager->setUseUnscaledHiDPIOutput(interfaceData.m_fUseUnscaledHiDPIOutput, m_machine.GetId());
+#endif /* Q_WS_MAC */
+            gEDataManager->setMiniToolbarEnabled(interfaceData.m_fShowMiniToolBar, m_machine.GetId());
+            gEDataManager->setMiniToolbarAlignment(interfaceData.m_fMiniToolBarAtTop ? Qt::AlignTop : Qt::AlignBottom, m_machine.GetId());
+        }
+    }
+
+    /* Upload machine to data: */
+    UISettingsPageMachine::uploadData(data);
+}
+
+void UIMachineSettingsInterface::setOrderAfter(QWidget *pWidget)
+{
+    /* Tab-order: */
+    setTabOrder(pWidget, m_pSliderGuestScreenScale);
+    setTabOrder(m_pSliderGuestScreenScale, m_pEditorGuestScreenScale);
+    setTabOrder(m_pEditorGuestScreenScale, m_pCheckBoxUnscaledHiDPIOutput);
+    setTabOrder(m_pCheckBoxUnscaledHiDPIOutput, m_pCheckBoxShowMiniToolBar);
+    setTabOrder(m_pCheckBoxShowMiniToolBar, m_pComboToolBarAlignment);
+}
+
+void UIMachineSettingsInterface::retranslateUi()
+{
+    /* Translate uic generated strings: */
+    Ui::UIMachineSettingsInterface::retranslateUi(this);
+}
+
+void UIMachineSettingsInterface::polishPage()
+{
+    /* Polish interface availability: */
+    m_pMenuBarEditor->setEnabled(isMachineInValidMode());
+    m_pLabelGuestScreenScale->setEnabled(isMachineInValidMode());
+    m_pSliderGuestScreenScale->setEnabled(isMachineInValidMode());
+    m_pLabelGuestScreenScaleMin->setEnabled(isMachineInValidMode());
+    m_pLabelGuestScreenScaleMax->setEnabled(isMachineInValidMode());
+    m_pEditorGuestScreenScale->setEnabled(isMachineInValidMode());
+#ifdef Q_WS_MAC
+    m_pLabelHiDPI->setEnabled(isMachineInValidMode());
+    m_pCheckBoxUnscaledHiDPIOutput->setEnabled(isMachineInValidMode());
+#else /* !Q_WS_MAC */
+    m_pLabelHiDPI->hide();
+    m_pCheckBoxUnscaledHiDPIOutput->hide();
+#endif /* !Q_WS_MAC */
+    m_pLabelMiniToolBar->setEnabled(isMachineInValidMode());
+    m_pCheckBoxShowMiniToolBar->setEnabled(isMachineInValidMode());
+    m_pComboToolBarAlignment->setEnabled(isMachineInValidMode() && m_pCheckBoxShowMiniToolBar->isChecked());
+    m_pStatusBarEditor->setEnabled(isMachineInValidMode());
+}
+
+void UIMachineSettingsInterface::sltHandleGuestScreenScaleSliderChange()
+{
+    /* Apply proposed scale-factor: */
+    m_pEditorGuestScreenScale->blockSignals(true);
+    m_pEditorGuestScreenScale->setValue(m_pSliderGuestScreenScale->value());
+    m_pEditorGuestScreenScale->blockSignals(false);
+}
+
+void UIMachineSettingsInterface::sltHandleGuestScreenScaleEditorChange()
+{
+    /* Apply proposed scale-factor: */
+    m_pSliderGuestScreenScale->blockSignals(true);
+    m_pSliderGuestScreenScale->setValue(m_pEditorGuestScreenScale->value());
+    m_pSliderGuestScreenScale->blockSignals(false);
+}
+
+void UIMachineSettingsInterface::prepare()
+{
+    /* Apply UI decorations: */
+    Ui::UIMachineSettingsInterface::setupUi(this);
+
+    /* Create personal action-pool: */
+    m_pActionPool = UIActionPool::create(UIActionPoolType_Runtime);
+    m_pMenuBarEditor->setActionPool(m_pActionPool);
+
+    /* Assign corresponding machine ID: */
+    m_pMenuBarEditor->setMachineID(m_strMachineID);
+    m_pStatusBarEditor->setMachineID(m_strMachineID);
+
+    /* Prepare scale-factor slider: */
+    m_pSliderGuestScreenScale->setMinimum(100);
+    m_pSliderGuestScreenScale->setMaximum(200);
+    m_pSliderGuestScreenScale->setPageStep(10);
+    m_pSliderGuestScreenScale->setSingleStep(1);
+    m_pSliderGuestScreenScale->setTickInterval(10);
+    m_pSliderGuestScreenScale->setSnappingEnabled(true);
+    connect(m_pSliderGuestScreenScale, SIGNAL(valueChanged(int)), this, SLOT(sltHandleGuestScreenScaleSliderChange()));
+
+    /* Prepare scale-factor editor: */
+    m_pEditorGuestScreenScale->setMinimum(100);
+    m_pEditorGuestScreenScale->setMaximum(200);
+    vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorGuestScreenScale, 5);
+    connect(m_pEditorGuestScreenScale, SIGNAL(valueChanged(int)), this, SLOT(sltHandleGuestScreenScaleEditorChange()));
+
+    /* Translate finally: */
+    retranslateUi();
+}
+
+void UIMachineSettingsInterface::cleanup()
+{
+    /* Destroy personal action-pool: */
+    UIActionPool::destroy(m_pActionPool);
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h	(revision 54199)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h	(revision 54199)
@@ -0,0 +1,129 @@
+/** @file
+ * VBox Qt GUI - UIMachineSettingsInterface class declaration.
+ */
+
+/*
+ * Copyright (C) 2008-2015 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifndef ___UIMachineSettingsInterface_h___
+#define ___UIMachineSettingsInterface_h___
+
+/* GUI includes: */
+#include "UISettingsPage.h"
+#include "UIMachineSettingsInterface.gen.h"
+
+/* Forward declarations: */
+class UIActionPool;
+
+/* Machine settings / Interface page / Data: */
+struct UIDataSettingsMachineInterface
+{
+    /* Constructor: */
+    UIDataSettingsMachineInterface()
+        : m_dScaleFactor(1.0)
+#ifdef Q_WS_MAC
+        , m_fUseUnscaledHiDPIOutput(false)
+#endif /* Q_WS_MAC */
+        , m_fShowMiniToolBar(false)
+        , m_fMiniToolBarAtTop(false)
+    {}
+
+    /* Functions: */
+    bool equal(const UIDataSettingsMachineInterface &other) const
+    {
+        return (m_dScaleFactor == other.m_dScaleFactor) &&
+#ifdef Q_WS_MAC
+               (m_fUseUnscaledHiDPIOutput == other.m_fUseUnscaledHiDPIOutput) &&
+#endif /* Q_WS_MAC */
+               (m_fShowMiniToolBar == other.m_fShowMiniToolBar) &&
+               (m_fMiniToolBarAtTop == other.m_fMiniToolBarAtTop);
+    }
+
+    /* Operators: */
+    bool operator==(const UIDataSettingsMachineInterface &other) const { return equal(other); }
+    bool operator!=(const UIDataSettingsMachineInterface &other) const { return !equal(other); }
+
+    /* Variables: */
+    double m_dScaleFactor;
+#ifdef Q_WS_MAC
+    bool m_fUseUnscaledHiDPIOutput;
+#endif /* Q_WS_MAC */
+    bool m_fShowMiniToolBar;
+    bool m_fMiniToolBarAtTop;
+};
+typedef UISettingsCache<UIDataSettingsMachineInterface> UICacheSettingsMachineInterface;
+
+/* Machine settings / Interface page: */
+class UIMachineSettingsInterface : public UISettingsPageMachine,
+                                   public Ui::UIMachineSettingsInterface
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructor, early takes @a strMachineID into account for size-hint calculation. */
+    UIMachineSettingsInterface(const QString strMachineID);
+    /** Destructor. */
+    ~UIMachineSettingsInterface();
+
+protected:
+
+    /* API: Cache stuff: */
+    bool changed() const { return m_cache.wasChanged(); }
+
+    /* API: Load data to cache from corresponding external object(s),
+     * this task COULD be performed in other than GUI thread: */
+    void loadToCacheFrom(QVariant &data);
+    /* API: Load data to corresponding widgets from cache,
+     * this task SHOULD be performed in GUI thread only: */
+    void getFromCache();
+
+    /* API: Save data from corresponding widgets to cache,
+     * this task SHOULD be performed in GUI thread only: */
+    void putToCache();
+    /* API: Save data from cache to corresponding external object(s),
+     * this task COULD be performed in other than GUI thread: */
+    void saveFromCacheTo(QVariant &data);
+
+    /* Helper: Navigation stuff: */
+    void setOrderAfter(QWidget *pWidget);
+
+    /* Helper: Translation stuff: */
+    void retranslateUi();
+
+    /* Helper: Polishing stuff: */
+    void polishPage();
+
+private slots:
+
+    /* Handlers: Guest-screen scale-factor stuff: */
+    void sltHandleGuestScreenScaleSliderChange();
+    void sltHandleGuestScreenScaleEditorChange();
+
+private:
+
+    /** Prepare routine. */
+    void prepare();
+
+    /** Cleanup routine. */
+    void cleanup();
+
+    /* Cache: */
+    UICacheSettingsMachineInterface m_cache;
+
+    /** Holds the machine ID copy. */
+    const QString m_strMachineID;
+    /** Holds the action-pool instance. */
+    UIActionPool *m_pActionPool;
+};
+
+#endif // ___UIMachineSettingsInterface_h___
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.ui	(revision 54199)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.ui	(revision 54199)
@@ -0,0 +1,229 @@
+<ui version="4.0">
+ <comment>
+ VBox frontends: Qt4 GUI ("VirtualBox"):
+
+ Copyright (C) 2008-2015 Oracle Corporation
+
+ This file is part of VirtualBox Open Source Edition (OSE), as
+ available from http://www.virtualbox.org. This file is free software;
+ you can redistribute it and/or modify it under the terms of the GNU
+ General Public License (GPL) as published by the Free Software
+ Foundation, in version 2 as it comes in the "COPYING" file of the
+ VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ </comment>
+ <class>UIMachineSettingsInterface</class>
+ <widget class="QWidget" name="UIMachineSettingsInterface">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>350</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <layout class="QGridLayout" name="m_pLayoutMain">
+   <item row="0" column="0" colspan="3">
+    <widget class="UIMenuBarEditorWidget" name="m_pMenuBarEditor">
+     <property name="whatsThis">
+      <string>Allows to modify VM menu-bar contents.</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="m_pLabelGuestScreenScale">
+     <property name="text">
+      <string>Screen Scale Factor:</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1" rowspan="2">
+    <layout class="QGridLayout" name="m_pLayoutGuestScreenScaleSlider">
+     <property name="spacing">
+      <number>0</number>
+     </property>
+     <item row="0" column="0" colspan="3">
+      <widget class="QIAdvancedSlider" name="m_pSliderGuestScreenScale">
+       <property name="whatsThis">
+        <string>This setting determines the guest screen scale factor.</string>
+       </property>
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="m_pLabelGuestScreenScaleMin">
+       <property name="text">
+        <string>100%</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <spacer name="m_pSpacerGuestScreenScale">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item row="1" column="2">
+      <widget class="QLabel" name="m_pLabelGuestScreenScaleMax">
+       <property name="text">
+        <string>200%</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="2">
+    <widget class="QSpinBox" name="m_pEditorGuestScreenScale">
+     <property name="whatsThis">
+      <string>This setting determines the guest screen scale factor.</string>
+     </property>
+     <property name="suffix">
+      <string>%</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0">
+    <widget class="QLabel" name="m_pLabelHiDPI">
+     <property name="text">
+      <string>HiDPI:</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1" colspan="2">
+    <widget class="QCheckBox" name="m_pCheckBoxUnscaledHiDPIOutput">
+     <property name="sizePolicy">
+      <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="whatsThis">
+      <string>If checked, guest screen contents will not be scaled up to compensate for high host screen resolutions.</string>
+     </property>
+     <property name="text">
+      <string>Use &amp;Unscaled HiDPI Output</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="0">
+    <widget class="QLabel" name="m_pLabelMiniToolBar">
+     <property name="text">
+      <string>Mini ToolBar:</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1" colspan="2">
+    <widget class="QCheckBox" name="m_pCheckBoxShowMiniToolBar">
+     <property name="sizePolicy">
+      <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="whatsThis">
+      <string>If checked, show the Mini ToolBar in Fullscreen and Seamless modes.</string>
+     </property>
+     <property name="text">
+      <string>Show in &amp;Fullscreen/Seamless</string>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="1" colspan="2">
+    <widget class="QCheckBox" name="m_pComboToolBarAlignment">
+     <property name="sizePolicy">
+      <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="whatsThis">
+      <string>If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen.</string>
+     </property>
+     <property name="text">
+      <string>Show at &amp;Top of Screen</string>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="6" column="0" colspan="3">
+    <spacer name="m_pSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="7" column="0" colspan="3">
+    <widget class="UIStatusBarEditorWidget" name="m_pStatusBarEditor">
+     <property name="whatsThis">
+      <string>Allows to modify VM status-bar contents.</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>QIAdvancedSlider</class>
+   <extends>QSlider</extends>
+   <header>QIAdvancedSlider.h</header>
+  </customwidget>
+  <customwidget>
+   <class>UIMenuBarEditorWidget</class>
+   <extends>QWidget</extends>
+   <header>UIMenuBarEditorWindow.h</header>
+  </customwidget>
+  <customwidget>
+   <class>UIStatusBarEditorWidget</class>
+   <extends>QWidget</extends>
+   <header>UIStatusBarEditorWindow.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>m_pCheckBoxShowMiniToolBar</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>m_pComboToolBarAlignment</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>195</x>
+     <y>50</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>196</x>
+     <y>72</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
