Don't crash while in the lobby when receiving an error IQ stanza without an error...
[0ad.git] / source / gui / IGUIScrollBarOwner.cpp
blob6a2dac3889b856fd5238830e33a8f1f9ebe2695e
1 /* Copyright (C) 2015 Wildfire Games.
2 * This file is part of 0 A.D.
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.
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.
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/>.
18 #include "precompiled.h"
20 #include "GUI.h"
22 IGUIScrollBarOwner::IGUIScrollBarOwner()
26 IGUIScrollBarOwner::~IGUIScrollBarOwner()
28 for (IGUIScrollBar* const& sb : m_ScrollBars)
29 delete sb;
32 void IGUIScrollBarOwner::ResetStates()
34 IGUIObject::ResetStates();
36 for (IGUIScrollBar* const& sb : m_ScrollBars)
37 sb->SetBarPressed(false);
40 void IGUIScrollBarOwner::AddScrollBar(IGUIScrollBar* scrollbar)
42 scrollbar->SetHostObject(this);
43 scrollbar->SetGUI(GetGUI());
44 m_ScrollBars.push_back(scrollbar);
47 const SGUIScrollBarStyle* IGUIScrollBarOwner::GetScrollBarStyle(const CStr& style) const
49 if (!GetGUI())
51 // TODO Gee: Output in log
52 return NULL;
55 std::map<CStr, SGUIScrollBarStyle>::const_iterator it = GetGUI()->m_ScrollBarStyles.find(style);
56 if (it == GetGUI()->m_ScrollBarStyles.end())
58 // TODO Gee: Output in log
59 return NULL;
62 return &it->second;
65 void IGUIScrollBarOwner::HandleMessage(SGUIMessage& msg)
67 for (IGUIScrollBar* const& sb : m_ScrollBars)
68 sb->HandleMessage(msg);
71 void IGUIScrollBarOwner::Draw()
73 for (IGUIScrollBar* const& sb : m_ScrollBars)
74 sb->Draw();
77 float IGUIScrollBarOwner::GetScrollBarPos(const int index) const
79 return m_ScrollBars[index]->GetPos();