Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
41df7db9
Kaydet (Commit)
41df7db9
authored
May 14, 2015
tarafından
Tomaž Vajngerl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
refactor sw Sidebar classes to use RenderContext
Change-Id: I09a4abd8fb34470c4c365aa1f604accd80631ab3
üst
7587cf88
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
324 additions
and
345 deletions
+324
-345
SidebarWin.hxx
sw/inc/SidebarWin.hxx
+1
-1
AnnotationMenuButton.cxx
sw/source/uibase/docvw/AnnotationMenuButton.cxx
+75
-80
DashedLine.cxx
sw/source/uibase/docvw/DashedLine.cxx
+27
-29
HeaderFooterWin.cxx
sw/source/uibase/docvw/HeaderFooterWin.cxx
+128
-132
PageBreakWin.cxx
sw/source/uibase/docvw/PageBreakWin.cxx
+46
-46
SidebarTxtControl.cxx
sw/source/uibase/docvw/SidebarTxtControl.cxx
+18
-24
SidebarWin.cxx
sw/source/uibase/docvw/SidebarWin.cxx
+29
-33
No files found.
sw/inc/SidebarWin.hxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -182,7 +182,7 @@ class SwSidebarWin : public vcl::Window
protected
:
virtual
void
DataChanged
(
const
DataChangedEvent
&
aEvent
)
SAL_OVERRIDE
;
virtual
void
LoseFocus
()
SAL_OVERRIDE
;
virtual
void
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
rRect
)
SAL_OVERRIDE
;
virtual
void
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
rRect
)
SAL_OVERRIDE
;
virtual
void
GetFocus
()
SAL_OVERRIDE
;
virtual
VclPtr
<
MenuButton
>
CreateMenuButton
()
=
0
;
...
...
sw/source/uibase/docvw/AnnotationMenuButton.cxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -36,24 +36,22 @@
namespace
sw
{
namespace
annotation
{
Color
ColorFromAlphaColor
(
const
sal_uInt8
aTransparency
,
const
Color
&
aFront
,
const
Color
&
aBack
)
Color
ColorFromAlphaColor
(
const
sal_uInt8
aTransparency
,
const
Color
&
aFront
,
const
Color
&
aBack
)
{
return
Color
(
(
sal_uInt8
)(
aFront
.
GetRed
()
*
aTransparency
/
(
double
)
255
+
aBack
.
GetRed
()
*
(
1
-
aTransparency
/
(
double
)
255
)),
(
sal_uInt8
)(
aFront
.
GetGreen
()
*
aTransparency
/
(
double
)
255
+
aBack
.
GetGreen
()
*
(
1
-
aTransparency
/
(
double
)
255
)),
(
sal_uInt8
)(
aFront
.
GetBlue
()
*
aTransparency
/
(
double
)
255
+
aBack
.
GetBlue
()
*
(
1
-
aTransparency
/
(
double
)
255
)));
return
Color
(
sal_uInt8
(
aFront
.
GetRed
()
*
aTransparency
/
255.0
+
aBack
.
GetRed
()
*
(
1
-
aTransparency
/
255.0
)),
sal_uInt8
(
aFront
.
GetGreen
()
*
aTransparency
/
255.0
+
aBack
.
GetGreen
()
*
(
1
-
aTransparency
/
255.0
)),
sal_uInt8
(
aFront
.
GetBlue
()
*
aTransparency
/
255.0
+
aBack
.
GetBlue
()
*
(
1
-
aTransparency
/
255.0
)));
}
AnnotationMenuButton
::
AnnotationMenuButton
(
sw
::
sidebarwindows
::
SwSidebarWin
&
rSidebarWin
)
:
MenuButton
(
&
rSidebarWin
)
,
mrSidebarWin
(
rSidebarWin
)
AnnotationMenuButton
::
AnnotationMenuButton
(
sw
::
sidebarwindows
::
SwSidebarWin
&
rSidebarWin
)
:
MenuButton
(
&
rSidebarWin
)
,
mrSidebarWin
(
rSidebarWin
)
{
AddEventListener
(
LINK
(
&
mrSidebarWin
,
sw
::
sidebarwindows
::
SwSidebarWin
,
WindowEventListener
)
);
AddEventListener
(
LINK
(
&
mrSidebarWin
,
sw
::
sidebarwindows
::
SwSidebarWin
,
WindowEventListener
)
);
SetAccessibleName
(
SW_RES
(
STR_ACCESS_ANNOTATION_BUTTON_NAME
)
);
SetAccessibleDescription
(
SW_RES
(
STR_ACCESS_ANNOTATION_BUTTON_DESC
)
);
SetQuickHelpText
(
GetAccessibleDescription
()
);
SetAccessibleName
(
SW_RES
(
STR_ACCESS_ANNOTATION_BUTTON_NAME
)
);
SetAccessibleDescription
(
SW_RES
(
STR_ACCESS_ANNOTATION_BUTTON_DESC
)
);
SetQuickHelpText
(
GetAccessibleDescription
()
);
}
AnnotationMenuButton
::~
AnnotationMenuButton
()
...
...
@@ -63,7 +61,7 @@ AnnotationMenuButton::~AnnotationMenuButton()
void
AnnotationMenuButton
::
dispose
()
{
RemoveEventListener
(
LINK
(
&
mrSidebarWin
,
sw
::
sidebarwindows
::
SwSidebarWin
,
WindowEventListener
)
);
RemoveEventListener
(
LINK
(
&
mrSidebarWin
,
sw
::
sidebarwindows
::
SwSidebarWin
,
WindowEventListener
)
);
MenuButton
::
dispose
();
}
...
...
@@ -74,138 +72,135 @@ void AnnotationMenuButton::Select()
void
AnnotationMenuButton
::
MouseButtonDown
(
const
MouseEvent
&
rMEvt
)
{
PopupMenu
*
pButtonPopup
(
GetPopupMenu
()
);
if
(
mrSidebarWin
.
IsReadOnly
()
)
PopupMenu
*
pButtonPopup
(
GetPopupMenu
()
);
if
(
mrSidebarWin
.
IsReadOnly
()
)
{
pButtonPopup
->
EnableItem
(
FN_REPLY
,
false
);
pButtonPopup
->
EnableItem
(
FN_DELETE_COMMENT
,
false
);
pButtonPopup
->
EnableItem
(
FN_DELETE_NOTE_AUTHOR
,
false
);
pButtonPopup
->
EnableItem
(
FN_DELETE_ALL_NOTES
,
false
);
pButtonPopup
->
EnableItem
(
FN_FORMAT_ALL_NOTES
,
false
);
pButtonPopup
->
EnableItem
(
FN_REPLY
,
false
);
pButtonPopup
->
EnableItem
(
FN_DELETE_COMMENT
,
false
);
pButtonPopup
->
EnableItem
(
FN_DELETE_NOTE_AUTHOR
,
false
);
pButtonPopup
->
EnableItem
(
FN_DELETE_ALL_NOTES
,
false
);
pButtonPopup
->
EnableItem
(
FN_FORMAT_ALL_NOTES
,
false
);
}
else
{
pButtonPopup
->
EnableItem
(
FN_DELETE_COMMENT
,
!
mrSidebarWin
.
IsProtected
()
);
pButtonPopup
->
EnableItem
(
FN_DELETE_NOTE_AUTHOR
,
true
);
pButtonPopup
->
EnableItem
(
FN_DELETE_ALL_NOTES
,
true
);
pButtonPopup
->
EnableItem
(
FN_FORMAT_ALL_NOTES
,
true
);
pButtonPopup
->
EnableItem
(
FN_DELETE_COMMENT
,
!
mrSidebarWin
.
IsProtected
()
);
pButtonPopup
->
EnableItem
(
FN_DELETE_NOTE_AUTHOR
,
true
);
pButtonPopup
->
EnableItem
(
FN_DELETE_ALL_NOTES
,
true
);
pButtonPopup
->
EnableItem
(
FN_FORMAT_ALL_NOTES
,
true
);
}
if
(
mrSidebarWin
.
IsProtected
()
)
if
(
mrSidebarWin
.
IsProtected
()
)
{
pButtonPopup
->
EnableItem
(
FN_REPLY
,
false
);
pButtonPopup
->
EnableItem
(
FN_REPLY
,
false
);
}
else
{
SvtUserOptions
aUserOpt
;
OUString
sAuthor
;
if
(
(
sAuthor
=
aUserOpt
.
GetFullName
()).
isEmpty
()
)
if
(
(
sAuthor
=
aUserOpt
.
GetFullName
()).
isEmpty
()
)
{
if
(
(
sAuthor
=
aUserOpt
.
GetID
()).
isEmpty
()
)
if
(
(
sAuthor
=
aUserOpt
.
GetID
()).
isEmpty
()
)
{
sAuthor
=
SW_RES
(
STR_REDLINE_UNKNOWN_AUTHOR
);
sAuthor
=
SW_RES
(
STR_REDLINE_UNKNOWN_AUTHOR
);
}
}
// do not allow to reply to ourself and no answer possible if this note is in a protected section
if
(
sAuthor
==
mrSidebarWin
.
GetAuthor
()
)
if
(
sAuthor
==
mrSidebarWin
.
GetAuthor
()
)
{
pButtonPopup
->
EnableItem
(
FN_REPLY
,
false
);
pButtonPopup
->
EnableItem
(
FN_REPLY
,
false
);
}
else
{
pButtonPopup
->
EnableItem
(
FN_REPLY
,
true
);
pButtonPopup
->
EnableItem
(
FN_REPLY
,
true
);
}
}
MenuButton
::
MouseButtonDown
(
rMEvt
);
MenuButton
::
MouseButtonDown
(
rMEvt
);
}
void
AnnotationMenuButton
::
Paint
(
vcl
::
RenderContext
&
/*rRenderContext*/
,
const
Rectangle
&
/*rRect*/
)
void
AnnotationMenuButton
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
/*rRect*/
)
{
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
SetFillColor
(
COL_BLACK
);
bool
bHighContrast
=
rRenderContext
.
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
();
if
(
bHighContrast
)
rRenderContext
.
SetFillColor
(
COL_BLACK
);
else
SetFillColor
(
mrSidebarWin
.
ColorDark
()
);
SetLineColor
();
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
PixelToLogic
(
GetSizePixel
()
)
)
);
DrawRect
(
aRect
);
rRenderContext
.
SetFillColor
(
mrSidebarWin
.
ColorDark
()
);
rRenderContext
.
SetLineColor
();
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
rRenderContext
.
PixelToLogic
(
GetSizePixel
()))
);
rRenderContext
.
DrawRect
(
aRect
);
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
if
(
bHighContrast
)
{
//draw rect around button
SetFillColor
(
COL_BLACK
);
SetLineColor
(
COL_WHITE
);
rRenderContext
.
SetFillColor
(
COL_BLACK
);
rRenderContext
.
SetLineColor
(
COL_WHITE
);
}
else
{
//draw button
Gradient
aGradient
;
if
(
IsMouseOver
()
)
aGradient
=
Gradient
(
GradientStyle_LINEAR
,
ColorFromAlphaColor
(
80
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
),
ColorFromAlphaColor
(
15
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
));
if
(
IsMouseOver
()
)
aGradient
=
Gradient
(
GradientStyle_LINEAR
,
ColorFromAlphaColor
(
80
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
),
ColorFromAlphaColor
(
15
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
));
else
aGradient
=
Gradient
(
GradientStyle_LINEAR
,
ColorFromAlphaColor
(
15
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
),
ColorFromAlphaColor
(
80
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
));
DrawGradient
(
aRect
,
aGradient
);
aGradient
=
Gradient
(
GradientStyle_LINEAR
,
ColorFromAlphaColor
(
15
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
),
ColorFromAlphaColor
(
80
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
));
rRenderContext
.
DrawGradient
(
aRect
,
aGradient
);
//draw rect around button
SetFillColor
();
SetLineColor
(
ColorFromAlphaColor
(
90
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
));
rRenderContext
.
SetFillColor
();
rRenderContext
.
SetLineColor
(
ColorFromAlphaColor
(
90
,
mrSidebarWin
.
ColorAnchor
(),
mrSidebarWin
.
ColorDark
()
));
}
DrawRect
(
aRect
);
rRenderContext
.
DrawRect
(
aRect
);
if
(
mrSidebarWin
.
IsPreview
()
)
if
(
mrSidebarWin
.
IsPreview
()
)
{
vcl
::
Font
aOldFont
(
mrSidebarWin
.
GetFont
()
);
vcl
::
Font
aOldFont
(
mrSidebarWin
.
GetFont
()
);
vcl
::
Font
aFont
(
aOldFont
);
Color
aCol
(
COL_BLACK
);
aFont
.
SetColor
(
aCol
);
Color
aCol
(
COL_BLACK
);
aFont
.
SetColor
(
aCol
);
aFont
.
SetHeight
(
200
);
aFont
.
SetWeight
(
WEIGHT_MEDIUM
);
SetFont
(
aFont
);
DrawText
(
aRect
,
OUString
(
"Edit Note"
),
TEXT_DRAW_CENTER
);
SetFont
(
aOldFont
);
rRenderContext
.
SetFont
(
aFont
);
rRenderContext
.
DrawText
(
aRect
,
OUString
(
"Edit Note"
),
TEXT_DRAW_CENTER
);
rRenderContext
.
SetFont
(
aOldFont
);
}
else
{
Rectangle
aSymbolRect
(
aRect
);
Rectangle
aSymbolRect
(
aRect
);
// 25% distance to the left and right button border
const
long
nBorderDistanceLeftAndRight
=
((
aSymbolRect
.
GetWidth
()
*
250
)
+
500
)
/
1000
;
aSymbolRect
.
Left
()
+=
nBorderDistanceLeftAndRight
;
aSymbolRect
.
Right
()
-=
nBorderDistanceLeftAndRight
;
const
long
nBorderDistanceLeftAndRight
=
((
aSymbolRect
.
GetWidth
()
*
250
)
+
500
)
/
1000
;
aSymbolRect
.
Left
()
+=
nBorderDistanceLeftAndRight
;
aSymbolRect
.
Right
()
-=
nBorderDistanceLeftAndRight
;
// 40% distance to the top button border
const
long
nBorderDistanceTop
=
((
aSymbolRect
.
GetHeight
()
*
400
)
+
500
)
/
1000
;
const
long
nBorderDistanceTop
=
((
aSymbolRect
.
GetHeight
()
*
400
)
+
500
)
/
1000
;
aSymbolRect
.
Top
()
+=
nBorderDistanceTop
;
// 15% distance to the bottom button border
const
long
nBorderDistanceBottom
=
((
aSymbolRect
.
GetHeight
()
*
150
)
+
500
)
/
1000
;
aSymbolRect
.
Bottom
()
-=
nBorderDistanceBottom
;
DecorationView
aDecoView
(
this
);
aDecoView
.
DrawSymbol
(
aSymbolRect
,
SymbolType
::
SPIN_DOWN
,
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
?
Color
(
COL_WHITE
)
:
Color
(
COL_BLACK
)
)
);
const
long
nBorderDistanceBottom
=
((
aSymbolRect
.
GetHeight
()
*
150
)
+
500
)
/
1000
;
aSymbolRect
.
Bottom
()
-=
nBorderDistanceBottom
;
DecorationView
aDecoView
(
&
rRenderContext
);
aDecoView
.
DrawSymbol
(
aSymbolRect
,
SymbolType
::
SPIN_DOWN
,
(
bHighContrast
?
Color
(
COL_WHITE
)
:
Color
(
COL_BLACK
)));
}
}
void
AnnotationMenuButton
::
KeyInput
(
const
KeyEvent
&
rKeyEvt
)
void
AnnotationMenuButton
::
KeyInput
(
const
KeyEvent
&
rKeyEvt
)
{
const
vcl
::
KeyCode
&
rKeyCode
=
rKeyEvt
.
GetKeyCode
();
const
sal_uInt16
nKey
=
rKeyCode
.
GetCode
();
if
(
nKey
==
KEY_TAB
)
if
(
nKey
==
KEY_TAB
)
{
mrSidebarWin
.
ActivatePostIt
();
mrSidebarWin
.
GrabFocus
();
}
else
{
MenuButton
::
KeyInput
(
rKeyEvt
);
MenuButton
::
KeyInput
(
rKeyEvt
);
}
}
}
}
// end of namespace sw::annotation
}}
// end of namespace sw::annotation
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sw/source/uibase/docvw/DashedLine.cxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -29,31 +29,30 @@ SwDashedLine::~SwDashedLine( )
{
}
void
SwDashedLine
::
Paint
(
vcl
::
RenderContext
&
/*rRenderContext*/
,
const
Rectangle
&
)
void
SwDashedLine
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
)
{
const
drawinglayer
::
geometry
::
ViewInformation2D
aNewViewInfos
;
boost
::
scoped_ptr
<
drawinglayer
::
processor2d
::
BaseProcessor2D
>
pProcessor
(
drawinglayer
::
processor2d
::
createBaseProcessor2DFromOutputDevice
(
*
this
,
aNewViewInfos
));
drawinglayer
::
processor2d
::
createBaseProcessor2DFromOutputDevice
(
rRenderContext
,
aNewViewInfos
));
// Compute the start and end points
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
PixelToLogic
(
GetSizePixel
()
)
)
);
double
nHalfWidth
=
double
(
aRect
.
Top
()
+
aRect
.
Bottom
()
)
/
2.0
;
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
rRenderContext
.
PixelToLogic
(
GetSizePixel
()))
);
double
nHalfWidth
=
double
(
aRect
.
Top
()
+
aRect
.
Bottom
()
)
/
2.0
;
basegfx
::
B2DPoint
aStart
(
double
(
aRect
.
Left
()
),
nHalfWidth
);
basegfx
::
B2DPoint
aEnd
(
double
(
aRect
.
Right
()
),
nHalfWidth
);
basegfx
::
B2DPoint
aStart
(
double
(
aRect
.
Left
()),
nHalfWidth
);
basegfx
::
B2DPoint
aEnd
(
double
(
aRect
.
Right
()),
nHalfWidth
);
basegfx
::
B2DPolygon
aPolygon
;
aPolygon
.
append
(
aStart
);
aPolygon
.
append
(
aEnd
);
aPolygon
.
append
(
aStart
);
aPolygon
.
append
(
aEnd
);
drawinglayer
::
primitive2d
::
Primitive2DSequence
aSeq
(
1
);
drawinglayer
::
primitive2d
::
Primitive2DSequence
aSeq
(
1
);
const
StyleSettings
&
rSettings
=
Application
::
GetSettings
().
GetStyleSettings
();
std
::
vector
<
double
>
aStrokePattern
;
std
::
vector
<
double
>
aStrokePattern
;
basegfx
::
BColor
aColor
=
m_pColorFn
().
getBColor
();
if
(
rSettings
.
GetHighContrastMode
(
)
)
if
(
rSettings
.
GetHighContrastMode
()
)
{
// Only a solid line in high contrast mode
aColor
=
rSettings
.
GetDialogTextColor
().
getBColor
();
...
...
@@ -61,37 +60,36 @@ void SwDashedLine::Paint( vcl::RenderContext& /*rRenderContext*/, const Rectangl
else
{
// Get a color for the contrast
basegfx
::
BColor
aHslLine
=
basegfx
::
tools
::
rgb2hsl
(
aColor
);
basegfx
::
BColor
aHslLine
=
basegfx
::
tools
::
rgb2hsl
(
aColor
);
double
nLuminance
=
aHslLine
.
getZ
();
nLuminance
+=
(
1.0
-
nLuminance
)
*
0.75
;
if
(
aHslLine
.
getZ
()
>
0.7
)
nLuminance
+=
(
1.0
-
nLuminance
)
*
0.75
;
if
(
aHslLine
.
getZ
()
>
0.7
)
nLuminance
=
aHslLine
.
getZ
()
*
0.7
;
aHslLine
.
setZ
(
nLuminance
);
const
basegfx
::
BColor
aOtherColor
=
basegfx
::
tools
::
hsl2rgb
(
aHslLine
);
aHslLine
.
setZ
(
nLuminance
);
const
basegfx
::
BColor
aOtherColor
=
basegfx
::
tools
::
hsl2rgb
(
aHslLine
);
// Compute the plain line
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
*
pPlainLine
=
new
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
(
aPolygon
,
aOtherColor
);
new
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
(
aPolygon
,
aOtherColor
);
aSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
pPlainLine
);
aSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
pPlainLine
);
// Dashed line in twips
aStrokePattern
.
push_back
(
3
);
aStrokePattern
.
push_back
(
3
);
aStrokePattern
.
push_back
(
3
);
aStrokePattern
.
push_back
(
3
);
aSeq
.
realloc
(
2
);
aSeq
.
realloc
(
2
);
}
// Compute the dashed line primitive
drawinglayer
::
primitive2d
::
PolyPolygonStrokePrimitive2D
*
pLine
=
new
drawinglayer
::
primitive2d
::
PolyPolygonStrokePrimitive2D
(
basegfx
::
B2DPolyPolygon
(
aPolygon
),
drawinglayer
::
attribute
::
LineAttribute
(
m_pColorFn
().
getBColor
()
),
drawinglayer
::
attribute
::
StrokeAttribute
(
aStrokePattern
)
);
new
drawinglayer
::
primitive2d
::
PolyPolygonStrokePrimitive2D
(
basegfx
::
B2DPolyPolygon
(
aPolygon
),
drawinglayer
::
attribute
::
LineAttribute
(
m_pColorFn
().
getBColor
()
),
drawinglayer
::
attribute
::
StrokeAttribute
(
aStrokePattern
)
);
aSeq
[
aSeq
.
getLength
()
-
1
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
pLine
);
aSeq
[
aSeq
.
getLength
()
-
1
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
pLine
);
pProcessor
->
process
(
aSeq
);
pProcessor
->
process
(
aSeq
);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sw/source/uibase/docvw/HeaderFooterWin.cxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -136,35 +136,32 @@ SwHeaderFooterWin::SwHeaderFooterWin( SwEditWin* pEditWin, const SwPageFrm* pPag
m_aFadeTimer
(
)
{
// Get the font and configure it
vcl
::
Font
aFont
=
GetSettings
().
GetStyleSettings
().
GetToolFont
();
SetZoomedPointFont
(
aFont
);
// Use pixels for the rest of the drawing
SetMapMode
(
MapMode
(
MAP_PIXEL
)
);
vcl
::
Font
aFont
=
Application
::
GetSettings
().
GetStyleSettings
().
GetToolFont
();
SetZoomedPointFont
(
aFont
);
// Create the line control
m_pLine
=
VclPtr
<
SwDashedLine
>::
Create
(
GetEditWin
(),
&
SwViewOption
::
GetHeaderFooterMarkColor
);
m_pLine
->
SetZOrder
(
this
,
WINDOW_ZORDER_BEFOR
);
m_pLine
=
VclPtr
<
SwDashedLine
>::
Create
(
GetEditWin
(),
&
SwViewOption
::
GetHeaderFooterMarkColor
);
m_pLine
->
SetZOrder
(
this
,
WINDOW_ZORDER_BEFOR
);
// Create and set the PopupMenu
m_pPopupMenu
=
new
PopupMenu
(
SW_RES
(
MN_HEADERFOOTER_BUTTON
)
);
m_pPopupMenu
=
new
PopupMenu
(
SW_RES
(
MN_HEADERFOOTER_BUTTON
)
);
// Rewrite the menu entries' text
if
(
m_bIsHeader
)
if
(
m_bIsHeader
)
{
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_EDIT
,
SW_RESSTR
(
STR_FORMAT_HEADER
)
);
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_DELETE
,
SW_RESSTR
(
STR_DELETE_HEADER
)
);
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_EDIT
,
SW_RESSTR
(
STR_FORMAT_HEADER
)
);
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_DELETE
,
SW_RESSTR
(
STR_DELETE_HEADER
)
);
}
else
{
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_EDIT
,
SW_RESSTR
(
STR_FORMAT_FOOTER
)
);
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_DELETE
,
SW_RESSTR
(
STR_DELETE_FOOTER
)
);
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_EDIT
,
SW_RESSTR
(
STR_FORMAT_FOOTER
)
);
m_pPopupMenu
->
SetItemText
(
FN_HEADERFOOTER_DELETE
,
SW_RESSTR
(
STR_DELETE_FOOTER
)
);
}
SetPopupMenu
(
m_pPopupMenu
);
SetPopupMenu
(
m_pPopupMenu
);
m_aFadeTimer
.
SetTimeout
(
50
);
m_aFadeTimer
.
SetTimeoutHdl
(
LINK
(
this
,
SwHeaderFooterWin
,
FadeHandler
)
);
m_aFadeTimer
.
SetTimeout
(
50
);
m_aFadeTimer
.
SetTimeoutHdl
(
LINK
(
this
,
SwHeaderFooterWin
,
FadeHandler
)
);
}
SwHeaderFooterWin
::~
SwHeaderFooterWin
(
)
...
...
@@ -184,148 +181,146 @@ const SwPageFrm* SwHeaderFooterWin::GetPageFrame( )
return
static_cast
<
const
SwPageFrm
*
>
(
GetFrame
(
)
);
}
void
SwHeaderFooterWin
::
SetOffset
(
Point
aOffset
,
long
nXLineStart
,
long
nXLineEnd
)
void
SwHeaderFooterWin
::
SetOffset
(
Point
aOffset
,
long
nXLineStart
,
long
nXLineEnd
)
{
// Compute the text to show
const
SwPageDesc
*
pDesc
=
GetPageFrame
()
->
GetPageDesc
();
bool
bIsFirst
=
!
pDesc
->
IsFirstShared
()
&&
GetPageFrame
()
->
OnFirstPage
();
bool
bIsLeft
=
!
pDesc
->
IsHeaderShared
()
&&
!
GetPageFrame
()
->
OnRightPage
();
bool
bIsRight
=
!
pDesc
->
IsHeaderShared
()
&&
GetPageFrame
()
->
OnRightPage
();
m_sLabel
=
SW_RESSTR
(
STR_HEADER_TITLE
);
if
(
!
m_bIsHeader
)
m_sLabel
=
bIsFirst
?
SW_RESSTR
(
STR_FIRST_FOOTER_TITLE
)
:
bIsLeft
?
SW_RESSTR
(
STR_LEFT_FOOTER_TITLE
)
:
bIsRight
?
SW_RESSTR
(
STR_RIGHT_FOOTER_TITLE
)
:
SW_RESSTR
(
STR_FOOTER_TITLE
);
m_sLabel
=
SW_RESSTR
(
STR_HEADER_TITLE
);
if
(
!
m_bIsHeader
)
m_sLabel
=
bIsFirst
?
SW_RESSTR
(
STR_FIRST_FOOTER_TITLE
)
:
bIsLeft
?
SW_RESSTR
(
STR_LEFT_FOOTER_TITLE
)
:
bIsRight
?
SW_RESSTR
(
STR_RIGHT_FOOTER_TITLE
)
:
SW_RESSTR
(
STR_FOOTER_TITLE
);
else
m_sLabel
=
bIsFirst
?
SW_RESSTR
(
STR_FIRST_HEADER_TITLE
)
:
bIsLeft
?
SW_RESSTR
(
STR_LEFT_HEADER_TITLE
)
:
bIsRight
?
SW_RESSTR
(
STR_RIGHT_HEADER_TITLE
)
:
SW_RESSTR
(
STR_HEADER_TITLE
);
m_sLabel
=
bIsFirst
?
SW_RESSTR
(
STR_FIRST_HEADER_TITLE
)
:
bIsLeft
?
SW_RESSTR
(
STR_LEFT_HEADER_TITLE
)
:
bIsRight
?
SW_RESSTR
(
STR_RIGHT_HEADER_TITLE
)
:
SW_RESSTR
(
STR_HEADER_TITLE
);
sal_Int32
nPos
=
m_sLabel
.
lastIndexOf
(
"%1"
);
m_sLabel
=
m_sLabel
.
replaceAt
(
nPos
,
2
,
pDesc
->
GetName
()
);
sal_Int32
nPos
=
m_sLabel
.
lastIndexOf
(
"%1"
);
m_sLabel
=
m_sLabel
.
replaceAt
(
nPos
,
2
,
pDesc
->
GetName
()
);
// Compute the text size and get the box position & size from it
Rectangle
aTextRect
;
GetTextBoundRect
(
aTextRect
,
OUString
(
m_sLabel
)
);
Rectangle
aTextPxRect
=
LogicToPixel
(
aTextRect
);
FontMetric
aFontMetric
=
GetFontMetric
(
GetFont
()
);
Size
aBoxSize
(
aTextPxRect
.
GetWidth
()
+
BUTTON_WIDTH
+
TEXT_PADDING
*
2
,
GetTextBoundRect
(
aTextRect
,
OUString
(
m_sLabel
)
);
Rectangle
aTextPxRect
=
LogicToPixel
(
aTextRect
);
FontMetric
aFontMetric
=
GetFontMetric
(
GetFont
()
);
Size
aBoxSize
(
aTextPxRect
.
GetWidth
()
+
BUTTON_WIDTH
+
TEXT_PADDING
*
2
,
aFontMetric
.
GetLineHeight
()
+
TEXT_PADDING
*
2
);
long
nYFooterOff
=
0
;
if
(
!
m_bIsHeader
)
if
(
!
m_bIsHeader
)
nYFooterOff
=
aBoxSize
.
Height
();
Point
aBoxPos
(
aOffset
.
X
()
-
aBoxSize
.
Width
()
-
BOX_DISTANCE
,
aOffset
.
Y
()
-
nYFooterOff
);
Point
aBoxPos
(
aOffset
.
X
()
-
aBoxSize
.
Width
()
-
BOX_DISTANCE
,
aOffset
.
Y
()
-
nYFooterOff
);
if
(
AllSettings
::
GetLayoutRTL
()
)
if
(
AllSettings
::
GetLayoutRTL
()
)
{
aBoxPos
.
setX
(
aOffset
.
X
()
+
BOX_DISTANCE
);
}
// Set the position & Size of the window
SetPosSizePixel
(
aBoxPos
,
aBoxSize
);
SetPosSizePixel
(
aBoxPos
,
aBoxSize
);
double
nYLinePos
=
aBoxPos
.
Y
();
if
(
!
m_bIsHeader
)
if
(
!
m_bIsHeader
)
nYLinePos
+=
aBoxSize
.
Height
();
Point
aLinePos
(
nXLineStart
,
nYLinePos
);
Size
aLineSize
(
nXLineEnd
-
nXLineStart
,
1
);
m_pLine
->
SetPosSizePixel
(
aLinePos
,
aLineSize
);
Point
aLinePos
(
nXLineStart
,
nYLinePos
);
Size
aLineSize
(
nXLineEnd
-
nXLineStart
,
1
);
m_pLine
->
SetPosSizePixel
(
aLinePos
,
aLineSize
);
}
void
SwHeaderFooterWin
::
ShowAll
(
bool
bShow
)
void
SwHeaderFooterWin
::
ShowAll
(
bool
bShow
)
{
if
(
!
PopupMenu
::
IsInExecute
()
)
if
(
!
PopupMenu
::
IsInExecute
()
)
{
m_bIsAppearing
=
bShow
;
if
(
m_aFadeTimer
.
IsActive
(
)
)
if
(
m_aFadeTimer
.
IsActive
()
)
m_aFadeTimer
.
Stop
();
m_aFadeTimer
.
Start
(
);
m_aFadeTimer
.
Start
();
}
}
bool
SwHeaderFooterWin
::
Contains
(
const
Point
&
rDocPt
)
const
{
Rectangle
aRect
(
GetPosPixel
(),
GetSizePixel
()
);
if
(
aRect
.
IsInside
(
rDocPt
)
)
Rectangle
aRect
(
GetPosPixel
(),
GetSizePixel
()
);
if
(
aRect
.
IsInside
(
rDocPt
)
)
return
true
;
Rectangle
aLineRect
(
m_pLine
->
GetPosPixel
(),
m_pLine
->
GetSizePixel
()
);
if
(
aLineRect
.
IsInside
(
rDocPt
)
)
Rectangle
aLineRect
(
m_pLine
->
GetPosPixel
(),
m_pLine
->
GetSizePixel
()
);
if
(
aLineRect
.
IsInside
(
rDocPt
)
)
return
true
;
return
false
;
}
void
SwHeaderFooterWin
::
Paint
(
vcl
::
RenderContext
&
/*rRenderContext*/
,
const
Rectangle
&
)
void
SwHeaderFooterWin
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
)
{
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
PixelToLogic
(
GetSizePixel
()
)
)
);
drawinglayer
::
primitive2d
::
Primitive2DSequence
aSeq
(
3
);
// Use pixels for the rest of the drawing
SetMapMode
(
MapMode
(
MAP_PIXEL
)
);
B2DPolygon
aPolygon
=
lcl_GetPolygon
(
aRect
,
m_bIsHeader
);
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
rRenderContext
.
PixelToLogic
(
GetSizePixel
())));
drawinglayer
::
primitive2d
::
Primitive2DSequence
aSeq
(
3
);
B2DPolygon
aPolygon
=
lcl_GetPolygon
(
aRect
,
m_bIsHeader
);
// Colors
basegfx
::
BColor
aLineColor
=
SwViewOption
::
GetHeaderFooterMarkColor
().
getBColor
();
basegfx
::
BColor
aFillColor
=
lcl_GetFillColor
(
aLineColor
);
basegfx
::
BColor
aLighterColor
=
lcl_GetLighterGradientColor
(
aFillColor
);
basegfx
::
BColor
aFillColor
=
lcl_GetFillColor
(
aLineColor
);
basegfx
::
BColor
aLighterColor
=
lcl_GetLighterGradientColor
(
aFillColor
);
const
StyleSettings
&
rSettings
=
Application
::
GetSettings
().
GetStyleSettings
();
if
(
rSettings
.
GetHighContrastMode
()
)
if
(
rSettings
.
GetHighContrastMode
()
)
{
aFillColor
=
rSettings
.
GetDialogColor
(
).
getBColor
();
aLineColor
=
rSettings
.
GetDialogTextColor
(
).
getBColor
();
aFillColor
=
rSettings
.
GetDialogColor
().
getBColor
();
aLineColor
=
rSettings
.
GetDialogTextColor
().
getBColor
();
aSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aPolygon
),
aFillColor
)
);
aSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aPolygon
),
aFillColor
)
);
}
else
{
B2DRectangle
aGradientRect
(
aRect
.
Left
(),
aRect
.
Top
(),
aRect
.
Right
(),
aRect
.
Bottom
()
);
B2DRectangle
aGradientRect
(
aRect
.
Left
(),
aRect
.
Top
(),
aRect
.
Right
(),
aRect
.
Bottom
()
);
double
nAngle
=
M_PI
;
if
(
m_bIsHeader
)
if
(
m_bIsHeader
)
nAngle
=
0
;
FillGradientAttribute
aFillAttrs
(
GRADIENTSTYLE_LINEAR
,
0.0
,
0.0
,
0.0
,
nAngle
,
aLighterColor
,
aFillColor
,
10
);
aSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
FillGradientPrimitive2D
(
aGradientRect
,
aFillAttrs
)
);
FillGradientAttribute
aFillAttrs
(
GRADIENTSTYLE_LINEAR
,
0.0
,
0.0
,
0.0
,
nAngle
,
aLighterColor
,
aFillColor
,
10
);
aSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
FillGradientPrimitive2D
(
aGradientRect
,
aFillAttrs
));
}
// Create the border lines primitive
aSeq
[
1
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
(
aPolygon
,
aLineColor
)
);
aSeq
[
1
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
(
aPolygon
,
aLineColor
)
);
// Create the text primitive
B2DVector
aFontSize
;
FontAttribute
aFontAttr
=
drawinglayer
::
primitive2d
::
getFontAttributeFromVclFont
(
aFontSize
,
GetFont
(),
false
,
false
);
FontAttribute
aFontAttr
=
drawinglayer
::
primitive2d
::
getFontAttributeFromVclFont
(
aFontSize
,
rRenderContext
.
GetFont
(),
false
,
false
);
FontMetric
aFontMetric
=
GetFontMetric
(
GetFont
()
);
FontMetric
aFontMetric
=
rRenderContext
.
GetFontMetric
(
rRenderContext
.
GetFont
()
);
double
nTextOffsetY
=
aFontMetric
.
GetAscent
()
+
TEXT_PADDING
;
Point
aTextPos
(
TEXT_PADDING
,
nTextOffsetY
);
Point
aTextPos
(
TEXT_PADDING
,
nTextOffsetY
);
basegfx
::
B2DHomMatrix
aTextMatrix
(
createScaleTranslateB2DHomMatrix
(
basegfx
::
B2DHomMatrix
aTextMatrix
(
createScaleTranslateB2DHomMatrix
(
aFontSize
.
getX
(),
aFontSize
.
getY
(),
double
(
aTextPos
.
X
()
),
double
(
aTextPos
.
Y
()
)
)
);
double
(
aTextPos
.
X
()),
double
(
aTextPos
.
Y
()))
);
aSeq
[
2
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
TextSimplePortionPrimitive2D
(
aTextMatrix
,
OUString
(
m_sLabel
),
0
,
m_sLabel
.
getLength
(),
std
::
vector
<
double
>
(
),
aFontAttr
,
com
::
sun
::
star
::
lang
::
Locale
(),
aLineColor
)
);
aSeq
[
2
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
TextSimplePortionPrimitive2D
(
aTextMatrix
,
OUString
(
m_sLabel
),
0
,
m_sLabel
.
getLength
(),
std
::
vector
<
double
>
(),
aFontAttr
,
css
::
lang
::
Locale
(),
aLineColor
));
// Create the 'plus' or 'arrow' primitive
B2DRectangle
aSignArea
(
B2DPoint
(
aRect
.
Right
()
-
BUTTON_WIDTH
,
0.0
),
B2DSize
(
aRect
.
Right
(),
aRect
.
getHeight
()
)
);
B2DRectangle
aSignArea
(
B2DPoint
(
aRect
.
Right
()
-
BUTTON_WIDTH
,
0.0
),
B2DSize
(
aRect
.
Right
(),
aRect
.
getHeight
())
);
B2DPolygon
aSign
;
if
(
IsEmptyHeaderFooter
(
)
)
if
(
IsEmptyHeaderFooter
()
)
{
// Create the + polygon
double
nLeft
=
aSignArea
.
getMinX
()
+
TEXT_PADDING
;
...
...
@@ -335,57 +330,58 @@ void SwHeaderFooterWin::Paint( vcl::RenderContext& /*rRenderContext*/, const Rec
double
nTop
=
aSignArea
.
getCenterY
()
-
nHalfW
;
double
nBottom
=
aSignArea
.
getCenterY
()
+
nHalfW
;
aSign
.
append
(
B2DPoint
(
nLeft
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
nTop
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
nTop
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
nRight
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
nRight
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
nBottom
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
nBottom
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
append
(
B2DPoint
(
nLeft
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
setClosed
(
true
);
aSign
.
append
(
B2DPoint
(
nLeft
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
nTop
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
nTop
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
nRight
,
aSignArea
.
getCenterY
()
-
1.0
)
);
aSign
.
append
(
B2DPoint
(
nRight
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
+
1.0
,
nBottom
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
nBottom
)
);
aSign
.
append
(
B2DPoint
(
aSignArea
.
getCenterX
()
-
1.0
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
append
(
B2DPoint
(
nLeft
,
aSignArea
.
getCenterY
()
+
1.0
)
);
aSign
.
setClosed
(
true
);
}
else
{
// Create the v polygon
B2DPoint
aLeft
(
aSignArea
.
getMinX
()
+
TEXT_PADDING
,
aSignArea
.
getCenterY
()
);
B2DPoint
aRight
(
aSignArea
.
getMaxX
()
-
TEXT_PADDING
,
aSignArea
.
getCenterY
()
);
B2DPoint
aBottom
(
(
aLeft
.
getX
()
+
aRight
.
getX
()
)
/
2.0
,
aLeft
.
getY
()
+
4.0
);
aSign
.
append
(
aLeft
);
aSign
.
append
(
aRight
);
aSign
.
append
(
aBottom
);
aSign
.
setClosed
(
true
);
B2DPoint
aLeft
(
aSignArea
.
getMinX
()
+
TEXT_PADDING
,
aSignArea
.
getCenterY
()
);
B2DPoint
aRight
(
aSignArea
.
getMaxX
()
-
TEXT_PADDING
,
aSignArea
.
getCenterY
()
);
B2DPoint
aBottom
(
(
aLeft
.
getX
()
+
aRight
.
getX
())
/
2.0
,
aLeft
.
getY
()
+
4.0
);
aSign
.
append
(
aLeft
);
aSign
.
append
(
aRight
);
aSign
.
append
(
aBottom
);
aSign
.
setClosed
(
true
);
}
BColor
aSignColor
=
Color
(
COL_BLACK
).
getBColor
(
);
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
aSignColor
=
Color
(
COL_WHITE
).
getBColor
(
);
BColor
aSignColor
=
Color
(
COL_BLACK
).
getBColor
(
);
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
aSignColor
=
Color
(
COL_WHITE
).
getBColor
(
);
aSeq
.
realloc
(
aSeq
.
getLength
()
+
1
);
aSeq
[
aSeq
.
getLength
()
-
1
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aSign
),
aSignColor
)
);
aSeq
.
realloc
(
aSeq
.
getLength
()
+
1
);
aSeq
[
aSeq
.
getLength
()
-
1
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aSign
),
aSignColor
));
// Create the processor and process the primitives
const
drawinglayer
::
geometry
::
ViewInformation2D
aNewViewInfos
;
boost
::
scoped_ptr
<
drawinglayer
::
processor2d
::
BaseProcessor2D
>
pProcessor
(
drawinglayer
::
processor2d
::
createBaseProcessor2DFromOutputDevice
(
*
this
,
aNewViewInfos
));
drawinglayer
::
processor2d
::
createBaseProcessor2DFromOutputDevice
(
rRenderContext
,
aNewViewInfos
));
// TODO Ghost it all if needed
drawinglayer
::
primitive2d
::
Primitive2DSequence
aGhostedSeq
(
1
);
double
nFadeRate
=
double
(
m_nFadeRate
)
/
100.0
;
drawinglayer
::
primitive2d
::
Primitive2DSequence
aGhostedSeq
(
1
);
double
nFadeRate
=
double
(
m_nFadeRate
)
/
100.0
;
const
basegfx
::
BColorModifierSharedPtr
aBColorModifier
(
new
basegfx
::
BColorModifier_interpolate
(
Color
(
COL_WHITE
).
getBColor
(),
new
basegfx
::
BColorModifier_interpolate
(
Color
(
COL_WHITE
).
getBColor
(),
1.0
-
nFadeRate
));
aGhostedSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
ModifiedColorPrimitive2D
(
aSeq
,
aBColorModifier
)
);
pProcessor
->
process
(
aGhostedSeq
);
aGhostedSeq
[
0
]
=
drawinglayer
::
primitive2d
::
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
ModifiedColorPrimitive2D
(
aSeq
,
aBColorModifier
));
pProcessor
->
process
(
aGhostedSeq
);
}
bool
SwHeaderFooterWin
::
IsEmptyHeaderFooter
(
)
...
...
@@ -493,7 +489,7 @@ void SwHeaderFooterWin::SetReadonly( bool bReadonly )
void
SwHeaderFooterWin
::
MouseButtonDown
(
const
MouseEvent
&
rMEvt
)
{
if
(
IsEmptyHeaderFooter
(
)
)
if
(
IsEmptyHeaderFooter
()
)
{
SwView
&
rView
=
GetEditWin
()
->
GetView
();
SwWrtShell
&
rSh
=
rView
.
GetWrtShell
();
...
...
@@ -505,32 +501,32 @@ void SwHeaderFooterWin::MouseButtonDown( const MouseEvent& rMEvt )
MenuButton
::
MouseButtonDown
(
rMEvt
);
}
void
SwHeaderFooterWin
::
Select
(
)
void
SwHeaderFooterWin
::
Select
()
{
ExecuteCommand
(
GetCurItemId
()
);
ExecuteCommand
(
GetCurItemId
()
);
}
IMPL_LINK_NOARG_TYPED
(
SwHeaderFooterWin
,
FadeHandler
,
Timer
*
,
void
)
{
if
(
m_bIsAppearing
&&
m_nFadeRate
>
0
)
if
(
m_bIsAppearing
&&
m_nFadeRate
>
0
)
m_nFadeRate
-=
25
;
else
if
(
!
m_bIsAppearing
&&
m_nFadeRate
<
100
)
else
if
(
!
m_bIsAppearing
&&
m_nFadeRate
<
100
)
m_nFadeRate
+=
25
;
if
(
m_nFadeRate
!=
100
&&
!
IsVisible
()
)
if
(
m_nFadeRate
!=
100
&&
!
IsVisible
()
)
{
Show
(
true
);
m_pLine
->
Show
(
true
);
Show
(
true
);
m_pLine
->
Show
(
true
);
}
else
if
(
m_nFadeRate
==
100
&&
IsVisible
(
)
)
else
if
(
m_nFadeRate
==
100
&&
IsVisible
()
)
{
Show
(
false
);
m_pLine
->
Show
(
false
);
Show
(
false
);
m_pLine
->
Show
(
false
);
}
else
Invalidate
();
if
(
IsVisible
(
)
&&
m_nFadeRate
>
0
&&
m_nFadeRate
<
100
)
if
(
IsVisible
()
&&
m_nFadeRate
>
0
&&
m_nFadeRate
<
100
)
m_aFadeTimer
.
Start
();
}
...
...
sw/source/uibase/docvw/PageBreakWin.cxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -135,86 +135,86 @@ void SwPageBreakWin::dispose()
MenuButton
::
dispose
();
}
void
SwPageBreakWin
::
Paint
(
vcl
::
RenderContext
&
/*rRenderContext*/
,
const
Rectangle
&
)
void
SwPageBreakWin
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
)
{
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
PixelToLogic
(
GetSizePixel
()
)
)
);
const
Rectangle
aRect
(
Rectangle
(
Point
(
0
,
0
),
rRenderContext
.
PixelToLogic
(
GetSizePixel
()))
);
// Properly paint the control
BColor
aColor
=
SwViewOption
::
GetPageBreakColor
().
getBColor
();
BColor
aHslLine
=
rgb2hsl
(
aColor
);
BColor
aHslLine
=
rgb2hsl
(
aColor
);
double
nLuminance
=
aHslLine
.
getZ
();
nLuminance
+=
(
1.0
-
nLuminance
)
*
0.75
;
nLuminance
+=
(
1.0
-
nLuminance
)
*
0.75
;
if
(
aHslLine
.
getZ
()
>
0.7
)
nLuminance
=
aHslLine
.
getZ
()
*
0.7
;
aHslLine
.
setZ
(
nLuminance
);
BColor
aOtherColor
=
hsl2rgb
(
aHslLine
);
aHslLine
.
setZ
(
nLuminance
);
BColor
aOtherColor
=
hsl2rgb
(
aHslLine
);
const
StyleSettings
&
rSettings
=
Application
::
GetSettings
().
GetStyleSettings
();
if
(
rSettings
.
GetHighContrastMode
(
)
)
if
(
rSettings
.
GetHighContrastMode
()
)
{
aColor
=
rSettings
.
GetDialogTextColor
().
getBColor
();
aOtherColor
=
rSettings
.
GetDialogColor
(
).
getBColor
();
aOtherColor
=
rSettings
.
GetDialogColor
().
getBColor
();
}
bool
bRtl
=
AllSettings
::
GetLayoutRTL
();
drawinglayer
::
primitive2d
::
Primitive2DSequence
aSeq
(
3
);
B2DRectangle
aBRect
(
double
(
aRect
.
Left
()
),
double
(
aRect
.
Top
(
)
),
double
(
aRect
.
Right
()
),
double
(
aRect
.
Bottom
(
)
)
);
B2DPolygon
aPolygon
=
createPolygonFromRect
(
aBRect
,
3.0
/
BUTTON_WIDTH
,
3.0
/
BUTTON_HEIGHT
);
drawinglayer
::
primitive2d
::
Primitive2DSequence
aSeq
(
3
);
B2DRectangle
aBRect
(
double
(
aRect
.
Left
()),
double
(
aRect
.
Top
()
),
double
(
aRect
.
Right
()),
double
(
aRect
.
Bottom
())
);
B2DPolygon
aPolygon
=
createPolygonFromRect
(
aBRect
,
3.0
/
BUTTON_WIDTH
,
3.0
/
BUTTON_HEIGHT
);
// Create the polygon primitives
aSeq
[
0
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aPolygon
),
aOtherColor
)
);
aSeq
[
1
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
(
aPolygon
,
aColor
)
);
aSeq
[
0
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aPolygon
),
aOtherColor
)
);
aSeq
[
1
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolygonHairlinePrimitive2D
(
aPolygon
,
aColor
)
);
// Create the primitive for the image
Image
aImg
(
SW_RES
(
IMG_PAGE_BREAK
)
);
Image
aImg
(
SW_RES
(
IMG_PAGE_BREAK
)
);
double
nImgOfstX
=
3.0
;
if
(
bRtl
)
if
(
bRtl
)
nImgOfstX
=
aRect
.
Right
()
-
aImg
.
GetSizePixel
().
Width
()
-
3.0
;
aSeq
[
2
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
DiscreteBitmapPrimitive2D
(
aImg
.
GetBitmapEx
(),
B2DPoint
(
nImgOfstX
,
1.0
)
)
);
aSeq
[
2
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
DiscreteBitmapPrimitive2D
(
aImg
.
GetBitmapEx
(),
B2DPoint
(
nImgOfstX
,
1.0
))
);
double
nTop
=
double
(
aRect
.
getHeight
()
)
/
2.0
;
double
nTop
=
double
(
aRect
.
getHeight
()
)
/
2.0
;
double
nBottom
=
nTop
+
4.0
;
double
nLeft
=
aRect
.
getWidth
(
)
-
ARROW_WIDTH
-
6.0
;
if
(
bRtl
)
double
nLeft
=
aRect
.
getWidth
()
-
ARROW_WIDTH
-
6.0
;
if
(
bRtl
)
nLeft
=
ARROW_WIDTH
-
2.0
;
double
nRight
=
nLeft
+
8.0
;
B2DPolygon
aTriangle
;
aTriangle
.
append
(
B2DPoint
(
nLeft
,
nTop
)
);
aTriangle
.
append
(
B2DPoint
(
nRight
,
nTop
)
);
aTriangle
.
append
(
B2DPoint
(
(
nLeft
+
nRight
)
/
2.0
,
nBottom
)
);
aTriangle
.
setClosed
(
true
);
BColor
aTriangleColor
=
Color
(
COL_BLACK
).
getBColor
(
);
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
aTriangleColor
=
Color
(
COL_WHITE
).
getBColor
(
);
aSeq
.
realloc
(
aSeq
.
getLength
()
+
1
);
aSeq
[
aSeq
.
getLength
()
-
1
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aTriangle
),
aTriangleColor
)
);
Primitive2DSequence
aGhostedSeq
(
1
);
double
nFadeRate
=
double
(
m_nFadeRate
)
/
100.0
;
aTriangle
.
append
(
B2DPoint
(
nLeft
,
nTop
));
aTriangle
.
append
(
B2DPoint
(
nRight
,
nTop
));
aTriangle
.
append
(
B2DPoint
((
nLeft
+
nRight
)
/
2.0
,
nBottom
));
aTriangle
.
setClosed
(
true
);
BColor
aTriangleColor
=
Color
(
COL_BLACK
).
getBColor
();
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
())
aTriangleColor
=
Color
(
COL_WHITE
).
getBColor
();
aSeq
.
realloc
(
aSeq
.
getLength
()
+
1
);
aSeq
[
aSeq
.
getLength
()
-
1
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
PolyPolygonColorPrimitive2D
(
B2DPolyPolygon
(
aTriangle
),
aTriangleColor
));
Primitive2DSequence
aGhostedSeq
(
1
);
double
nFadeRate
=
double
(
m_nFadeRate
)
/
100.0
;
const
basegfx
::
BColorModifierSharedPtr
aBColorModifier
(
new
basegfx
::
BColorModifier_interpolate
(
Color
(
COL_WHITE
).
getBColor
(),
new
basegfx
::
BColorModifier_interpolate
(
Color
(
COL_WHITE
).
getBColor
(),
1.0
-
nFadeRate
));
aGhostedSeq
[
0
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
ModifiedColorPrimitive2D
(
aSeq
,
aBColorModifier
)
);
aGhostedSeq
[
0
]
=
Primitive2DReference
(
new
drawinglayer
::
primitive2d
::
ModifiedColorPrimitive2D
(
aSeq
,
aBColorModifier
));
// Create the processor and process the primitives
const
drawinglayer
::
geometry
::
ViewInformation2D
aNewViewInfos
;
boost
::
scoped_ptr
<
drawinglayer
::
processor2d
::
BaseProcessor2D
>
pProcessor
(
drawinglayer
::
processor2d
::
createBaseProcessor2DFromOutputDevice
(
*
this
,
aNewViewInfos
));
drawinglayer
::
processor2d
::
createBaseProcessor2DFromOutputDevice
(
rRenderContext
,
aNewViewInfos
));
pProcessor
->
process
(
aGhostedSeq
);
pProcessor
->
process
(
aGhostedSeq
);
}
void
SwPageBreakWin
::
Select
(
)
...
...
@@ -466,7 +466,7 @@ IMPL_LINK_NOARG_TYPED(SwPageBreakWin, FadeHandler, Timer *, void)
Invalidate
();
}
if
(
IsVisible
(
)
&&
m_nFadeRate
>
0
&&
m_nFadeRate
<
100
)
if
(
IsVisible
(
)
&&
m_nFadeRate
>
0
&&
m_nFadeRate
<
100
)
m_aFadeTimer
.
Start
();
}
...
...
sw/source/uibase/docvw/SidebarTxtControl.cxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -151,43 +151,37 @@ void SidebarTxtControl::Draw(OutputDevice* pDev, const Point& rPt, const Size& r
}
}
void
SidebarTxtControl
::
Paint
(
vcl
::
RenderContext
&
/*rRenderContext*/
,
const
Rectangle
&
rRect
)
void
SidebarTxtControl
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
rRect
)
{
if
(
!
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
if
(
!
rRenderContext
.
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
{
if
(
mrSidebarWin
.
IsMouseOverSidebarWin
()
||
HasFocus
()
)
if
(
mrSidebarWin
.
IsMouseOverSidebarWin
()
||
HasFocus
())
{
DrawGradient
(
Rectangle
(
Point
(
0
,
0
),
PixelToLogic
(
GetSizePixel
())
),
Gradient
(
GradientStyle_LINEAR
,
mrSidebarWin
.
ColorDark
(),
mrSidebarWin
.
ColorDark
()
)
);
rRenderContext
.
DrawGradient
(
Rectangle
(
Point
(
0
,
0
),
rRenderContext
.
PixelToLogic
(
GetSizePixel
())),
Gradient
(
GradientStyle_LINEAR
,
mrSidebarWin
.
ColorDark
(),
mrSidebarWin
.
ColorDark
()));
}
else
{
DrawGradient
(
Rectangle
(
Point
(
0
,
0
),
PixelToLogic
(
GetSizePixel
())
),
Gradient
(
GradientStyle_LINEAR
,
mrSidebarWin
.
ColorLight
(),
mrSidebarWin
.
ColorDark
()));
rRenderContext
.
DrawGradient
(
Rectangle
(
Point
(
0
,
0
),
rRenderContext
.
PixelToLogic
(
GetSizePixel
())),
Gradient
(
GradientStyle_LINEAR
,
mrSidebarWin
.
ColorLight
(),
mrSidebarWin
.
ColorDark
()));
}
}
if
(
GetTextView
()
)
if
(
GetTextView
()
)
{
GetTextView
()
->
Paint
(
rRect
);
GetTextView
()
->
Paint
(
rRect
,
&
rRenderContext
);
}
if
(
mrSidebarWin
.
GetLayoutStatus
()
==
SwPostItHelper
::
DELETED
)
if
(
mrSidebarWin
.
GetLayoutStatus
()
==
SwPostItHelper
::
DELETED
)
{
SetLineColor
(
mrSidebarWin
.
GetChangeColor
());
DrawLine
(
PixelToLogic
(
GetPosPixel
()
),
PixelToLogic
(
GetPosPixel
()
+
Point
(
GetSizePixel
().
Width
(),
GetSizePixel
().
Height
()
)
)
);
DrawLine
(
PixelToLogic
(
GetPosPixel
()
+
Point
(
GetSizePixel
().
Width
(),
0
)
),
PixelToLogic
(
GetPosPixel
()
+
Point
(
0
,
GetSizePixel
().
Height
()
)
)
);
rRenderContext
.
SetLineColor
(
mrSidebarWin
.
GetChangeColor
());
rRenderContext
.
DrawLine
(
rRenderContext
.
PixelToLogic
(
GetPosPixel
()),
rRenderContext
.
PixelToLogic
(
GetPosPixel
()
+
Point
(
GetSizePixel
().
Width
(),
GetSizePixel
().
Height
())));
rRenderContext
.
DrawLine
(
rRenderContext
.
PixelToLogic
(
GetPosPixel
()
+
Point
(
GetSizePixel
().
Width
(),
0
)),
rRenderContext
.
PixelToLogic
(
GetPosPixel
()
+
Point
(
0
,
GetSizePixel
().
Height
())));
}
}
...
...
sw/source/uibase/docvw/SidebarWin.cxx
Dosyayı görüntüle @
41df7db9
...
...
@@ -89,14 +89,14 @@ namespace sw { namespace sidebarwindows {
#define POSTIT_META_HEIGHT (sal_Int32) 30
#define POSTIT_MINIMUMSIZE_WITHOUT_META 50
SwSidebarWin
::
SwSidebarWin
(
SwEditWin
&
rEditWin
,
SwSidebarWin
::
SwSidebarWin
(
SwEditWin
&
rEditWin
,
WinBits
nBits
,
SwPostItMgr
&
aMgr
,
SwPostItBits
aBits
,
SwSidebarItem
&
rSidebarItem
)
SwSidebarItem
&
rSidebarItem
)
:
Window
(
&
rEditWin
,
nBits
)
,
mrMgr
(
aMgr
)
,
mrView
(
rEditWin
.
GetView
()
)
,
mrView
(
rEditWin
.
GetView
()
)
,
nFlags
(
aBits
)
,
mnEventId
(
0
)
,
mpOutlinerView
(
0
)
...
...
@@ -106,23 +106,23 @@ SwSidebarWin::SwSidebarWin( SwEditWin& rEditWin,
,
mpMetadataAuthor
(
0
)
,
mpMetadataDate
(
0
)
,
mpMenuButton
(
0
)
,
mpAnchor
(
NULL
)
,
mpShadow
(
NULL
)
,
mpTextRangeOverlay
(
NULL
)
,
mpAnchor
(
NULL
)
,
mpShadow
(
NULL
)
,
mpTextRangeOverlay
(
NULL
)
,
mColorAnchor
()
,
mColorDark
()
,
mColorLight
()
,
mChangeColor
()
,
meSidebarPosition
(
sw
::
sidebarwindows
::
SidebarPosition
::
NONE
)
,
meSidebarPosition
(
sw
::
sidebarwindows
::
SidebarPosition
::
NONE
)
,
mPosSize
()
,
mAnchorRect
()
,
mPageBorder
(
0
)
,
mbMouseOver
(
false
)
,
mLayoutStatus
(
SwPostItHelper
::
INVISIBLE
)
,
mbReadonly
(
false
)
,
mbIsFollow
(
false
)
,
mrSidebarItem
(
rSidebarItem
)
,
mpAnchorFrm
(
rSidebarItem
.
maLayoutInfo
.
mpAnchorFrm
)
,
mPageBorder
(
0
)
,
mbMouseOver
(
false
)
,
mLayoutStatus
(
SwPostItHelper
::
INVISIBLE
)
,
mbReadonly
(
false
)
,
mbIsFollow
(
false
)
,
mrSidebarItem
(
rSidebarItem
)
,
mpAnchorFrm
(
rSidebarItem
.
maLayoutInfo
.
mpAnchorFrm
)
{
mpShadow
=
ShadowOverlayObject
::
CreateShadowOverlayObject
(
mrView
);
if
(
mpShadow
)
...
...
@@ -208,29 +208,29 @@ void SwSidebarWin::dispose()
vcl
::
Window
::
dispose
();
}
void
SwSidebarWin
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
rRect
)
void
SwSidebarWin
::
Paint
(
vcl
::
RenderContext
&
rRenderContext
,
const
Rectangle
&
rRect
)
{
Window
::
Paint
(
rRenderContext
,
rRect
);
if
(
mpMetadataAuthor
->
IsVisible
()
)
if
(
mpMetadataAuthor
->
IsVisible
())
{
//draw left over space
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
if
(
Application
::
GetSettings
().
GetStyleSettings
().
GetHighContrastMode
()
)
{
SetFillColor
(
COL_BLACK
);
rRenderContext
.
SetFillColor
(
COL_BLACK
);
}
else
{
SetFillColor
(
mColorDark
);
rRenderContext
.
SetFillColor
(
mColorDark
);
}
SetLineColor
();
DrawRect
(
PixelToLogic
(
Rectangle
(
Point
(
mpMetadataAuthor
->
GetPosPixel
().
X
()
+
mpMetadataAuthor
->
GetSizePixel
().
Width
(
),
mpMetadataAuthor
->
GetPosPixel
().
Y
()
),
Size
(
GetMetaButtonAreaWidth
(),
mpMetadataAuthor
->
GetSizePixel
().
Height
()
+
mpMetadataDate
->
GetSizePixel
().
Height
()
)
)
)
);
rRenderContext
.
SetLineColor
();
Rectangle
aRectangle
(
Point
(
mpMetadataAuthor
->
GetPosPixel
().
X
()
+
mpMetadataAuthor
->
GetSizePixel
().
Width
(),
mpMetadataAuthor
->
GetPosPixel
().
Y
()
),
Size
(
GetMetaButtonAreaWidth
(
),
mpMetadataAuthor
->
GetSizePixel
().
Height
()
+
mpMetadataDate
->
GetSizePixel
().
Height
()));
rRenderContext
.
DrawRect
(
PixelToLogic
(
aRectangle
)
);
}
}
...
...
@@ -302,12 +302,8 @@ void SwSidebarWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, s
}
}
void
SwSidebarWin
::
SetPosSizePixelRect
(
long
nX
,
long
nY
,
long
nWidth
,
long
nHeight
,
const
SwRect
&
aAnchorRect
,
const
long
aPageBorder
)
void
SwSidebarWin
::
SetPosSizePixelRect
(
long
nX
,
long
nY
,
long
nWidth
,
long
nHeight
,
const
SwRect
&
aAnchorRect
,
const
long
aPageBorder
)
{
mPosSize
=
Rectangle
(
Point
(
nX
,
nY
),
Size
(
nWidth
,
nHeight
));
mAnchorRect
=
aAnchorRect
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment