/** @file
* VBox Qt GUI - UIMachineLogicSeamless class declaration.
*/
/*
* Copyright (C) 2010-2013 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* 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 ___UIMachineLogicSeamless_h___
#define ___UIMachineLogicSeamless_h___
/* Local includes: */
#include "UIMachineLogic.h"
/* Forward declarations: */
/* Seamless machine logic implementation: */
{
/* Constructor/destructor: */
/* Check if this logic is available: */
bool checkAvailability();
/** Returns machine-window flags for 'Seamless' machine-logic and passed @a uScreenId. */
virtual Qt::WindowFlags windowFlags(ulong uScreenId) const { Q_UNUSED(uScreenId); return Qt::FramelessWindowHint; }
/** Adjusts machine-window geometry if necessary for 'Seamless'. */
virtual void adjustMachineWindowsGeometry();
/* Helpers: Multi-screen stuff: */
int hostScreenForGuestScreen(int iScreenId) const;
bool hasHostScreenForGuestScreen(int iScreenId) const;
/* API: 3D overlay visibility stuff: */
void notifyAbout3DOverlayVisibilityChange(bool fVisible);
/** Checks if some visual-state type was requested. */
/* Handler: Console callback stuff: */
void sltMachineStateChanged();
void sltScreenLayoutChanged();
/** Handles guest-screen count change. */
virtual void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
/** Handles host-screen count change. */
virtual void sltHostScreenCountChange();
#ifndef RT_OS_DARWIN
/** Invokes popup-menu. */
void sltInvokePopupMenu();
#endif /* !RT_OS_DARWIN */
/* Prepare helpers: */
void prepareActionGroups();
void prepareActionConnections();
void prepareMachineWindows();
#ifndef Q_WS_MAC
void prepareMenu();
#endif /* !Q_WS_MAC */
/* Cleanup helpers: */
#ifndef Q_WS_MAC
void cleanupMenu();
#endif /* !Q_WS_MAC */
void cleanupMachineWindows();
void cleanupActionConnections();
void cleanupActionGroups();
/* Variables: */
#ifndef RT_OS_DARWIN
/** Holds the popup-menu instance. */
#endif /* !RT_OS_DARWIN */
/* Friend classes: */
};
#endif /* !___UIMachineLogicSeamless_h___ */