qt-material-widgets/components/iconmenu.cpp

46 lines
972 B
C++
Raw Normal View History

2016-04-24 23:37:59 +00:00
#include <QEvent>
2016-04-25 06:16:54 +00:00
#include <QLayout>
2016-03-19 08:32:49 +00:00
#include "iconmenu.h"
2016-04-24 23:37:59 +00:00
#include "menu.h"
2016-04-24 22:26:28 +00:00
2016-04-24 23:37:59 +00:00
MenuOverlay::MenuOverlay(QWidget *parent)
2016-04-24 22:26:28 +00:00
: QWidget(parent)
{
setAttribute(Qt::WA_NoSystemBackground);
2016-04-24 23:37:59 +00:00
}
MenuOverlay::~MenuOverlay()
{
}
IconMenu::IconMenu(const QIcon &icon, QWidget *parent)
: IconButton(icon, parent),
2016-04-25 06:16:54 +00:00
_menuOverlay(new MenuOverlay(parent)),
_menu(new Menu(_menuOverlay)),
_menuGeometryWidget(0)
2016-04-24 23:37:59 +00:00
{
_menu->addMenuItem("Maps");
_menu->addMenuItem("Books");
_menu->addMenuItem("Flights");
_menu->addMenuItem("Apps");
2016-04-24 22:26:28 +00:00
}
IconMenu::~IconMenu()
{
}
2016-04-24 23:37:59 +00:00
void IconMenu::setOverlayParent(QWidget *parent)
{
_menuOverlay->setParent(parent);
}
2016-04-24 23:37:59 +00:00
bool IconMenu::event(QEvent *event)
{
if (QEvent::ParentChange == event->type()) {
setOverlayParent(parentWidget());
2016-04-25 06:16:54 +00:00
QSize hint = _menu->layout()->sizeHint();
_menuOverlay->setGeometry(0, 0, hint.width(), hint.height());
2016-04-24 23:37:59 +00:00
}
return IconButton::event(event);
}