1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_VCL_WALL_HXX
#define INCLUDED_VCL_WALL_HXX
#include <tools/solar.h>
#include <vcl/dllapi.h>
#include <tools/color.hxx>
#include <tools/gen.hxx>
class Gradient;
class BitmapEx;
class ImplWallpaper;
// -------------------
// - Wallpaper-Types -
// -------------------
#define WALLPAPER_NULL WallpaperStyle_NULL
#define WALLPAPER_TILE WallpaperStyle_TILE
#define WALLPAPER_CENTER WallpaperStyle_CENTER
#define WALLPAPER_SCALE WallpaperStyle_SCALE
#define WALLPAPER_TOPLEFT WallpaperStyle_TOPLEFT
#define WALLPAPER_TOP WallpaperStyle_TOP
#define WALLPAPER_TOPRIGHT WallpaperStyle_TOPRIGHT
#define WALLPAPER_LEFT WallpaperStyle_LEFT
#define WALLPAPER_RIGHT WallpaperStyle_RIGHT
#define WALLPAPER_BOTTOMLEFT WallpaperStyle_BOTTOMLEFT
#define WALLPAPER_BOTTOM WallpaperStyle_BOTTOM
#define WALLPAPER_BOTTOMRIGHT WallpaperStyle_BOTTOMRIGHT
#define WALLPAPER_APPLICATIONGRADIENT WallpaperStyle_APPLICATIONGRADIENT
#define WALLPAPER_FORCE_EQUAL_SIZE WallpaperStyle_FORCE_EQUAL_SIZE
#ifndef ENUM_WALLPAPERSTYLE_DECLARED
#define ENUM_WALLPAPERSTYLE_DECLARED
enum WallpaperStyle
{
WALLPAPER_NULL,
WALLPAPER_TILE,
WALLPAPER_CENTER,
WALLPAPER_SCALE,
WALLPAPER_TOPLEFT,
WALLPAPER_TOP,
WALLPAPER_TOPRIGHT,
WALLPAPER_LEFT,
WALLPAPER_RIGHT,
WALLPAPER_BOTTOMLEFT,
WALLPAPER_BOTTOM,
WALLPAPER_BOTTOMRIGHT,
WALLPAPER_APPLICATIONGRADIENT, // defines a gradient that internally covers the whole application
// and uses a color derived from the face color
WALLPAPER_FORCE_EQUAL_SIZE = 0x7fffffff
};
#endif
// -------------
// - Wallpaper -
// -------------
class VCL_DLLPUBLIC Wallpaper
{
private:
ImplWallpaper* mpImplWallpaper;
SAL_DLLPRIVATE void ImplMakeUnique( sal_Bool bReleaseCache = sal_True );
SAL_DLLPRIVATE Gradient ImplGetApplicationGradient() const;
public:
SAL_DLLPRIVATE ImplWallpaper* ImplGetImpWallpaper() const { return mpImplWallpaper; }
public:
Wallpaper();
Wallpaper( const Wallpaper& rWallpaper );
Wallpaper( const Color& rColor );
explicit Wallpaper( const BitmapEx& rBmpEx );
Wallpaper( const Gradient& rGradient );
~Wallpaper();
void SetColor( const Color& rColor );
const Color& GetColor() const;
void SetStyle( WallpaperStyle eStyle );
WallpaperStyle GetStyle() const;
void SetBitmap( const BitmapEx& rBitmap );
BitmapEx GetBitmap() const;
sal_Bool IsBitmap() const;
void SetGradient( const Gradient& rGradient );
Gradient GetGradient() const;
sal_Bool IsGradient() const;
void SetRect( const Rectangle& rRect );
Rectangle GetRect() const;
sal_Bool IsRect() const;
sal_Bool IsFixed() const;
sal_Bool IsScrollable() const;
Wallpaper& operator=( const Wallpaper& rWallpaper );
sal_Bool operator==( const Wallpaper& rWallpaper ) const;
sal_Bool operator!=( const Wallpaper& rWallpaper ) const
{ return !(Wallpaper::operator==( rWallpaper )); }
sal_Bool IsSameInstance( const Wallpaper& rWallpaper ) const
{ return (mpImplWallpaper == rWallpaper.mpImplWallpaper); }
friend VCL_DLLPUBLIC SvStream& operator>>( SvStream& rIStm, Wallpaper& rWallpaper );
friend VCL_DLLPUBLIC SvStream& WriteWallpaper( SvStream& rOStm, const Wallpaper& rWallpaper );
};
#endif // INCLUDED_VCL_WALL_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|