VirtualBox

source: vbox/trunk/src/VBox/Debugger/VBoxDbgGui.h@ 82781

Last change on this file since 82781 was 77409, checked in by vboxsync, 5 years ago

FE/Qt: Showing machine's name in debug console's title bar.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.2 KB
Line 
1/* $Id: VBoxDbgGui.h 77409 2019-02-21 11:47:48Z vboxsync $ */
2/** @file
3 * VBox Debugger GUI - The Manager.
4 */
5
6/*
7 * Copyright (C) 2006-2019 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18#ifndef DEBUGGER_INCLUDED_SRC_VBoxDbgGui_h
19#define DEBUGGER_INCLUDED_SRC_VBoxDbgGui_h
20#ifndef RT_WITHOUT_PRAGMA_ONCE
21# pragma once
22#endif
23
24// VirtualBox COM interfaces declarations (generated header)
25#ifdef VBOX_WITH_XPCOM
26# include <VirtualBox_XPCOM.h>
27#else
28# include <VirtualBox.h>
29#endif
30
31#include "VBoxDbgStatsQt.h"
32#include "VBoxDbgConsole.h"
33
34
35/**
36 * The Debugger GUI manager class.
37 *
38 * It's job is to provide a C callable external interface and manage the
39 * windows and bit making up the debugger GUI.
40 */
41class VBoxDbgGui : public QObject
42{
43 Q_OBJECT;
44
45public:
46 /**
47 * Create a default VBoxDbgGui object.
48 */
49 VBoxDbgGui();
50
51 /**
52 * Initializes a VBoxDbgGui object by ISession.
53 *
54 * @returns VBox status code.
55 * @param pSession VBox Session object.
56 */
57 int init(ISession *pSession);
58
59 /**
60 * Initializes a VBoxDbgGui object by VM handle.
61 *
62 * @returns VBox status code.
63 * @param pUVM The user mode VM handle. The caller's reference will be
64 * consumed on success.
65 */
66 int init(PUVM pUVM);
67
68 /**
69 * Destroys the VBoxDbgGui object.
70 */
71 virtual ~VBoxDbgGui();
72
73 /**
74 * Sets the parent widget.
75 *
76 * @param pParent New parent widget.
77 * @remarks This only affects new windows.
78 */
79 void setParent(QWidget *pParent);
80
81 /**
82 * Sets the menu object.
83 *
84 * @param pMenu New menu object.
85 * @remarks This only affects new menu additions.
86 */
87 void setMenu(QMenu *pMenu);
88
89 /**
90 * Show the default statistics window, creating it if necessary.
91 *
92 * @returns VBox status code.
93 */
94 int showStatistics();
95
96 /**
97 * Repositions and resizes (optionally) the statistics to its defaults
98 *
99 * @param fResize If set (default) the size of window is also changed.
100 */
101 void repositionStatistics(bool fResize = true);
102
103 /**
104 * Show the console window (aka. command line), creating it if necessary.
105 *
106 * @returns VBox status code.
107 */
108 int showConsole();
109
110 /**
111 * Repositions and resizes (optionally) the console to its defaults
112 *
113 * @param fResize If set (default) the size of window is also changed.
114 */
115 void repositionConsole(bool fResize = true);
116
117 /**
118 * Update the desktop size.
119 * This is called whenever the reference window changes position.
120 */
121 void updateDesktopSize();
122
123 /**
124 * Notifies the debugger GUI that the console window (or whatever) has changed
125 * size or position.
126 *
127 * @param x The x-coordinate of the window the debugger is relative to.
128 * @param y The y-coordinate of the window the debugger is relative to.
129 * @param cx The width of the window the debugger is relative to.
130 * @param cy The height of the window the debugger is relative to.
131 */
132 void adjustRelativePos(int x, int y, unsigned cx, unsigned cy);
133
134 /**
135 * Gets the user mode VM handle.
136 * @returns The UVM handle.
137 */
138 PUVM getUvmHandle() const
139 {
140 return m_pUVM;
141 }
142
143 /**
144 * @returns The name of the machine.
145 */
146 QString getMachineName() const;
147
148protected slots:
149 /**
150 * Notify that a child object (i.e. a window is begin destroyed).
151 * @param pObj The object which is being destroyed.
152 */
153 void notifyChildDestroyed(QObject *pObj);
154
155protected:
156
157 /** The debugger statistics. */
158 VBoxDbgStats *m_pDbgStats;
159 /** The debugger console (aka. command line). */
160 VBoxDbgConsole *m_pDbgConsole;
161
162 /** The VirtualBox session. */
163 ISession *m_pSession;
164 /** The VirtualBox console. */
165 IConsole *m_pConsole;
166 /** The VirtualBox Machine Debugger. */
167 IMachineDebugger *m_pMachineDebugger;
168 /** The VirtualBox Machine. */
169 IMachine *m_pMachine;
170 /** The VM instance. */
171 PVM m_pVM;
172 /** The user mode VM handle. */
173 PUVM m_pUVM;
174
175 /** The parent widget. */
176 QWidget *m_pParent;
177 /** The menu object for the 'debug' menu. */
178 QMenu *m_pMenu;
179
180 /** The x-coordinate of the window we're relative to. */
181 int m_x;
182 /** The y-coordinate of the window we're relative to. */
183 int m_y;
184 /** The width of the window we're relative to. */
185 unsigned m_cx;
186 /** The height of the window we're relative to. */
187 unsigned m_cy;
188 /** The x-coordinate of the desktop. */
189 int m_xDesktop;
190 /** The y-coordinate of the desktop. */
191 int m_yDesktop;
192 /** The size of the desktop. */
193 unsigned m_cxDesktop;
194 /** The size of the desktop. */
195 unsigned m_cyDesktop;
196};
197
198
199#endif /* !DEBUGGER_INCLUDED_SRC_VBoxDbgGui_h */
200
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use