CGAL::Qt_widget_standard_toolbar

Definition

The standard toolbar includes the basic tools used for zooming and translating in a Qt_widget.

#include <CGAL/IO/Qt_widget_standard_toolbar.h>

Inherits From

QToolBar

Creation

Qt_widget_standard_toolbar stoolbar ( Qt_widget *w,
QMainWindow *mw,
QWidget* parent,
bool newline = true,
const char* name = 0);
This constructor creates a new toolbar, called name, in your application, containing all the standard tools. The first parameter w is a non-null pointer to the Qt_widget object on which the toolbar functionalities act. The second parameter mw is a pointer to the QMainWindow that manages the toolbar. The later is added to the top area of the QMainWindow, unless mw=0. mw, parent, newline, name are passed to the QMainWindow constructor (with first parameter label=''Qt_widget standard toolbar''1).


Qt_widget_standard_toolbar stoolbar ( Qt_widget *w,
QMainWindow *parent = 0,
const char* name = 0);
Simplified version of the previous one. The parent is the QMainWindow that manages the toolbar.

const QToolBar* stoolbar.toolbar ()
Deprecated: (in CGAL-2.4 the standard toolbar was not derived from QToolBar) Returns a pointer to the QToolBar this itself.

public slots:

void stoolbar.back () Goes back in the history list of the standard toolbar.

void stoolbar.forward ()
Goes forward in the history list of the standard toolbar.

void stoolbar.clear_history ()
Clears the history list of the standard toolbar.

Example

#include <CGAL/Cartesian.h>
#include <CGAL/Point_2.h>
#include <CGAL/Delaunay_triangulation_2.h>
#include <CGAL/IO/Qt_widget_Delaunay_triangulation_2.h>

#include <qapplication.h>
#include <qmainwindow.h>

#include <CGAL/IO/Qt_widget.h>
#include <CGAL/IO/Qt_widget_layer.h>
#include <CGAL/IO/Qt_widget_standard_toolbar.h>

typedef CGAL::Cartesian<double>             Rep;
typedef CGAL::Point_2<Rep>                  Point;
typedef CGAL::Delaunay_triangulation_2<Rep> Delaunay;

Delaunay dt;

class My_layer : public CGAL::Qt_widget_layer{
  void draw(){
    *widget << CGAL::BLACK;
    *widget << dt;
  }
};

class My_widget : public CGAL::Qt_widget {
public:
  My_widget(QMainWindow* c) : CGAL::Qt_widget(c) {};
private:
  //this event is called only when the user presses the mouse
  void mousePressEvent(QMouseEvent *e)
  {
    Qt_widget::mousePressEvent(e);
    dt.insert(Point(x_real(e->x()), y_real(e->y())));
    redraw();
  }
};

class My_window : public QMainWindow{
public:
  My_window(int x, int y)
  {
    widget = new My_widget(this);
    setCentralWidget(widget);
    resize(x,y);
    widget->set_window(0, x, 0, y);
    
    //How to attach the standard toolbar
    stoolbar = new CGAL::Qt_widget_standard_toolbar(widget, this,
                                                    "Standard toolbar");
    widget->attach(&v);
  }
private:
  My_widget *widget;
  My_layer  v;
  CGAL::Qt_widget_standard_toolbar *stoolbar;
};

int main( int argc, char **argv )
{
    QApplication app( argc, argv );
    My_window W(400,400);
    app.setMainWidget( &W );
    W.show();
    W.setCaption("Using the Standard Toolbar");
    return app.exec();
}

This example is implemented in the fifth tutorial. You can look over the code to see how the code works.


Footnotes

 1  but this can change in future version