UIMachineLogicSeamless.h revision 74e03e3bff53d9ff9b266e0a8af97f59d54f4e23
925be0f7305b642eb7339b6b68b4ad8ec55a57f5vboxsync/** @file
925be0f7305b642eb7339b6b68b4ad8ec55a57f5vboxsync *
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * VBox frontends: Qt GUI ("VirtualBox"):
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * UIMachineLogicSeamless class declaration
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync/*
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * Copyright (C) 2010-2013 Oracle Corporation
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync *
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * available from http://www.virtualbox.org. This file is free software;
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * you can redistribute it and/or modify it under the terms of the GNU
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * General Public License (GPL) as published by the Free Software
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync#ifndef __UIMachineLogicSeamless_h__
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync#define __UIMachineLogicSeamless_h__
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync/* Local includes: */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync#include "UIMachineLogic.h"
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync/* Forward declarations: */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsyncclass UIMultiScreenLayout;
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync/* Seamless machine logic implementation: */
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsyncclass UIMachineLogicSeamless : public UIMachineLogic
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync{
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync Q_OBJECT;
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsyncprotected:
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync /* Constructor/destructor: */
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync UIMachineLogicSeamless(QObject *pParent, UISession *pSession);
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync ~UIMachineLogicSeamless();
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync /* Check if this logic is available: */
1da87472ec03169be13f2a1af5d8f577f1e988f7vboxsync bool checkAvailability();
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync /* Multi-screen stuff: */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync int hostScreenForGuestScreen(int iScreenId) const;
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync bool hasHostScreenForGuestScreen(int iScreenId) const;
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync /* API: 3D overlay visibility stuff: */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync void notifyAbout3DOverlayVisibilityChange(bool fVisible);
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsyncprivate slots:
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync /* Handler: Console callback stuff: */
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync void sltMachineStateChanged();
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync void sltHostScreenCountChanged(int cScreenCount);
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsyncprivate:
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync /* Prepare helpers: */
496307fa6f7c3a8a184389b808ed574c56e54e36vboxsync void prepareActionGroups();
496307fa6f7c3a8a184389b808ed574c56e54e36vboxsync void prepareMachineWindows();
496307fa6f7c3a8a184389b808ed574c56e54e36vboxsync void prepareMenu();
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync
a7e71c7a198965d270939f08bf05e961dc4e3270vboxsync /* Cleanup helpers: */
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync //void cleanupMenu() {}
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync void cleanupMachineWindows();
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync void cleanupActionGroups();
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync /* Variables: */
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync UIMultiScreenLayout *m_pScreenLayout;
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync /* Friend classes: */
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync friend class UIMachineLogic;
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync friend class UIMachineWindowSeamless;
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync friend class UIMachineViewSeamless;
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync};
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync#endif // __UIMachineLogicSeamless_h__
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync
9febf2a3d6e24ecf10bbdd52858c9e5170314a46vboxsync