1
0
forked from 0ad/0ad

Removes raw pointers management from GUIScrollBarOwner.

This was SVN commit r25693.
This commit is contained in:
Vladislav Belov 2021-06-06 00:12:31 +00:00
parent fdb4040838
commit a2257237b3
5 changed files with 18 additions and 21 deletions

View File

@ -28,22 +28,18 @@ IGUIScrollBarOwner::IGUIScrollBarOwner(IGUIObject& pObject)
{
}
IGUIScrollBarOwner::~IGUIScrollBarOwner()
{
for (IGUIScrollBar* const& sb : m_ScrollBars)
delete sb;
}
IGUIScrollBarOwner::~IGUIScrollBarOwner() = default;
void IGUIScrollBarOwner::ResetStates()
{
for (IGUIScrollBar* const& sb : m_ScrollBars)
sb->SetBarPressed(false);
for (const std::unique_ptr<IGUIScrollBar>& scrollBar : m_ScrollBars)
scrollBar->SetBarPressed(false);
}
void IGUIScrollBarOwner::AddScrollBar(IGUIScrollBar* scrollbar)
void IGUIScrollBarOwner::AddScrollBar(std::unique_ptr<IGUIScrollBar> scrollbar)
{
scrollbar->SetHostObject(this);
m_ScrollBars.push_back(scrollbar);
m_ScrollBars.emplace_back(std::move(scrollbar));
}
const SGUIScrollBarStyle* IGUIScrollBarOwner::GetScrollBarStyle(const CStr& style) const
@ -53,14 +49,14 @@ const SGUIScrollBarStyle* IGUIScrollBarOwner::GetScrollBarStyle(const CStr& styl
void IGUIScrollBarOwner::HandleMessage(SGUIMessage& msg)
{
for (IGUIScrollBar* const& sb : m_ScrollBars)
sb->HandleMessage(msg);
for (const std::unique_ptr<IGUIScrollBar>& scrollBar : m_ScrollBars)
scrollBar->HandleMessage(msg);
}
void IGUIScrollBarOwner::Draw(CCanvas2D& canvas)
{
for (IGUIScrollBar* const& sb : m_ScrollBars)
sb->Draw(canvas);
for (const std::unique_ptr<IGUIScrollBar>& scrollBar : m_ScrollBars)
scrollBar->Draw(canvas);
}
float IGUIScrollBarOwner::GetScrollBarPos(const int index) const

View File

@ -18,6 +18,7 @@
#ifndef INCLUDED_IGUISCROLLBAROWNER
#define INCLUDED_IGUISCROLLBAROWNER
#include <memory>
#include <vector>
class CCanvas2D;
@ -61,7 +62,7 @@ public:
/**
* Add a scroll-bar
*/
virtual void AddScrollBar(IGUIScrollBar* scrollbar);
virtual void AddScrollBar(std::unique_ptr<IGUIScrollBar> scrollbar);
/**
* Get Scroll Bar reference (it should be transparent it's actually
@ -83,7 +84,7 @@ protected:
* Predominately you will only have one, but you can have
* as many as you like.
*/
std::vector<IGUIScrollBar*> m_ScrollBars;
std::vector<std::unique_ptr<IGUIScrollBar>> m_ScrollBars;
private:
/**

View File

@ -78,9 +78,9 @@ CInput::CInput(CGUI& pGUI)
{
CFG_GET_VAL("gui.cursorblinkrate", m_CursorBlinkRate);
CGUIScrollBarVertical* bar = new CGUIScrollBarVertical(pGUI);
auto bar = std::make_unique<CGUIScrollBarVertical>(pGUI);
bar->SetRightAligned(true);
AddScrollBar(bar);
AddScrollBar(std::move(bar));
}
CInput::~CInput()

View File

@ -60,9 +60,9 @@ CList::CList(CGUI& pGUI)
m_ListData(this, "list_data")
{
// Add scroll-bar
CGUIScrollBarVertical* bar = new CGUIScrollBarVertical(pGUI);
auto bar = std::make_unique<CGUIScrollBarVertical>(pGUI);
bar->SetRightAligned(true);
AddScrollBar(bar);
AddScrollBar(std::move(bar));
}
CList::~CList()

View File

@ -41,9 +41,9 @@ CText::CText(CGUI& pGUI)
m_TextColorDisabled(this, "textcolor_disabled")
{
// Add scroll-bar
CGUIScrollBarVertical* bar = new CGUIScrollBarVertical(pGUI);
auto bar = std::make_unique<CGUIScrollBarVertical>(pGUI);
bar->SetRightAligned(true);
AddScrollBar(bar);
AddScrollBar(std::move(bar));
// Add text
AddText();