pagedialog.h
author Dmitriy Morozov <dmitriy@mrzv.org>
Mon, 15 Nov 2010 10:32:13 -0800
changeset 4 f7d6064291f0
parent 2 035dc97b8d04
permissions -rw-r--r--
Added make install + Monospace font for notes

#ifndef PAGEDIALOG_H
#define PAGEDIALOG_H

#include <QDialog>
#include <QDialogButtonBox>
#include <QGridLayout>
#include "ipeqtcanvas.h"
#include <vector>

using namespace ipe;
using namespace ipeqt;


class PageDialog : public QDialog
{
    Q_OBJECT

public:
    typedef std::pair<int,int>      PageViewPair;

public:
            PageDialog(Document* d, const std::vector<PageViewPair>& v);

    bool    isOk()     { return ok; }
    int     page()     { return pageChoice; }
    int     view()     { return viewChoice; }
    void    exec()     { ok = false; QDialog::exec(); }

public slots:
    void    pageChosen(int button);

protected:
    void    resizeEvent (QResizeEvent *event);

private:
    void    fillPages(QGridLayout* layout);
    void    fitBox(const Rect &box, Canvas* canvas);

    std::vector<Canvas*>        canvases;
    std::vector<PageViewPair>   views;
    Document*                   iDoc;
    QDialogButtonBox*           buttonBox;

    bool                        ok;
    int                         pageChoice;
    int                         viewChoice;
};

#endif