Changeset View
Changeset View
Standalone View
Standalone View
source/gui/COList.cpp
Show First 20 Lines • Show All 278 Lines • ▼ Show 20 Lines | else if (child.GetNodeName() == elmt_column) | ||||
SetupText(); | SetupText(); | ||||
return true; | return true; | ||||
} | } | ||||
return false; | return false; | ||||
} | } | ||||
void COList::DrawList(const int& selected, const CStr& _sprite, const CStr& _sprite_selected, const CStr& _textcolor) | void COList::DrawList(const int selected, const CStr& _sprite, const CStr& _sprite_selected, const CStr& _textcolor) | ||||
{ | { | ||||
const float bz = GetBufferedZ(); | const float bz = GetBufferedZ(); | ||||
const bool scrollbar = GetSetting<bool>("scrollbar"); | const bool scrollbar = GetSetting<bool>("scrollbar"); | ||||
if (scrollbar) | if (scrollbar) | ||||
IGUIScrollBarOwner::Draw(); | IGUIScrollBarOwner::Draw(); | ||||
CRect rect = GetListRect(); | CRect rect = GetListRect(); | ||||
CGUISpriteInstance& sprite = GetSetting<CGUISpriteInstance>(_sprite); | CGUISpriteInstance& sprite = GetSetting<CGUISpriteInstance>(_sprite); | ||||
CGUISpriteInstance& sprite_selectarea = GetSetting<CGUISpriteInstance>(_sprite_selected); | CGUISpriteInstance& sprite_selectarea = GetSetting<CGUISpriteInstance>(_sprite_selected); | ||||
const int cell_id = GetSetting<i32>("cell_id"); | const int cell_id = GetSetting<i32>("cell_id"); | ||||
m_pGUI.DrawSprite(sprite, cell_id, bz, rect); | m_pGUI.DrawSprite(sprite, cell_id, bz, rect); | ||||
float scroll = 0.f; | float scroll = 0.f; | ||||
if (scrollbar) | if (scrollbar) | ||||
scroll = GetScrollBar(0).GetPos(); | scroll = GetScrollBar(0).GetPos(); | ||||
// Draw item selection | DrawSelectedItems(selected, scrollbar, scroll, sprite_selectarea, cell_id, bz, rect); | ||||
if (selected != -1) | |||||
{ | |||||
ENSURE(selected >= 0 && selected+1 < (int)m_ItemsYPositions.size()); | |||||
// Get rectangle of selection: | |||||
CRect rect_sel(rect.left, rect.top + m_ItemsYPositions[selected] - scroll, | |||||
rect.right, rect.top + m_ItemsYPositions[selected+1] - scroll); | |||||
if (rect_sel.top <= rect.bottom && | |||||
rect_sel.bottom >= rect.top) | |||||
{ | |||||
if (rect_sel.bottom > rect.bottom) | |||||
rect_sel.bottom = rect.bottom; | |||||
if (rect_sel.top < rect.top) | |||||
rect_sel.top = rect.top; | |||||
if (scrollbar) | |||||
{ | |||||
// Remove any overlapping area of the scrollbar. | |||||
if (rect_sel.right > GetScrollBar(0).GetOuterRect().left && | |||||
rect_sel.right <= GetScrollBar(0).GetOuterRect().right) | |||||
rect_sel.right = GetScrollBar(0).GetOuterRect().left; | |||||
if (rect_sel.left >= GetScrollBar(0).GetOuterRect().left && | |||||
rect_sel.left < GetScrollBar(0).GetOuterRect().right) | |||||
rect_sel.left = GetScrollBar(0).GetOuterRect().right; | |||||
} | |||||
// Draw item selection | |||||
m_pGUI.DrawSprite(sprite_selectarea, cell_id, bz+0.05f, rect_sel); | |||||
} | |||||
} | |||||
// Draw line above column header | // Draw line above column header | ||||
CGUISpriteInstance& sprite_heading = GetSetting<CGUISpriteInstance>("sprite_heading"); | CGUISpriteInstance& sprite_heading = GetSetting<CGUISpriteInstance>("sprite_heading"); | ||||
CRect rect_head(m_CachedActualSize.left, m_CachedActualSize.top, m_CachedActualSize.right, | CRect rect_head(m_CachedActualSize.left, m_CachedActualSize.top, m_CachedActualSize.right, | ||||
m_CachedActualSize.top + m_HeadingHeight); | m_CachedActualSize.top + m_HeadingHeight); | ||||
Stan: Range loop selecteditem for the name felse invert iterator | |||||
m_pGUI.DrawSprite(sprite_heading, cell_id, bz, rect_head); | m_pGUI.DrawSprite(sprite_heading, cell_id, bz, rect_head); | ||||
// Draw column headers | // Draw column headers | ||||
const bool sortable = GetSetting<bool>("sortable"); | const bool sortable = GetSetting<bool>("sortable"); | ||||
const CStr& selectedColumn = GetSetting<CStr>("selected_column"); | const CStr& selectedColumn = GetSetting<CStr>("selected_column"); | ||||
const int selectedColumnOrder = GetSetting<i32>("selected_column_order"); | const int selectedColumnOrder = GetSetting<i32>("selected_column_order"); | ||||
const CGUIColor& color = GetSetting<CGUIColor>(_textcolor); | const CGUIColor& color = GetSetting<CGUIColor>(_textcolor); | ||||
Show All 12 Lines | for (size_t col = 0; col < m_Columns.size(); ++col) | ||||
// Draw sort arrows in colum header | // Draw sort arrows in colum header | ||||
if (sortable) | if (sortable) | ||||
{ | { | ||||
CStr spriteName; | CStr spriteName; | ||||
if (selectedColumn == m_Columns[col].m_Id) | if (selectedColumn == m_Columns[col].m_Id) | ||||
{ | { | ||||
if (selectedColumnOrder == 0) | if (selectedColumnOrder == 0) | ||||
LOGERROR("selected_column_order must not be 0"); | LOGERROR("selected_column_order must not be 0"); | ||||
Done Inline ActionsWe need to avoid C-style case, especially this kind. Use size_t. vladislavbelov: We need to avoid C-style case, especially this kind. Use `size_t`. | |||||
Done Inline ActionsIMHO, it'd be better you have a full name: numberOfSelections. vladislavbelov: IMHO, it'd be better you have a full name: `numberOfSelections`. | |||||
if (selectedColumnOrder != -1) | if (selectedColumnOrder != -1) | ||||
spriteName = "sprite_asc"; | spriteName = "sprite_asc"; | ||||
Done Inline ActionsThe i is enough for the name, or use just selection. vladislavbelov: The `i` is enough for the name, or use just `selection`. | |||||
else | else | ||||
spriteName = "sprite_desc"; | spriteName = "sprite_desc"; | ||||
} | } | ||||
else | else | ||||
spriteName = "sprite_not_sorted"; | spriteName = "sprite_not_sorted"; | ||||
CGUISpriteInstance& sprite = GetSetting<CGUISpriteInstance>(spriteName); | CGUISpriteInstance& sprite = GetSetting<CGUISpriteInstance>(spriteName); | ||||
m_pGUI.DrawSprite(sprite, cell_id, bz + 0.1f, CRect(leftTopCorner + CPos(width - SORT_SPRITE_DIM, 0), leftTopCorner + CPos(width, SORT_SPRITE_DIM))); | m_pGUI.DrawSprite(sprite, cell_id, bz + 0.1f, CRect(leftTopCorner + CPos(width - SORT_SPRITE_DIM, 0), leftTopCorner + CPos(width, SORT_SPRITE_DIM))); | ||||
▲ Show 20 Lines • Show All 58 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
Range loop selecteditem for the name felse invert iterator