You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
1.9 KiB
116 lines
1.9 KiB
#include <qobject.h> |
|
#include <qlabel.h> |
|
#include <qscrollview.h> |
|
|
|
|
|
#include <kinstance.h> |
|
#include <klocale.h> |
|
#include <kdebug.h> |
|
|
|
|
|
#include "kdvi_multipage.moc" |
|
|
|
|
|
extern "C" |
|
{ |
|
void *init_libkdvi() |
|
{ |
|
kdDebug() << "DVI Widget created!" << endl; |
|
return new KDVIMultiPageFactory; |
|
} |
|
}; |
|
|
|
|
|
KInstance *KDVIMultiPageFactory::s_instance = 0L; |
|
|
|
|
|
KDVIMultiPageFactory::KDVIMultiPageFactory() |
|
{ |
|
} |
|
|
|
|
|
KDVIMultiPageFactory::~KDVIMultiPageFactory() |
|
{ |
|
if (s_instance) |
|
delete s_instance; |
|
|
|
s_instance = 0; |
|
} |
|
|
|
|
|
QObject *KDVIMultiPageFactory::create(QObject *parent, const char *name , const char*, const QStringList & ) |
|
{ |
|
QObject *obj = new KDVIMultiPage((QWidget *)parent, name); |
|
emit objectCreated(obj); |
|
return obj; |
|
} |
|
|
|
|
|
KInstance *KDVIMultiPageFactory::instance() |
|
{ |
|
if (!s_instance) |
|
s_instance = new KInstance("kdvi"); |
|
return s_instance; |
|
} |
|
|
|
|
|
KDVIMultiPage::KDVIMultiPage(QWidget *parent, const char *name) |
|
: KMultiPage(parent, name) |
|
{ |
|
setInstance(KDVIMultiPageFactory::instance()); |
|
|
|
window = new dviWindow(300, 100, "cx", "a4", 1, scrollView()); |
|
|
|
scrollView()->addChild(window); |
|
} |
|
|
|
|
|
KDVIMultiPage::~KDVIMultiPage() |
|
{ |
|
} |
|
|
|
|
|
bool KDVIMultiPage::openFile() |
|
{ |
|
window->setFile(m_file); |
|
|
|
emit numberOfPages(window->totalPages()); |
|
scrollView()->resizeContents(window->width(), window->height()); |
|
} |
|
|
|
|
|
// test code |
|
QStringList KDVIMultiPage::fileFormats() |
|
{ |
|
QStringList r; |
|
r << "*.dvi|DVI files (*dvi)"; |
|
return r; |
|
} |
|
|
|
|
|
bool KDVIMultiPage::gotoPage(int page) |
|
{ |
|
kdDebug() << "New Page number: " << page << endl; |
|
return true; |
|
} |
|
|
|
|
|
void KDVIMultiPage::setZoom(double zoom) |
|
{ |
|
kdDebug() << "New Zoom Factor: " << zoom << endl; |
|
|
|
window->setZoom(zoom*100); |
|
scrollView()->resizeContents(window->width(), window->height()); |
|
} |
|
|
|
|
|
double KDVIMultiPage::zoomForHeight(int height) |
|
{ |
|
return height/200.0; |
|
} |
|
|
|
|
|
double KDVIMultiPage::zoomForWidth(int width) |
|
{ |
|
return width/300.0; |
|
}
|
|
|