/** @file
* VBox Qt GUI - UIGChooserItemGroup class declaration.
*/
/*
* Copyright (C) 2012 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 __UIGChooserItemGroup_h__
#define __UIGChooserItemGroup_h__
/* Qt includes: */
#include <QWidget>
#include <QPixmap>
/* GUI includes: */
#include "UIGChooserItem.h"
/* Forward declarations: */
/* Graphics group-item
{
/* Notifiers: Toggle stuff: */
void sigToggleStarted();
void sigToggleFinished();
/* Class-name used for drag&drop mime-data format: */
/* Graphics-item type: */
/* Constructor (main-root-item): */
/* Constructor (temporary main-root-item/root-item copy): */
/* Constructor (new non-root-item): */
UIGChooserItemGroup(UIGChooserItem *pParent, const QString &strName, bool fOpened = false, int iPosition = -1);
/* Constructor (new non-root-item copy): */
/* Destructor: */
/* API: Basic stuff: */
QString definition() const;
bool isClosed() const;
bool isOpened() const;
/* API: Children stuff: */
bool isContainsLockedMachine();
/* Handler: Name editing stuff: */
void sltNameEditingFinished();
/* Handler: Toggle stuff: */
void sltGroupToggleStart();
void sltGroupToggleFinish(bool fToggled);
/* Handlers: Indent root stuff: */
void sltIndentRoot();
void sltUnindentRoot();
/* Data enumerator: */
enum GroupItemData
{
/* Layout hints: */
};
/* Data provider: */
/* Helpers: Prepare stuff: */
void prepare();
/* Helpers: Update stuff: */
void handleRootStatusChange();
void updateVisibleName();
void updateItemCountInfo();
void updateMinimumHeaderSize();
void updateToolTip();
void updateToggleButtonToolTip();
/* Helper: Translate stuff: */
void retranslateUi();
/* Helpers: Basic stuff: */
void show();
void hide();
void startEditing();
/* Helpers: Children stuff: */
void sortItems();
/* Helpers: Layout stuff: */
void updateLayout();
int minimumWidthHint(bool fOpenedGroup) const;
int minimumHeightHint(bool fOpenedGroup) const;
int minimumWidthHint() const;
int minimumHeightHint() const;
/* Helpers: Drag&drop stuff: */
void resetDragToken();
/* Handler: Resize handling stuff: */
/* Handlers: Hover handling stuff: */
/* Helpers: Paint stuff: */
/* Helpers: Animation stuff: */
void updateAnimationParameters();
void setAdditionalHeight(int iAdditionalHeight);
int additionalHeight() const;
/* Helper: Color stuff: */
/* Variables: */
bool m_fClosed;
int m_iAdditionalHeight;
int m_iCornerRadius;
bool m_fMainRoot;
int m_iBlackoutDarkness;
/* Cached values: */
};
{
/* Notifier: Editing stuff: */
void sigEditingFinished();
/* Constructor: */
/* API: Text stuff: */
/* API: Font stuff: */
void setFocus();
/* Handler: Event-filter: */
/* Helper: Context-menu stuff: */
/* Variables: */
};
#endif /* __UIGChooserItemGroup_h__ */