VBoxDbgBase.cpp revision 5bd05a82b43bf71cdcd15d6e4d031e679d63f723
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * VBox Debugger GUI - Base classes.
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * Copyright (C) 2006-2010 Oracle Corporation
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * This file is part of VirtualBox Open Source Edition (OSE), as
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * available from http://www.virtualbox.org. This file is free software;
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * you can redistribute it and/or modify it under the terms of the GNU
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * General Public License (GPL) as published by the Free Software
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * Foundation, in version 2 as it comes in the "COPYING" file of the
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
7fb4c0766e858653c9776474005a6ae6d94828afgryzor * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
7fb4c0766e858653c9776474005a6ae6d94828afgryzor/*******************************************************************************
7fb4c0766e858653c9776474005a6ae6d94828afgryzor* Header Files *
7fb4c0766e858653c9776474005a6ae6d94828afgryzor*******************************************************************************/
f6edf426ed6b8912be700db47d65a001d091909flgentis : m_pDbgGui(a_pDbgGui), m_pVM(NULL), m_hGUIThread(RTThreadNativeSelf())
5a884cb4f4b177e207554c26334ef853c5665e79lgentis int rc = VMR3AtStateRegister(pVM, atStateChange, this);
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentis * If the VM is still around.
5a884cb4f4b177e207554c26334ef853c5665e79lgentis /** @todo need to do some locking here? */
7fb4c0766e858653c9776474005a6ae6d94828afgryzor int rc = VMR3AtStateDeregister(pVM, atStateChange, this);
7fb4c0766e858653c9776474005a6ae6d94828afgryzor const char *pszPat = !rPat.isEmpty() ? Utf8Array.constData() : NULL;
ef21ee4d200e5b4bf27de8fc1de569b3531412b2lgentisVBoxDbgBase::stamEnum(const QString &rPat, PFNSTAMR3ENUM pfnEnum, void *pvUser)
634e88689ee20ac2e1ed5569959882394201e7aegryzor const char *pszPat = !rPat.isEmpty() ? Utf8Array.constData() : NULL;
7fb4c0766e858653c9776474005a6ae6d94828afgryzorVBoxDbgBase::dbgcCreate(PDBGCBACK pBack, unsigned fFlags)
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentisVBoxDbgBase::atStateChange(PVM pVM, VMSTATE enmState, VMSTATE /*enmOldState*/, void *pvUser)
ad338079daa7c8b4d59efe1c1ff40cdd6f7e2f5algentis /** @todo need to do some locking here? */
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis// V B o x D b g B a s e W i n d o w
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis// V B o x D b g B a s e W i n d o w
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis// V B o x D b g B a s e W i n d o w
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentisVBoxDbgBaseWindow::VBoxDbgBaseWindow(VBoxDbgGui *a_pDbgGui, QWidget *a_pParent)
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis : QWidget(a_pParent, Qt::Window), VBoxDbgBase(a_pDbgGui), m_fPolished(false),
5f234a82fb11224ea174961e316b5e5a80c5e1calgentis /** @todo this ain't working right. HELP! */
5f234a82fb11224ea174961e316b5e5a80c5e1calgentis setWindowState(windowState() & ~Qt::WindowMinimized);
5f234a82fb11224ea174961e316b5e5a80c5e1calgentis //activateWindow();
5f234a82fb11224ea174961e316b5e5a80c5e1calgentis //setFocus();
5f234a82fb11224ea174961e316b5e5a80c5e1calgentisVBoxDbgBaseWindow::vReposition(int a_x, int a_y, unsigned a_cx, unsigned a_cy, bool a_fResize)
5f234a82fb11224ea174961e316b5e5a80c5e1calgentis resize(a_cx - BorderSize.width(), a_cy - BorderSize.height());
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis /* Ignore if already done or no size set. */
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis /* only once. */
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis /* On X11, there is no way to determine frame geometry (including WM
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis * decorations) before the widget is shown for the first time. Stupidly
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis * enumerate other top level widgets to find the thickest frame. The code
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis * is based on the idea taken from QDialog::adjustPositionInternal(). */
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis while ((extraw == 0 || extrah == 0) && it.hasNext())
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis framew = current->frameGeometry().width() - current->width();
4d1b7892b353a05d93eacd3e7f0499d926062bb4lgentis frameh = current->frameGeometry().height() - current->height();
2238e3a3faf812851c8f60956611f2d03d8aa4b7lgentis#endif /* X11 */