pagedialog.h
author Dmitriy Morozov <dmitriy@mrzv.org>
Sun, 21 Nov 2010 07:39:16 -0800
changeset 5 1ff3df15f3dc
parent 2 035dc97b8d04
permissions -rw-r--r--
Updated for Ipe 7.0.12; backwards incompatible changes

#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