summaryrefslogtreecommitdiff
path: root/indra/llui/llstyle.cpp
blob: aafcfbc143029481265bf9bd22de3c7395e3ec05 (plain)
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
/**
 * @file llstyle.cpp
 * @brief Text style class
 *
 * $LicenseInfo:firstyear=2001&license=viewerlgpl$
 * Second Life Viewer Source Code
 * Copyright (C) 2010, Linden Research, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation;
 * version 2.1 of the License only.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
 * $/LicenseInfo$
 */

#include "linden_common.h"

#include "llstyle.h"

#include "llfontgl.h"
#include "llstring.h"
#include "llui.h"

LLStyle::Params::Params()
    : visible("visible", true),
    drop_shadow("drop_shadow", LLFontGL::NO_SHADOW),
    color("color", LLColor4::black),
    readonly_color("readonly_color", LLColor4::black),
    selected_color("selected_color", LLColor4::black),
    alpha("alpha", 1.f),
    font("font", LLFontGL::getFontMonospace()),
    image("image"),
    link_href("href"),
    is_link("is_link")
{
}

LLStyle::LLStyle(const LLStyle::Params& p)
:   mVisible(p.visible),
    mColor(p.color),
    mReadOnlyColor(p.readonly_color),
    mSelectedColor(p.selected_color),
    mFont(p.font()),
    mLink(p.link_href),
    mIsLink(p.is_link.isProvided() ? p.is_link : !p.link_href().empty()),
    mDropShadow(p.drop_shadow),
    mImagep(p.image()),
    mAlpha(p.alpha)
{
}

LLStyle* LLStyle::makeCopy() const
{
    LLStyle* copy = new LLStyle();
    copy->mDropShadow = mDropShadow;
    copy->mFontName = mFontName;
    copy->mLink = mLink;
    copy->mColor.set(mColor.get());
    copy->mReadOnlyColor.set(mReadOnlyColor.get());
    copy->mSelectedColor.set(mSelectedColor.get());
    copy->mFont = mFont;
    copy->mImagep = mImagep;
    copy->mAlpha = mAlpha;
    copy->mVisible = mVisible;
    copy->mIsLink = mIsLink;
    return copy;
}

void LLStyle::setFont(const LLFontGL* font)
{
    mFont = font;
}

const LLFontGL* LLStyle::getFont() const
{
    return mFont;
}

void LLStyle::setLinkHREF(const std::string& href)
{
    mLink = href;
}

bool LLStyle::isLink() const
{
    return mIsLink;
}

bool LLStyle::isVisible() const
{
    return mVisible;
}

void LLStyle::setVisible(bool is_visible)
{
    mVisible = is_visible;
}

LLPointer<LLUIImage> LLStyle::getImage() const
{
    return mImagep;
}

void LLStyle::setImage(const LLUUID& src)
{
    mImagep = LLUI::getUIImageByID(src);
}

void LLStyle::setImage(const std::string& name)
{
    mImagep = LLUI::getUIImage(name);
}