|
#include <Wt/WApplication>
|
|
#include <Wt/WLogger>
|
|
#include <Wt/WAnchor>
|
|
#include <Wt/WIconPair>
|
|
#include <Wt/WGridLayout>
|
|
#include <Wt/WVBoxLayout>
|
|
#include <Wt/WCheckBox>
|
|
#include <Wt/WScrollArea>
|
|
#include <Wt/WText>
|
|
#include <Wt/WDialog>
|
|
#include <Wt/WPushButton>
|
|
#include <Wt/WBreak>
|
|
#include <Wt/WWidgetItem>
|
|
#include <Wt/WTabWidget>
|
|
#include <Wt/WContainerWidget>
|
|
#include <Wt/WEnvironment>
|
|
|
|
#include <string>
|
|
|
|
using namespace Wt;
|
|
using namespace std;
|
|
|
|
class test : public WApplication
|
|
{
|
|
public:
|
|
test(const WEnvironment& env)
|
|
: WApplication(env)
|
|
{
|
|
_grid = new WGridLayout();
|
|
_grid->setContentsMargins(10,10,10,10);
|
|
|
|
_scroll_area = new WScrollArea();
|
|
_scroll_area->resize( 300 , 400 ) ;
|
|
_scroll_area->setMinimumSize( 300 , 400 ) ;
|
|
_scroll_area->setScrollBarPolicy( WScrollArea::ScrollBarAsNeeded );
|
|
_scroll_area->setPositionScheme(Absolute);
|
|
_scroll_area->setMargin(10);
|
|
|
|
_hbox = new WVBoxLayout();
|
|
|
|
WContainerWidget * scrollContainer = new WContainerWidget();
|
|
_scroll_area->setWidget(scrollContainer );
|
|
scrollContainer->resize( WLength::Auto , WLength::Auto );
|
|
//scrollContainer->setMinimumSize(290, WLength::Auto );
|
|
scrollContainer->setLayout ( _hbox ) ;
|
|
|
|
for (unsigned i = 0; i < 100; ++i) {
|
|
WCheckBox *cb = new WCheckBox("Bla" + boost::lexical_cast<std::string>(i));
|
|
_hbox->addWidget(cb);
|
|
}
|
|
|
|
// up button -------------------------------------------------------
|
|
WIconPair *_up = new WIconPair( "icons/up_48.png","icons/up_48.png" );
|
|
_up->setToolTip(WString::tr("recordlist.columns.up"));
|
|
_up->icon1Clicked().connect(this, &test::doit);
|
|
// down button -------------------------------------------------------
|
|
WIconPair *_down = new WIconPair( "icons/down_48.png","icons/down_48.png" );
|
|
_down->setToolTip(WString::tr("recordlist.columns.down"));
|
|
//----- up down container -------------------------------------------
|
|
WContainerWidget * upDownContainer = new WContainerWidget();
|
|
upDownContainer->addWidget(_up);
|
|
upDownContainer->addWidget(new WBreak());
|
|
upDownContainer->addWidget(_down);
|
|
|
|
int row = 0 ; int column = 0 ;
|
|
_grid->addWidget( _scroll_area , row , column , AlignTop | AlignLeft ) ;
|
|
column++ ;
|
|
_grid->addWidget( upDownContainer , row , column, AlignMiddle | AlignRight ) ;
|
|
column = 0 ; row++ ;
|
|
_grid->addWidget( new WContainerWidget() , row , column, 1 , 2 , AlignBottom | AlignCenter) ;
|
|
_grid->setRowStretch(0, 1 ) ;
|
|
_grid->setRowStretch(1, 0 ) ;
|
|
_grid->setColumnStretch( 0 , 1 ) ;
|
|
_grid->setColumnStretch( 1 , 0 ) ;
|
|
//---
|
|
root()->setLayout(_grid);
|
|
}
|
|
|
|
void doit() {
|
|
static int index = 5;
|
|
WLayoutItem *item = _hbox->itemAt(index);
|
|
WWidget *w = ((WWidgetItem *)(item))->widget();
|
|
_hbox->removeItem(item) ;
|
|
_hbox->insertWidget( index + 1 , w ) ;
|
|
|
|
++index;
|
|
// _scroll_area->refresh();
|
|
}
|
|
|
|
private:
|
|
WGridLayout *_grid;
|
|
WScrollArea *_scroll_area;
|
|
WVBoxLayout *_hbox;
|
|
};
|
|
|
|
WApplication *createApplication(const WEnvironment& env)
|
|
{
|
|
return new test(env);
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
return WRun(argc, argv, &createApplication);
|
|
}
|