VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.h

Last change on this file was 98421, checked in by vboxsync, 16 months ago

Merging r155511 from gui4 branch: FE/Qt: Runtime UI: Pass uimachine instead of uisession to dock icon preview object.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1/* $Id: UIAbstractDockIconPreview.h 98421 2023-02-02 09:21:40Z vboxsync $ */
2/** @file
3 * VBox Qt GUI - Abstract class for the dock icon preview.
4 */
5
6/*
7 * Copyright (C) 2009-2023 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28#ifndef FEQT_INCLUDED_SRC_platform_darwin_UIAbstractDockIconPreview_h
29#define FEQT_INCLUDED_SRC_platform_darwin_UIAbstractDockIconPreview_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34/* System includes */
35#include <ApplicationServices/ApplicationServices.h>
36
37/* VBox includes */
38#include "VBoxUtils-darwin.h"
39
40class UIFrameBuffer;
41class UIMachine;
42
43class QPixmap;
44
45class UIAbstractDockIconPreview
46{
47public:
48 UIAbstractDockIconPreview(UIMachine *pMachine, const QPixmap& overlayImage);
49 virtual ~UIAbstractDockIconPreview() {}
50
51 virtual void updateDockOverlay() = 0;
52 virtual void updateDockPreview(CGImageRef VMImage) = 0;
53 virtual void updateDockPreview(UIFrameBuffer *pFrameBuffer);
54
55 virtual void setOriginalSize(int /* aWidth */, int /* aHeight */) {}
56};
57
58class UIAbstractDockIconPreviewHelper
59{
60public:
61 UIAbstractDockIconPreviewHelper(UIMachine *pMachine, const QPixmap& overlayImage);
62 virtual ~UIAbstractDockIconPreviewHelper();
63 void initPreviewImages();
64 void drawOverlayIcons(CGContextRef context);
65
66 void* currentPreviewWindowId() const;
67
68 /* Flipping is necessary cause the drawing context in Mac OS X is flipped by 180 degree */
69 inline CGRect flipRect(CGRect rect) const { return ::darwinFlipCGRect(rect, m_dockIconRect); }
70 inline CGRect centerRect(CGRect rect) const { return ::darwinCenterRectTo(rect, m_dockIconRect); }
71 inline CGRect centerRectTo(CGRect rect, const CGRect& toRect) const { return ::darwinCenterRectTo(rect, toRect); }
72
73 /* Private member vars */
74 UIMachine *m_pMachine;
75 const CGRect m_dockIconRect;
76
77 CGImageRef m_overlayImage;
78 CGImageRef m_dockMonitor;
79 CGImageRef m_dockMonitorGlossy;
80
81 CGRect m_updateRect;
82 CGRect m_monitorRect;
83};
84
85#endif /* !FEQT_INCLUDED_SRC_platform_darwin_UIAbstractDockIconPreview_h */
86
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use