UIMachineWindowNormal.h revision 4a7a0d68cae413e6f422d597644c16681f475bda
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest/** @file
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest *
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * VBox frontends: Qt GUI ("VirtualBox"):
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * UIMachineWindowNormal class declaration
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest/*
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * Copyright (C) 2010-2012 Oracle Corporation
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest *
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * This file is part of VirtualBox Open Source Edition (OSE), as
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * available from http://www.virtualbox.org. This file is free software;
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * you can redistribute it and/or modify it under the terms of the GNU
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * General Public License (GPL) as published by the Free Software
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * Foundation, in version 2 as it comes in the "COPYING" file of the
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest#ifndef __UIMachineWindowNormal_h__
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest#define __UIMachineWindowNormal_h__
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest/* Global includes: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest#include <QLabel>
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest/* Local includes: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest#include "UIMachineWindow.h"
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest/* Forward declarations: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrestclass CMediumAttachment;
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrestclass UIIndicatorsPool;
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrestclass QIStateIndicator;
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest/* Normal machine-window implementation: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrestclass UIMachineWindowNormal : public UIMachineWindow
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest{
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest Q_OBJECT;
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrestprotected:
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest /* Constructor: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest UIMachineWindowNormal(UIMachineLogic *pMachineLogic, ulong uScreenId);
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrestprivate slots:
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest /* Session event-handlers: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltMachineStateChanged();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltMediumChange(const CMediumAttachment &attachment);
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltUSBControllerChange();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltUSBDeviceStateChange();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltNetworkAdapterChange();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltSharedFolderChange();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltCPUExecutionCapChange();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest /* LED connections: */
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltUpdateIndicators();
8c87dc0aa16e17b16a878d07afcbae32f122d693Andrew Forrest void sltShowIndicatorsContextMenu(QIStateIndicator *pIndicator, QContextMenuEvent *pEvent);
void sltProcessGlobalSettingChange(const char *aPublicName, const char *aName);
private:
/* Prepare helpers: */
void prepareSessionConnections();
void prepareMenu();
void prepareStatusBar();
void prepareVisualState();
void prepareHandlers();
void loadSettings();
/* Cleanup helpers: */
void saveSettings();
//void cleanupHandlers() {}
//coid cleanupVisualState() {}
void cleanupStatusBar();
//void cleanupMenu() {}
//void cleanupConsoleConnections() {}
/* Translate stuff: */
void retranslateUi();
/* Show stuff: */
void showInNecessaryMode();
/* Update stuff: */
void updateAppearanceOf(int aElement);
/* Event handler: */
bool event(QEvent *pEvent);
/* Helpers: */
UIIndicatorsPool* indicatorsPool() { return m_pIndicatorsPool; }
bool isMaximizedChecked();
void updateIndicatorState(QIStateIndicator *pIndicator, KDeviceType deviceType);
/* Widgets: */
UIIndicatorsPool *m_pIndicatorsPool;
QWidget *m_pCntHostkey;
QLabel *m_pNameHostkey;
/* Variables: */
QTimer *m_pIdleTimer;
QRect m_normalGeometry;
/* Factory support: */
friend class UIMachineWindow;
};
#endif // __UIMachineWindowNormal_h__