Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef INCLUDED_SVX_PARAPREV_HXX
20 : #define INCLUDED_SVX_PARAPREV_HXX
21 :
22 : #include <vcl/window.hxx>
23 : #include <editeng/svxenum.hxx>
24 : #include <svx/svxdllapi.h>
25 :
26 : enum SvxPrevLineSpace
27 : {
28 : SVX_PREV_LINESPACE_1 = 0,
29 : SVX_PREV_LINESPACE_15,
30 : SVX_PREV_LINESPACE_2,
31 : SVX_PREV_LINESPACE_PROP,
32 : SVX_PREV_LINESPACE_MIN,
33 : SVX_PREV_LINESPACE_DURCH
34 : };
35 :
36 0 : class SVX_DLLPUBLIC SvxParaPrevWindow : public vcl::Window
37 : {
38 : using Window::Draw;
39 : private:
40 : Size aSize;
41 :
42 : // indentation
43 : long nLeftMargin;
44 : long nRightMargin;
45 : short nFirstLineOfst;
46 : // distances
47 : sal_uInt16 nUpper;
48 : sal_uInt16 nLower;
49 : // adjustment
50 : SvxAdjust eAdjust;
51 : // last line in justification
52 : SvxAdjust eLastLine;
53 : // line distance
54 : SvxPrevLineSpace eLine;
55 : sal_uInt16 nLineVal;
56 :
57 : OUString aText;
58 : Rectangle Lines[9];
59 :
60 : protected:
61 : virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE;
62 : virtual Size GetOptimalSize() const SAL_OVERRIDE;
63 :
64 : void DrawParagraph(vcl::RenderContext& rRenderContext, bool bAll);
65 :
66 : public:
67 : SvxParaPrevWindow( vcl::Window* pParent, WinBits nBits);
68 :
69 0 : void SetFirstLineOfst( short nNew )
70 : {
71 0 : nFirstLineOfst = nNew;
72 0 : }
73 0 : void SetLeftMargin( long nNew )
74 : {
75 0 : nLeftMargin = nNew;
76 0 : }
77 0 : void SetRightMargin( long nNew )
78 : {
79 0 : nRightMargin = nNew;
80 0 : }
81 0 : void SetUpper( sal_uInt16 nNew )
82 : {
83 0 : nUpper = nNew;
84 0 : }
85 0 : void SetLower( sal_uInt16 nNew )
86 : {
87 0 : nLower = nNew;
88 0 : }
89 0 : void SetAdjust( SvxAdjust eNew )
90 : {
91 0 : eAdjust = eNew;
92 0 : }
93 0 : void SetLastLine( SvxAdjust eNew )
94 : {
95 0 : eLastLine = eNew;
96 0 : }
97 0 : void SetLineSpace( SvxPrevLineSpace eNew, sal_uInt16 nNew = 0 )
98 : {
99 0 : eLine = eNew; nLineVal = nNew;
100 0 : }
101 0 : void SetText( const OUString& rStr ) SAL_OVERRIDE
102 : {
103 0 : aText = rStr;
104 0 : }
105 0 : void SetSize( Size aNew )
106 : {
107 0 : aSize = aNew;
108 0 : }
109 :
110 : short GetFirstLineOfst() const
111 : {
112 : return nFirstLineOfst;
113 : }
114 : long GetLeftMargin() const
115 : {
116 : return nLeftMargin;
117 : }
118 : long GetRightMargin() const
119 : {
120 : return nRightMargin;
121 : }
122 : sal_uInt16 GetUpper() const
123 : {
124 : return nUpper;
125 : }
126 : sal_uInt16 GetLower() const
127 : {
128 : return nLower;
129 : }
130 : SvxAdjust GetAdjust() const
131 : {
132 : return eAdjust;
133 : }
134 : SvxPrevLineSpace GetLineEnum() const
135 : {
136 : return eLine;
137 : }
138 : sal_uInt16 GetLineValue() const
139 : {
140 : return nLineVal;
141 : }
142 0 : OUString GetText() const SAL_OVERRIDE
143 : {
144 0 : return aText;
145 : }
146 : Size GetSize() const
147 : {
148 : return aSize;
149 : }
150 :
151 : void Draw(vcl::RenderContext& rRenderContext, bool bAll)
152 : {
153 : DrawParagraph(rRenderContext, bAll);
154 : }
155 : };
156 :
157 : #endif
158 :
159 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|