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

@@ -1,16 +1,26 @@
#include "scen.global.hpp"
#include "scen.menus.hpp"
#include <SFML/Graphics/RenderWindow.hpp>
#include <memory>
#include <unordered_map>
#include <string>
#include "scen.menu.hpp"
#include "undo.hpp"
#include "event_listener.hpp"
#include "drawable_manager.hpp"
extern sf::RenderWindow mainPtr;
extern cUndoList undo_list;
extern std::unordered_map <std::string, std::shared_ptr <iEventListener>> event_listeners;
extern cDrawableManager drawable_mgr;
std::shared_ptr <OpenBoESceneditMenu> menu_ptr;
void init_menubar() {
menu_ptr.reset(new OpenBoESceneditMenu(mainPtr));
event_listeners["menubar"] = std::dynamic_pointer_cast <iEventListener> (menu_ptr);
drawable_mgr.add_drawable(UI_LAYER_MENUBAR, "menubar", menu_ptr);
}
void shut_down_menus(short mode) {
@@ -21,13 +31,5 @@ void update_edit_menu() {
menu_ptr->update_edit_menu(undo_list);
}
bool menuBarProcessEvent(const sf::Event& event) {
return menu_ptr->handle_event(event);
}
void drawMenuBar() {
menu_ptr->draw();
}
void set_up_apple_events(int argc, char* argv[]) {
}