summaryrefslogtreecommitdiffstats
path: root/scribus/page.h
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/page.h
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/page.h')
-rw-r--r--scribus/page.h115
1 files changed, 115 insertions, 0 deletions
diff --git a/scribus/page.h b/scribus/page.h
new file mode 100644
index 0000000..88447d7
--- /dev/null
+++ b/scribus/page.h
@@ -0,0 +1,115 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+/***************************************************************************
+ page.h - description
+ -------------------
+ begin : Sat Apr 7 2001
+ copyright : (C) 2001 by Franz Schmid
+ email : Franz.Schmid@altmuehlnet.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef PAGE_H
+#define PAGE_H
+
+#include <utility>
+
+#include <QList>
+
+#include "scribusapi.h"
+#include "undostate.h"
+#include "scribusstructs.h"
+#include "guidemanagercore.h"
+
+class PageItem;
+class QString;
+class UndoManager;
+class UndoState;
+class ScribusDoc;
+
+
+/**
+ *@author Franz Schmid
+ */
+class SCRIBUS_API Page : public UndoObject, public SingleObservable<Page>
+{
+public:
+ Page(const double x, const double y, const double b, const double h);
+ ~Page();
+ double xOffset() const { return m_xOffset; }
+ double yOffset() const { return m_yOffset; }
+ double width() const { return m_width; }
+ double height() const { return m_height; }
+ double initialWidth() const { return m_initialWidth; }
+ double initialHeight() const { return m_initialHeight; }
+ void setXOffset(const double);
+ void setYOffset(const double);
+ void setWidth(const double);
+ void setHeight(const double);
+ void setInitialWidth(const double);
+ void setInitialHeight(const double);
+ void copySizingProperties(Page *sourcePage, const MarginStruct& pageMargins);
+ MarginStruct Margins;
+ MarginStruct initialMargins;
+ /** Nummer der Seite */
+ int LeftPg;
+ //! Name of the master page that this page uses
+ QString MPageNam;
+
+ QString m_pageSize;
+ int PageOri;
+ int marginPreset;
+ ScribusDoc* doc() const { return m_Doc; }
+ void setDocument(ScribusDoc* doc);
+ int pageNr() const { return m_pageNr; }
+ void setPageNr(int pageNr);
+ const QString& pageSectionNumber() const { return m_pageSectionNumber; }
+ void setPageSectionNumber(const QString&);
+ //! Return the page's name
+ const QString& pageName() const {return m_PageName;};
+ void setPageName(const QString& newName);
+ void restore(UndoState* state, bool isUndo);
+
+ /*! \brief As a bit of a dirty hack, we declare this mutable so it can be altered
+ even while the object is `const'. That's normally only for internal
+ implementation, but in this case it at least lets us guarantee the rest
+ of the object is unchanged in (eg) pdflib. This should be replaced with
+ proper access methods later. */
+ mutable QList<PageItem*> FromMaster;
+ //! \brief Guides lists and basic operations
+ GuideManagerCore guides;
+
+protected:
+ UndoManager * const undoManager;
+ void restorePageItemCreation(ItemState<PageItem*> *state, bool isUndo);
+ void restorePageItemDeletion(ItemState< QList<PageItem*> > *state, bool isUndo);
+ void restorePageItemConversion(ItemState<std::pair<PageItem*, PageItem*> >*state, bool isUndo);
+
+ double m_xOffset;
+ double m_yOffset;
+ double m_width;
+ double m_height;
+ double m_initialWidth;
+ double m_initialHeight;
+ int m_pageNr;
+ //! Name of this page, currently only allowed to be used by a master page
+ QString m_PageName;
+ ScribusDoc* m_Doc;
+ QString m_pageSectionNumber;
+};
+
+Q_DECLARE_METATYPE(Page*);
+
+#endif