Project

General

Profile

Bug #3629 ยป RectArea.cpp

Benoit Daccache, 03/26/2015 12:56 PM

 
#include <Wt/WApplication>
#include <Wt/WEnvironment>

#include <iostream>
#include <Wt/WContainerWidget>
#include <Wt/WRectArea>
#include <Wt/WPushButton>
#include <Wt/WVBoxLayout>
#include <Wt/WPaintedWidget>
#include <Wt/WPainter>
#include <Wt/WPaintDevice>
using namespace Wt;


class PaintedWidget : public WPaintedWidget {
public:
PaintedWidget()
{
Wt::WRectArea *rect = new Wt::WRectArea(294, 226, 265, 41);
rect->setToolTip("title");
rect->setCursor(Wt::CrossCursor);
addArea(rect);
}

bool placed;
protected:
virtual void paintEvent(WPaintDevice *device)
{
WPainter painter(device);
painter.drawRect(0, 0, 400, 400);
}
};



Wt::WApplication *createApp(const Wt::WEnvironment& env)
{
WApplication *app = new WApplication(env);
app->setCssTheme("polished");


Wt::WVBoxLayout *layout = new WVBoxLayout();
app->root()->setLayout(layout);

PaintedWidget *painter = new PaintedWidget();
WPushButton *btn = new WPushButton("hide/show");

layout->insertWidget(0, painter);
layout->insertWidget(1, btn);
painter->placed = true;

btn->clicked().connect(std::bind([ = ]() {
if (painter->placed)
layout->removeWidget(painter);
else layout->insertWidget(1, painter);

painter->placed = ! painter->placed;
}));


return app;
}

int main(int argc, char **argv)
{
std::cout << WT_CLASS << std::endl;
return WRun(argc, argv, &createApp);
}

    (1-1/1)