QIMessageBox.h revision ce14c3a11dc5c398b34383009423cf186554c499
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding/** @file
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * VBox frontends: Qt GUI ("VirtualBox"):
b99dbaab171d91e1b664397cc40e039d0c087c65fielding * innotek Qt extensions: QIMessageBox class declaration
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding */
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding/*
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * Copyright (C) 2006-2007 innotek GmbH
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding *
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * This file is part of VirtualBox Open Source Edition (OSE), as
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * available from http://www.virtualbox.org. This file is free software;
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * you can redistribute it and/or modify it under the terms of the GNU
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * General Public License as published by the Free Software Foundation,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * distribution. VirtualBox OSE is distributed in the hope that it will
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * be useful, but WITHOUT ANY WARRANTY of any kind.
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding */
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding#ifndef __QIMessageBox_h__
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding#define __QIMessageBox_h__
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding#include <qdialog.h>
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding#include <qvbox.h>
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding#include <qmessagebox.h>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding#include <qcheckbox.h>
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding#include <qtextedit.h>
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fieldingclass QIRichLabel;
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fieldingclass QLabel;
0f081398cf0eef8cc7c66a535d450110a92dc8aefieldingclass QPushButton;
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fieldingclass QSpacerItem;
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding
64185f9824e42f21ca7b9ae6c004484215c031a7rbbclass QIMessageBox : public QDialog
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding{
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding Q_OBJECT
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fieldingpublic:
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding // for compatibility with QMessageBox
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding enum Icon
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding {
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding NoIcon = QMessageBox::NoIcon,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding Information = QMessageBox::Information,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding Warning = QMessageBox::Warning,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding Critical = QMessageBox::Critical,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding Question = QMessageBox::Question,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding GuruMeditation,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding };
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding enum
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding {
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding NoButton = 0, Ok = 1, Cancel = 2, Yes = 3, No = 4, Abort = 5,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding Retry = 6, Ignore = 7, YesAll = 8, NoAll = 9, ButtonMask = 0xff,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding Default = 0x100, Escape = 0x200, FlagMask = 0x300
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding };
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding QIMessageBox (const QString &aCaption, const QString &aText,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding Icon aIcon, int aButton0, int aButton1 = 0, int aButton2 = 0,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding QWidget *aParent = 0, const char *aName = 0, bool aModal = TRUE,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding WFlags aFlags = WStyle_DialogBorder);
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding QString flagText() const { return mFlagCB->isShown() ? mFlagCB->text() : QString::null; }
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding void setFlagText (const QString &aText);
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding bool isFlagChecked() const { return mFlagCB->isChecked(); }
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding void setFlagChecked (bool aChecked) { mFlagCB->setChecked (aChecked); }
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein QString detailsText () const { return mDetailsText->text(); }
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein void setDetailsText (const QString &aText);
f6e9f5600e77b78fb013bb543d364135961639d1rbb
c9dafaafc2650994e47f88f5239f643c97ec4cb3wrowe bool isDetailsShown() const { return mDetailsVBox->isShown(); }
1b21d7b3d97def358b2e923655edeb16613a1c31gstein void setDetailsShown (bool aShown);
024cd9589e52cf11ce765dfddb5b5f0c6e421a48gstein
024cd9589e52cf11ce765dfddb5b5f0c6e421a48gsteinprivate:
024cd9589e52cf11ce765dfddb5b5f0c6e421a48gstein
024cd9589e52cf11ce765dfddb5b5f0c6e421a48gstein QPushButton *createButton (QWidget *aParent, int aButton);
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein
b1476ba063e6d9577cd86db3db5dd98ff6bc78b9rbbprivate slots:
b1476ba063e6d9577cd86db3db5dd98ff6bc78b9rbb
9625528fcf4fa27288f3be080a1979c8ef60d7dfrbb void done0() { done (mButton0 & ButtonMask); }
47d7b9019e57fbf3eaa4d2b19bbbcce087dd8389rbb void done1() { done (mButton1 & ButtonMask); }
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding void done2() { done (mButton2 & ButtonMask); }
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
b42a7e46e4f80282bd27e96d43c9510b14ccb9aarbb void reject() {
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding QDialog::reject();
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding if (mButtonEsc)
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding setResult (mButtonEsc & ButtonMask);
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding }
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefieldingprivate:
b1476ba063e6d9577cd86db3db5dd98ff6bc78b9rbb
18343797fadabacf01280b38ea7688690d12aec0rbb int mButton0, mButton1, mButton2, mButtonEsc;
178381ebc820fb4c429aa000240cc8ec42c99c58trawick QLabel *mIconLabel;
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding QIRichLabel *mTextLabel;
138c8f7cb8254e035c6f45288e3909cd9c21be5cmartin QPushButton *mButton0PB, *mButton1PB, *mButton2PB;
f6e9f5600e77b78fb013bb543d364135961639d1rbb QVBox *mMessageVBox;
445997e06464e7625c7f0e22917f8f2d9876cfffrbb QCheckBox *mFlagCB, *mFlagCB_Main, *mFlagCB_Details;
445997e06464e7625c7f0e22917f8f2d9876cfffrbb QVBox *mDetailsVBox;
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz QTextEdit *mDetailsText;
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz QSpacerItem *mSpacer;
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz};
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz#endif
7c19ce86bbd72bba1d018522250f5f315ffbc0afjerenkrantz