Ticket #3905: 3905_COList_refresh_v2.patch
File 3905_COList_refresh_v2.patch, 2.7 KB (added by , 8 years ago) |
---|
-
source/gui/COList.cpp
24 24 #include "soundmanager/ISoundManager.h" 25 25 26 26 COList::COList() 27 : CList(), m_HeadingHeight(30.f), m_Selected Def(-1), m_SelectedColumnOrder(0)27 : CList(), m_HeadingHeight(30.f), m_SelectedColumn(-1), m_SelectedColumnOrder(0) 28 28 { 29 29 AddSetting(GUIST_CGUISpriteInstance, "sprite_heading"); 30 30 AddSetting(GUIST_bool, "sortable"); // The actual sorting is done in JS for more versatility … … 90 90 *text = GetGUI()->GenerateText(gui_string, font, width, buffer_zone, this); 91 91 AddText(text); 92 92 93 if (m_Selected Def== (size_t)-1 && defaultColumn == m_ObjectsDefs[c].m_Id)94 m_Selected Def= c;93 if (m_SelectedColumn == (size_t)-1 && defaultColumn == m_ObjectsDefs[c].m_Id) 94 m_SelectedColumn = c; 95 95 } 96 96 97 if (m_Selected Def!= (size_t)-1)98 GUI<CStr>::SetSetting(this, "selected_column", m_ObjectsDefs[m_Selected Def].m_Id.substr(5));97 if (m_SelectedColumn != (size_t)-1) 98 GUI<CStr>::SetSetting(this, "selected_column", m_ObjectsDefs[m_SelectedColumn].m_Id.substr(5)); 99 99 100 100 if (m_SelectedColumnOrder == 0) 101 101 { … … 147 147 148 148 switch (Message.type) 149 149 { 150 case GUIM_SETTINGS_UPDATED: 151 { 152 if (Message.value == "selected_column_order") 153 GUI<int>::GetSetting(this, "selected_column_order", m_SelectedColumnOrder); 154 if (Message.value == "selected_column") 155 { 156 CStr selectedColumn; 157 GUI<CStr>::GetSetting(this, "selected_column", selectedColumn); 158 for (size_t c = 0; c < m_ObjectsDefs.size(); ++c) 159 { 160 if (m_ObjectsDefs[c].m_Id.substr(5) == selectedColumn) 161 m_SelectedColumn = c; 162 } 163 } 164 return; 165 } 150 166 // If somebody clicks on the column heading 151 167 case GUIM_MOUSE_PRESS_LEFT: 152 168 { … … 171 187 mouse.x < leftTopCorner.x + width && 172 188 mouse.y < leftTopCorner.y + m_HeadingHeight) 173 189 { 174 if (def != m_Selected Def)190 if (def != m_SelectedColumn) 175 191 { 176 192 m_SelectedColumnOrder = 1; 177 m_Selected Def= def;193 m_SelectedColumn = def; 178 194 } 179 195 else 180 196 m_SelectedColumnOrder = -m_SelectedColumnOrder; … … 391 407 392 408 CGUISpriteInstance* sprite; 393 409 // If the list sorted by current column 394 if (m_Selected Def== def)410 if (m_SelectedColumn == def) 395 411 sprite = sprite_order; 396 412 else 397 413 sprite = sprite_not_sorted; -
source/gui/COList.h
68 68 /** 69 69 * Index of the selected column. 70 70 */ 71 size_t m_Selected Def;71 size_t m_SelectedColumn; 72 72 73 73 /** 74 74 * +1 for ascending, -1 for descending sort order.