Hurricane Design Viewer


CellPrinter.h
1
2// -*- C++ -*-
3//
4// This file is part of the Coriolis Software.
5// Copyright (c) UPMC/LIP6 2012-2018, All Rights Reserved
6//
7// +-----------------------------------------------------------------+
8// | H U R R I C A N E |
9// | V L S I B a c k e n d D a t a - B a s e |
10// | |
11// | Author : Jean-Paul CHAPUT |
12// | E-mail : Jean-Paul.Chaput@lip6.fr |
13// | =============================================================== |
14// | C++ Header : "./hurricane/viewer/CellPrinter.h" |
15// +-----------------------------------------------------------------+
16
17
18#ifndef HURRICANE_CELL_PRINTER_H
19#define HURRICANE_CELL_PRINTER_H
20
21
22#include <list>
23
24using namespace std;
25
26#include <QMainWindow>
27
28class QEvent;
29class QKeyEvent;
30class QAction;
31class QMenu;
32class QPainter;
33class QPrinter;
34
35#include "hurricane/Commons.h"
36#include "hurricane/Name.h"
37#include "hurricane/viewer/CellWidget.h"
38
39
40namespace Hurricane {
41
42
43 class Cell;
44 class PaletteWidget;
45
46
47 class CellPrinter : public QMainWindow {
48 Q_OBJECT;
49
50 public:
51 static std::string getUserName ();
52 static std::string getTime ( const char* format );
53 static QString getUnitQString ();
54 static QString dbuToPrinterString ( DbU::Unit unit );
55 public:
56 CellPrinter ( QWidget* parent=NULL );
57 virtual ~CellPrinter ();
58 inline CellWidget* getCellWidget ();
59 inline const CellWidget* getCellWidget () const;
61 inline void setMode ( int mode );
62 inline void setFitOnAbutmentBox ( bool );
63 void createLayout ();
64 inline bool fitOnAbutmentBox () const;
65 inline int resolution () const;
66 inline int frameMargin () const;
67 inline int cartoucheWidth () const;
68 inline int cartoucheHeight () const;
69 inline int titleHeight () const;
70 void pageDecorate ( QPainter& );
71 void toPdf ( QPrinter* , bool imageOnly=false );
72 virtual std::string _getString () const;
73 private:
74 int _scalePixels ( int pixels );
75
76 protected:
77 CellWidget* _screenCellWidget;
78 CellWidget* _cellWidget;
79 PaletteWidget* _palette;
80 QPrinter* _printer;
81 int _dpi;
82 int _mode;
83 int _paperWidth;
84 int _paperHeight;
85 int _frameMargin;
86 int _cartoucheWidth;
87 int _cartoucheHeight;
88 int _titleHeight;
89 int _xpaper;
90 int _ypaper;
91 int _drawingWidth;
92 int _drawingHeight;
93 bool _fitOnAbutmentBox;
94 };
95
96
97// Inline Functions.
98 inline CellWidget* CellPrinter::getCellWidget () { return _cellWidget; }
99 inline const CellWidget* CellPrinter::getCellWidget () const { return _cellWidget; }
100 inline void CellPrinter::setMode ( int mode ) { _mode = mode; }
101 inline void CellPrinter::setFitOnAbutmentBox ( bool state ) { _fitOnAbutmentBox = state; }
102 inline int CellPrinter::resolution () const { return (_mode == CellWidget::Res_CellMode) ? 150 : 300; }
103 inline bool CellPrinter::fitOnAbutmentBox () const { return _fitOnAbutmentBox; }
104 inline int CellPrinter::frameMargin () const { return _frameMargin*_mode; }
105 inline int CellPrinter::cartoucheWidth () const { return _cartoucheWidth*_mode; }
106 inline int CellPrinter::cartoucheHeight () const { return _cartoucheHeight*_mode; }
107 inline int CellPrinter::titleHeight () const { return _titleHeight*_mode; }
108
109
110} // Hurricane namespace.
111
112
113GETSTRING_POINTER_SUPPORT(Hurricane::CellPrinter)
114IOSTREAM_POINTER_SUPPORT(Hurricane::CellPrinter)
115
116
117#endif
Widget to generate PDF file.
Definition CellPrinter.h:47
void setMode(int mode)
Definition CellPrinter.h:100
void setScreenCellWidget(CellWidget *)
CellPrinter(QWidget *parent=NULL)
void toPdf(QPrinter *, bool imageOnly=false)
The Widget to display a Cell.
Definition CellWidget.h:81
@ Res_CellMode
Definition CellWidget.h:113
std::int64_t Unit


Generated by doxygen 1.16.1 on Return to top of page
Hurricane Design Viewer Copyright © 2008-2020 Sorbonne Universite All rights reserved