42 virtual SDL_Rect item_size(
const std::string&
item)
const;
43 virtual void draw_row_bg(
menu& menu_ref,
const std::size_t row_index,
const SDL_Rect& rect,
ROW_TYPE type);
44 virtual void draw_row(
menu& menu_ref,
const std::size_t row_index,
const SDL_Rect& rect,
ROW_TYPE type);
45 void scale_images(
int max_width,
int max_height);
47 std::size_t get_font_size()
const;
48 std::size_t get_cell_padding()
const;
49 std::size_t get_thickness()
const;
66 int normal_rgb,
int selected_rgb,
int heading_rgb,
67 double normal_alpha,
double selected_alpha,
double heading_alpha);
70 virtual SDL_Rect item_size(
const std::string&
item)
const;
71 virtual void draw_row_bg(
menu& menu_ref,
const std::size_t row_index,
const SDL_Rect& rect,
ROW_TYPE type);
72 virtual void draw_row(
menu& menu_ref,
const std::size_t row_index,
const SDL_Rect& rect,
ROW_TYPE type);
74 virtual void init() { load_images(); }
82 bool load_image(
const std::string &img_sub);
110 item(
const std::vector<std::string>& fields, std::size_t
id)
111 : fields(fields),
help(), id(id)
123 virtual bool column_sortable(
int column)
const = 0;
124 virtual bool less(
int column,
const item& row1,
const item& row2)
const = 0;
137 basic_sorter& set_position_sort(
int column,
const std::vector<int>& pos);
139 virtual bool column_sortable(
int column)
const;
140 virtual bool less(
int column,
const item& row1,
const item& row2)
const;
149 bool click_selects=
false,
int max_height=-1,
int max_width=-1,
150 const sorter* sorter_obj=
nullptr,
style *menu_style=
nullptr,
const bool auto_join=
true);
155 int selection()
const;
157 void move_selection(std::size_t
id);
158 void move_selection_keeping_viewport(std::size_t
id);
159 void reset_selection();
162 void change_item(
int pos1,
int pos2,
const std::string& str);
164 virtual void erase_item(std::size_t
index);
166 void set_heading(
const std::vector<std::string>& heading);
174 virtual void set_items(
const std::vector<std::string>&
items,
bool strip_spaces=
true,
175 bool keep_viewport=
false);
182 void set_max_height(
const int new_max_height);
183 void set_max_width(
const int new_max_width);
192 bool double_clicked();
194 void set_click_selects(
bool value);
195 void set_numeric_keypress_selection(
bool value);
197 void scroll(
unsigned int pos);
202 void sort_by(
int column);
207 bool item_ends_with_image(
const std::string&
item)
const;
208 virtual void handle_event(
const SDL_Event& event);
209 void set_inner_location(
const SDL_Rect& rect);
211 bool requires_event_focus(
const SDL_Event *event=
nullptr)
const;
212 const std::vector<int>& column_widths()
const;
213 virtual void draw_row(
const std::size_t row_index,
const SDL_Rect& rect,
ROW_TYPE type);
218 int hit(
int x,
int y)
const;
220 std::pair<int,int> hit_cell(
int x,
int y)
const;
221 int hit_column(
int x)
const;
223 int hit_heading(
int x,
int y)
const;
225 void invalidate_row(std::size_t
id);
226 void invalidate_row_pos(std::size_t pos);
227 void invalidate_heading();
230 std::size_t max_items_onscreen()
const;
232 std::size_t heading_height()
const;
237 void adjust_viewport_to_selection();
238 void key_press(SDL_Keycode key);
246 void create_help_strings();
247 void process_help_string(
int mousex,
int mousey);
264 void column_widths_item(
const std::vector<std::string>& row, std::vector<int>& widths)
const;
266 void clear_item(
int item);
267 void draw_contents();
272 SDL_Rect get_item_rect(
int item)
const;
273 SDL_Rect get_item_rect_internal(std::size_t pos)
const;
274 std::size_t get_item_height_internal(
const std::vector<std::string>& item)
const;
275 std::size_t get_item_height(
int item)
const;
276 int items_start()
const;
278 int items_end()
const;
279 int items_height()
const;
281 void update_scrollbar_grip_height();
306 void fill_items(
const std::vector<std::string>&
items,
bool strip_spaces);
309 void recalculate_pos();
314 void set_selection_pos(std::size_t pos,
bool silent=
false,
SELECTION_MOVE_VIEWPORT move_viewport=MOVE_VIEWPORT);
315 void move_selection_to(std::size_t
id,
bool silent=
false,
SELECTION_MOVE_VIEWPORT move_viewport=MOVE_VIEWPORT);
316 void move_selection_up(std::size_t dep);
317 void move_selection_down(std::size_t dep);
const std::vector< std::string > items
Generic locator abstracting the location of an image.
std::string id
Text to match against addon_info.tags()
static map_location::DIRECTION s
std::size_t index(const std::string &str, const std::size_t index)
Codepoint index corresponding to the nth character in a UTF-8 string.
Functions to load and save images from/to disk.