UIMachineWindowNormal.h revision 2a54a98806b7ab4fb07a7f7be0e596da2c4c7397
b341a780162d809b187a8f35a10bba7642b69798vboxsync/** @file
b341a780162d809b187a8f35a10bba7642b69798vboxsync *
b341a780162d809b187a8f35a10bba7642b69798vboxsync * VBox frontends: Qt GUI ("VirtualBox"):
b341a780162d809b187a8f35a10bba7642b69798vboxsync * UIMachineWindowNormal class declaration
b341a780162d809b187a8f35a10bba7642b69798vboxsync */
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsync/*
8d1ef2acf41d1d8a0f69bfe0ac1f41638160399cvboxsync * Copyright (C) 2010-2012 Oracle Corporation
b341a780162d809b187a8f35a10bba7642b69798vboxsync *
b341a780162d809b187a8f35a10bba7642b69798vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
b341a780162d809b187a8f35a10bba7642b69798vboxsync * available from http://www.virtualbox.org. This file is free software;
b341a780162d809b187a8f35a10bba7642b69798vboxsync * you can redistribute it and/or modify it under the terms of the GNU
b341a780162d809b187a8f35a10bba7642b69798vboxsync * General Public License (GPL) as published by the Free Software
b341a780162d809b187a8f35a10bba7642b69798vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
b341a780162d809b187a8f35a10bba7642b69798vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b341a780162d809b187a8f35a10bba7642b69798vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
b341a780162d809b187a8f35a10bba7642b69798vboxsync */
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsync#ifndef __UIMachineWindowNormal_h__
b341a780162d809b187a8f35a10bba7642b69798vboxsync#define __UIMachineWindowNormal_h__
b341a780162d809b187a8f35a10bba7642b69798vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync/* Global includes: */
b341a780162d809b187a8f35a10bba7642b69798vboxsync#include <QLabel>
b341a780162d809b187a8f35a10bba7642b69798vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync/* Local includes: */
b341a780162d809b187a8f35a10bba7642b69798vboxsync#include "UIMachineWindow.h"
b341a780162d809b187a8f35a10bba7642b69798vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync/* Forward declarations: */
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsyncclass CMediumAttachment;
b341a780162d809b187a8f35a10bba7642b69798vboxsyncclass UIIndicatorsPool;
b341a780162d809b187a8f35a10bba7642b69798vboxsyncclass QIStateIndicator;
b341a780162d809b187a8f35a10bba7642b69798vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync/* Normal machine-window implementation: */
8d1ef2acf41d1d8a0f69bfe0ac1f41638160399cvboxsyncclass UIMachineWindowNormal : public UIMachineWindow
b341a780162d809b187a8f35a10bba7642b69798vboxsync{
b341a780162d809b187a8f35a10bba7642b69798vboxsync Q_OBJECT;
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsyncprotected:
b341a780162d809b187a8f35a10bba7642b69798vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Constructor: */
cae5cca5168e18e168df5541b11f462b60062a7avboxsync UIMachineWindowNormal(UIMachineLogic *pMachineLogic, ulong uScreenId);
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsyncprivate slots:
b341a780162d809b187a8f35a10bba7642b69798vboxsync
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync#ifdef Q_WS_X11
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync /** X11: Performs machine-window async geometry normalization. */
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync void sltNormalizeGeometry() { normalizeGeometry(true); }
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync#endif /* Q_WS_X11 */
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Session event-handlers: */
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync void sltMachineStateChanged();
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync void sltMediumChange(const CMediumAttachment &attachment);
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync void sltUSBControllerChange();
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync void sltUSBDeviceStateChange();
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync void sltNetworkAdapterChange();
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync void sltSharedFolderChange();
41efb8907f48385457ad2c28f18614d80869fbe6vboxsync void sltVideoCaptureChange();
103b0154d1ec1325cacf0cabaedab9581a317ce2vboxsync void sltCPUExecutionCapChange();
cf7696ec31e368b66b1ad49a4b03beadd5d62ba8vboxsync
9f801b83895937ce4d726206e5859637ff9f5166vboxsync /* LED connections: */
b341a780162d809b187a8f35a10bba7642b69798vboxsync void sltUpdateIndicators();
b341a780162d809b187a8f35a10bba7642b69798vboxsync void sltShowIndicatorsContextMenu(QIStateIndicator *pIndicator, QContextMenuEvent *pEvent);
b341a780162d809b187a8f35a10bba7642b69798vboxsync void sltProcessGlobalSettingChange(const char *aPublicName, const char *aName);
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsyncprivate:
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsync /* Prepare helpers: */
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void prepareSessionConnections();
b341a780162d809b187a8f35a10bba7642b69798vboxsync void prepareMenu();
b341a780162d809b187a8f35a10bba7642b69798vboxsync void prepareStatusBar();
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void prepareVisualState();
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void prepareHandlers();
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void loadSettings();
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsync /* Cleanup helpers: */
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void saveSettings();
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync //void cleanupHandlers() {}
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync //coid cleanupVisualState() {}
b341a780162d809b187a8f35a10bba7642b69798vboxsync void cleanupStatusBar();
499be9a0008af6b44433986c7002727ac06513a9vboxsync //void cleanupMenu() {}
499be9a0008af6b44433986c7002727ac06513a9vboxsync //void cleanupConsoleConnections() {}
b341a780162d809b187a8f35a10bba7642b69798vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Translate stuff: */
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void retranslateUi();
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Show stuff: */
19a29c5b8ea65c618ae3825b6cf84bc3688a36b0vboxsync void showInNecessaryMode();
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync /* Helper: Machine-window geometry stuff: */
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync void normalizeGeometry(bool fAdjustPosition);
2a54a98806b7ab4fb07a7f7be0e596da2c4c7397vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Update stuff: */
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync void updateAppearanceOf(int aElement);
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Event handler: */
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync bool event(QEvent *pEvent);
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Helpers: */
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync UIIndicatorsPool* indicatorsPool() { return m_pIndicatorsPool; }
4905ec5ae003d59c5f9d23af549a6d96280f2807vboxsync bool isMaximizedChecked();
d379ba1c87d6c4b960af1ab0ddce02de81806a55vboxsync void updateIndicatorState(QIStateIndicator *pIndicator, KDeviceType deviceType);
a863d9f744a099bf656aae460db84a2a9a686920vboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Widgets: */
b341a780162d809b187a8f35a10bba7642b69798vboxsync UIIndicatorsPool *m_pIndicatorsPool;
b341a780162d809b187a8f35a10bba7642b69798vboxsync QLabel *m_pNameHostkey;
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync
4a7a0d68cae413e6f422d597644c16681f475bdavboxsync /* Variables: */
b341a780162d809b187a8f35a10bba7642b69798vboxsync QTimer *m_pIdleTimer;
b341a780162d809b187a8f35a10bba7642b69798vboxsync QRect m_normalGeometry;
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsync /* Factory support: */
b341a780162d809b187a8f35a10bba7642b69798vboxsync friend class UIMachineWindow;
b341a780162d809b187a8f35a10bba7642b69798vboxsync};
b341a780162d809b187a8f35a10bba7642b69798vboxsync
b341a780162d809b187a8f35a10bba7642b69798vboxsync#endif // __UIMachineWindowNormal_h__
3488e51e244adfc756837287fbfbcc03eca8bf7avboxsync