Add PDFWidget JavaScript API
[pykit.git] / PDFWidget.hh
index bbb7e51..9a82461 100644 (file)
@@ -27,12 +27,28 @@ namespace pykit {
     {
         Q_OBJECT;
     public:
-        explicit PDFWidget(QNetworkAccessManager * manager, QWidget * parent = 0);
-        PDFWidget(QString const & document, QNetworkAccessManager * manager,
+        explicit PDFWidget(QString const & id, QNetworkAccessManager * manager,
+                           QWidget * parent = 0);
+        PDFWidget(QString const & id, QString const & document, QNetworkAccessManager * manager,
                   QWidget * parent = 0);
 
         void load(QUrl const & url);
 
+    public slots:
+        void zoomIn();
+        void zoomOut();
+        void zoomDPI(double dpi);
+
+        int zoomWidth(int w = -1);
+        int zoomHeight();
+        void zoomFit();
+
+        int getPDFWidth();
+        int getPDFHeight();
+
+    protected:
+        virtual void resizeEvent(QResizeEvent * event);
+
     private slots:
         void netLoadDocument();
 
@@ -40,9 +56,19 @@ namespace pykit {
         void documentSetup();
         void showPage();
 
+        enum ZoomMode { Manual, Width, Height, Fit };
+        static double const ZoomStepDpi = 20.0;
+        static double const ZoomMaxDpi = 200.0;
+        static double const ZoomMinDpi = 50.0;
+
+        QString id_;
         QNetworkAccessManager * manager_;
         boost::scoped_ptr<Poppler::Document> document_;
         int currentPage_;
+        ZoomMode zoomMode_;
+        double dpi_;
+        int x_;
+        int y_;
     };
 
 }