VirtualBox

Ignore:
Timestamp:
Aug 14, 2020 2:06:17 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
139924
Message:

FE/Qt: bugref:6659: macOS: Extending GUI/Customizations extra-data flag with noUserElements option available on macOS only (alternative to noMenuBar on other platforms) which hides both menu-bar and dock.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp

    r85398 r85772  
    18341834    switch (guiFeatureType)
    18351835    {
    1836         case GUIFeatureType_NoSelector:  strResult = "noSelector"; break;
    1837         case GUIFeatureType_NoMenuBar:   strResult = "noMenuBar"; break;
    1838         case GUIFeatureType_NoStatusBar: strResult = "noStatusBar"; break;
     1836        case GUIFeatureType_NoSelector:     strResult = "noSelector"; break;
     1837#ifdef VBOX_WS_MAC
     1838        case GUIFeatureType_NoUserElements: strResult = "noUserElements"; break;
     1839#else
     1840        case GUIFeatureType_NoMenuBar:      strResult = "noMenuBar"; break;
     1841#endif
     1842        case GUIFeatureType_NoStatusBar:    strResult = "noStatusBar"; break;
    18391843        default:
    18401844        {
     
    18511855    /* Here we have some fancy stuff allowing us
    18521856     * to search through the keys using 'case-insensitive' rule: */
    1853     QStringList keys;      QList<GUIFeatureType> values;
    1854     keys << "noSelector";  values << GUIFeatureType_NoSelector;
    1855     keys << "noMenuBar";   values << GUIFeatureType_NoMenuBar;
    1856     keys << "noStatusBar"; values << GUIFeatureType_NoStatusBar;
     1857    QStringList keys;         QList<GUIFeatureType> values;
     1858    keys << "noSelector";     values << GUIFeatureType_NoSelector;
     1859#ifdef VBOX_WS_MAC
     1860    keys << "noUserElements"; values << GUIFeatureType_NoUserElements;
     1861#else
     1862    keys << "noMenuBar";      values << GUIFeatureType_NoMenuBar;
     1863#endif
     1864    keys << "noStatusBar";    values << GUIFeatureType_NoStatusBar;
    18571865    /* None type for unknown words: */
    18581866    if (!keys.contains(strGuiFeatureType, Qt::CaseInsensitive))
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h

    r85454 r85772  
    811811enum GUIFeatureType
    812812{
    813     GUIFeatureType_None        = 0,
    814     GUIFeatureType_NoSelector  = RT_BIT(0),
    815     GUIFeatureType_NoMenuBar   = RT_BIT(1),
    816     GUIFeatureType_NoStatusBar = RT_BIT(2),
    817     GUIFeatureType_All         = 0xFF
     813    GUIFeatureType_None           = 0,
     814    GUIFeatureType_NoSelector     = RT_BIT(0),
     815#ifdef VBOX_WS_MAC
     816    GUIFeatureType_NoUserElements = RT_BIT(1),
     817#else
     818    GUIFeatureType_NoMenuBar      = RT_BIT(1),
     819#endif
     820    GUIFeatureType_NoStatusBar    = RT_BIT(2),
     821    GUIFeatureType_All            = 0xFF
    818822};
    819823
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp

    r85454 r85772  
    19101910#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
    19111911           << GUI_Progress_LegacyMode
     1912           << GUI_Customizations
    19121913           << GUI_RestrictedGlobalSettingsPages << GUI_RestrictedMachineSettingsPages
    19131914           << GUI_LanguageID
  • trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaApplication.h

    r82968 r85772  
    7070    void hide();
    7171
     72    /** Hides user elements such as menu-bar and dock. */
     73    void hideUserElements();
     74
    7275    /** Register native @a pfnCallback of the @a pvUser taking event @a fMask into account. */
    7376    void registerForNativeEvents(uint32_t fMask, PFNVBOXCACALLBACK pfnCallback, void *pvUser);
  • trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaApplication.mm

    r82968 r85772  
    324324}
    325325
     326void UICocoaApplication::hideUserElements()
     327{
     328    [m_pNative setPresentationOptions:NSApplicationPresentationHideMenuBar | NSApplicationPresentationHideDock];
     329}
     330
    326331void UICocoaApplication::registerForNativeEvents(uint32_t fMask, PFNVBOXCACALLBACK pfnCallback, void *pvUser)
    327332{
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp

    r84790 r85772  
    5151#include "UISettingsDialogSpecific.h"
    5252#ifdef VBOX_WS_MAC
     53# include "UICocoaApplication.h"
    5354# include "VBoxUtils-darwin.h"
    5455#endif
     
    13111312        pGuestAutoresizeSwitch->setChecked(gEDataManager->guestScreenAutoResizeEnabled(uMachineID));
    13121313
    1313 #ifndef VBOX_WS_MAC
     1314#ifdef VBOX_WS_MAC
     1315        /* User-element (Menu-bar and Dock) options: */
     1316        {
     1317            const bool fDisabled = gEDataManager->guiFeatureEnabled(GUIFeatureType_NoUserElements);
     1318            if (fDisabled)
     1319                UICocoaApplication::instance()->hideUserElements();
     1320        }
     1321#else /* !VBOX_WS_MAC */
    13141322        /* Menu-bar options: */
    13151323        {
Note: See TracChangeset for help on using the changeset viewer.

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