Line data Source code
1 : /* Copyright (C) 2021 Wildfire Games.
2 : * This file is part of 0 A.D.
3 : *
4 : * 0 A.D. is free software: you can redistribute it and/or modify
5 : * it under the terms of the GNU General Public License as published by
6 : * the Free Software Foundation, either version 2 of the License, or
7 : * (at your option) any later version.
8 : *
9 : * 0 A.D. is distributed in the hope that it will be useful,
10 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 : * GNU General Public License for more details.
13 : *
14 : * You should have received a copy of the GNU General Public License
15 : * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
16 : */
17 :
18 : #include "precompiled.h"
19 :
20 : #include "IGUIScrollBarOwner.h"
21 :
22 : #include "gui/CGUI.h"
23 : #include "gui/IGUIScrollBar.h"
24 : #include "gui/ObjectBases/IGUIObject.h"
25 :
26 0 : IGUIScrollBarOwner::IGUIScrollBarOwner(IGUIObject& pObject)
27 0 : : m_pObject(pObject)
28 : {
29 0 : }
30 :
31 : IGUIScrollBarOwner::~IGUIScrollBarOwner() = default;
32 :
33 0 : void IGUIScrollBarOwner::ResetStates()
34 : {
35 0 : for (const std::unique_ptr<IGUIScrollBar>& scrollBar : m_ScrollBars)
36 0 : scrollBar->SetBarPressed(false);
37 0 : }
38 :
39 0 : void IGUIScrollBarOwner::AddScrollBar(std::unique_ptr<IGUIScrollBar> scrollbar)
40 : {
41 0 : scrollbar->SetHostObject(this);
42 0 : m_ScrollBars.emplace_back(std::move(scrollbar));
43 0 : }
44 :
45 0 : const SGUIScrollBarStyle* IGUIScrollBarOwner::GetScrollBarStyle(const CStr& style) const
46 : {
47 0 : return m_pObject.GetGUI().GetScrollBarStyle(style);
48 : }
49 :
50 0 : void IGUIScrollBarOwner::HandleMessage(SGUIMessage& msg)
51 : {
52 0 : for (const std::unique_ptr<IGUIScrollBar>& scrollBar : m_ScrollBars)
53 0 : scrollBar->HandleMessage(msg);
54 0 : }
55 :
56 0 : void IGUIScrollBarOwner::Draw(CCanvas2D& canvas)
57 : {
58 0 : for (const std::unique_ptr<IGUIScrollBar>& scrollBar : m_ScrollBars)
59 0 : scrollBar->Draw(canvas);
60 0 : }
61 :
62 0 : float IGUIScrollBarOwner::GetScrollBarPos(const int index) const
63 : {
64 0 : return m_ScrollBars[index]->GetPos();
65 : }
|