Merge pull request #251 from x-qq/fix_scrollbar_segfaults

fix for scrollbar segfaults

* fixes #206
* fixes broken mousewheel scrolling of the scenedit palette
* removed boost threads dependency
* added foundation for further refactoring of the drawing and event handling code: interfaces and drawable manager with layering
* removed a bunch of unneeded redraw calls
* removed some repeated recalculation of effectively constant values (boe.actions)
* removed recalculation of effectively constant scrollbar and button positions (boe.graphics)

Closes #251
This commit is contained in:
2020-02-09 15:55:51 -05:00
parent f141149287
commit deac7b0cb6
27 changed files with 444 additions and 219 deletions

View File

@@ -10,14 +10,16 @@
#include "boe.consts.hpp"
#include "spell.hpp"
#include "skills_traits.hpp"
#include "event_listener.hpp"
#include "drawable.hpp"
class OpenBoEMenu {
class OpenBoEMenu : public iEventListener, public iDrawable {
public:
OpenBoEMenu(sf::RenderWindow&, cUniverse&);
bool handle_event(const sf::Event&);
void draw();
virtual bool handle_event(const sf::Event&) override;
virtual void draw() override;
void update_for_game_state(eGameMode overall_mode, bool party_in_memory);
void update_spell_menus();
void update_monsters_menu();
@@ -27,7 +29,6 @@ private:
using MenuHierarchy = std::vector<sf::String>;
tgui::Gui tgui;
sf::RenderWindow& mainPtr;
cUniverse& univ;
const sf::String internal_menubar_widget_name { "openboe-menu" };
std::vector<unsigned int> spell_menus_connection_ids;