[Scummvm-git-logs] scummvm master -> 05a58e2fae4fc6e53a507639c655d5756b473a1d

bluegr noreply at scummvm.org
Sat Nov 15 14:27:11 UTC 2025


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
05a58e2fae NUVIE: Remove dependency on Shared::EventsManager


Commit: 05a58e2fae4fc6e53a507639c655d5756b473a1d
    https://github.com/scummvm/scummvm/commit/05a58e2fae4fc6e53a507639c655d5756b473a1d
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2025-11-15T16:27:07+02:00

Commit Message:
NUVIE: Remove dependency on Shared::EventsManager

Changed paths:
    engines/ultima/module.mk
    engines/ultima/nuvie/core/events.cpp
    engines/ultima/nuvie/core/events.h
    engines/ultima/nuvie/core/nuvie_defs.h
    engines/ultima/nuvie/gui/gui.cpp
    engines/ultima/nuvie/gui/gui_button.cpp
    engines/ultima/nuvie/gui/gui_button.h
    engines/ultima/nuvie/gui/gui_console.cpp
    engines/ultima/nuvie/gui/gui_console.h
    engines/ultima/nuvie/gui/gui_dialog.cpp
    engines/ultima/nuvie/gui/gui_dialog.h
    engines/ultima/nuvie/gui/gui_scroll_bar.cpp
    engines/ultima/nuvie/gui/gui_scroll_bar.h
    engines/ultima/nuvie/gui/gui_scroller.cpp
    engines/ultima/nuvie/gui/gui_scroller.h
    engines/ultima/nuvie/gui/gui_text_input.cpp
    engines/ultima/nuvie/gui/gui_text_input.h
    engines/ultima/nuvie/gui/gui_text_toggle_button.cpp
    engines/ultima/nuvie/gui/gui_text_toggle_button.h
    engines/ultima/nuvie/gui/widgets/command_bar.cpp
    engines/ultima/nuvie/gui/widgets/command_bar.h
    engines/ultima/nuvie/gui/widgets/command_bar_new_ui.cpp
    engines/ultima/nuvie/gui/widgets/command_bar_new_ui.h
    engines/ultima/nuvie/gui/widgets/converse_gump.cpp
    engines/ultima/nuvie/gui/widgets/converse_gump.h
    engines/ultima/nuvie/gui/widgets/converse_gump_wou.h
    engines/ultima/nuvie/gui/widgets/gui_widget.cpp
    engines/ultima/nuvie/gui/widgets/gui_widget.h
    engines/ultima/nuvie/gui/widgets/map_window.cpp
    engines/ultima/nuvie/gui/widgets/map_window.h
    engines/ultima/nuvie/gui/widgets/msg_scroll.cpp
    engines/ultima/nuvie/gui/widgets/msg_scroll.h
    engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.cpp
    engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.h
    engines/ultima/nuvie/nuvie.cpp
    engines/ultima/nuvie/nuvie.h
    engines/ultima/nuvie/views/actor_view.cpp
    engines/ultima/nuvie/views/actor_view.h
    engines/ultima/nuvie/views/container_view_gump.cpp
    engines/ultima/nuvie/views/container_view_gump.h
    engines/ultima/nuvie/views/container_widget.cpp
    engines/ultima/nuvie/views/container_widget.h
    engines/ultima/nuvie/views/doll_view_gump.cpp
    engines/ultima/nuvie/views/doll_view_gump.h
    engines/ultima/nuvie/views/doll_widget.cpp
    engines/ultima/nuvie/views/doll_widget.h
    engines/ultima/nuvie/views/draggable_view.cpp
    engines/ultima/nuvie/views/draggable_view.h
    engines/ultima/nuvie/views/inventory_view.cpp
    engines/ultima/nuvie/views/inventory_view.h
    engines/ultima/nuvie/views/inventory_widget.cpp
    engines/ultima/nuvie/views/inventory_widget.h
    engines/ultima/nuvie/views/map_editor_view.cpp
    engines/ultima/nuvie/views/map_editor_view.h
    engines/ultima/nuvie/views/party_view.cpp
    engines/ultima/nuvie/views/party_view.h
    engines/ultima/nuvie/views/portrait_view_gump.cpp
    engines/ultima/nuvie/views/portrait_view_gump.h
    engines/ultima/nuvie/views/scroll_view_gump.cpp
    engines/ultima/nuvie/views/scroll_view_gump.h
    engines/ultima/nuvie/views/scroll_widget_gump.cpp
    engines/ultima/nuvie/views/scroll_widget_gump.h
    engines/ultima/nuvie/views/sign_view_gump.cpp
    engines/ultima/nuvie/views/sign_view_gump.h
    engines/ultima/nuvie/views/spell_view.cpp
    engines/ultima/nuvie/views/spell_view.h
    engines/ultima/nuvie/views/spell_view_gump.cpp
    engines/ultima/nuvie/views/spell_view_gump.h
    engines/ultima/nuvie/views/sun_moon_ribbon.cpp
    engines/ultima/nuvie/views/sun_moon_ribbon.h


diff --git a/engines/ultima/module.mk b/engines/ultima/module.mk
index 7badeb2e647..bd979093b3b 100644
--- a/engines/ultima/module.mk
+++ b/engines/ultima/module.mk
@@ -4,8 +4,7 @@ MODULE_OBJS := \
 	metaengine.o \
 	shared/conf/xml_node.o \
 	shared/conf/xml_tree.o \
-	shared/engine/data_archive.o \
-	shared/engine/events.o
+	shared/engine/data_archive.o
 
 ifdef ENABLE_ULTIMA1
 MODULE_OBJS += \
@@ -29,6 +28,7 @@ MODULE_OBJS += \
 	shared/early/game.o \
 	shared/early/game_base.o \
 	shared/early/ultima_early.o \
+	shared/engine/events.o \
 	shared/engine/input_handler.o \
 	shared/engine/input_translator.o \
 	shared/engine/messages.o \
diff --git a/engines/ultima/nuvie/core/events.cpp b/engines/ultima/nuvie/core/events.cpp
index 944fb98e26b..093e4ffd688 100644
--- a/engines/ultima/nuvie/core/events.cpp
+++ b/engines/ultima/nuvie/core/events.cpp
@@ -75,8 +75,8 @@ void EventInput_s::set_loc(const MapCoord &c) {
 	loc = new MapCoord(c);
 }
 
-Events::Events(Shared::EventsCallback *callback, const Configuration *cfg)
-		: Shared::EventsManager(callback), config(cfg), converse(nullptr),
+Events::Events(const Configuration *cfg)
+		: config(cfg), converse(nullptr),
 		  keybinder(nullptr), showingQuitDialog(false), fps_counter_widget(nullptr),
 		  cursor_mode(false){
 	g_events = this;
@@ -212,6 +212,46 @@ bool Events::update() {
 	return true;
 }
 
+Events::MouseButton Events::whichButton(Common::EventType type) {
+	if (type == Common::EVENT_LBUTTONDOWN || type == Common::EVENT_LBUTTONUP)
+		return BUTTON_LEFT;
+	else if (type == Common::EVENT_RBUTTONDOWN || type == Common::EVENT_RBUTTONUP)
+		return BUTTON_RIGHT;
+	else if (type == Common::EVENT_MBUTTONDOWN || type == Common::EVENT_MBUTTONUP)
+		return BUTTON_MIDDLE;
+	else
+		return BUTTON_NONE;
+}
+
+bool Events::pollEvent(Common::Event &evt) {
+	// Event handling
+	if (g_system->getEventManager()->pollEvent(evt)) {
+		switch (evt.type) {
+		case Common::EVENT_MOUSEMOVE:
+			_mousePos = evt.mouse;
+			break;
+		case Common::EVENT_LBUTTONDOWN:
+		case Common::EVENT_MBUTTONDOWN:
+		case Common::EVENT_RBUTTONDOWN:
+			_buttonsDown |= BUTTON_MASK(whichButton(evt.type));
+			_mousePos = evt.mouse;
+			break;
+		case Common::EVENT_LBUTTONUP:
+		case Common::EVENT_MBUTTONUP:
+		case Common::EVENT_RBUTTONUP:
+			_buttonsDown &= ~BUTTON_MASK(whichButton(evt.type));
+			_mousePos = evt.mouse;
+			break;
+		default:
+			break;
+		}
+
+		return true;
+	}
+
+	return false;
+}
+
 bool Events::handleSDL_KEYDOWN(const Common::Event *event_) {
 	// when casting the magic class will handle keyboard events
 	if (mode == KEYINPUT_MODE) {
diff --git a/engines/ultima/nuvie/core/events.h b/engines/ultima/nuvie/core/events.h
index 69c5022b75e..a7df2442fcd 100644
--- a/engines/ultima/nuvie/core/events.h
+++ b/engines/ultima/nuvie/core/events.h
@@ -22,7 +22,6 @@
 #ifndef NUVIE_CORE_EVENT_H
 #define NUVIE_CORE_EVENT_H
 
-#include "ultima/shared/engine/events.h"
 #include "ultima/shared/std/containers.h"
 #include "ultima/shared/std/string.h"
 #include "ultima/nuvie/misc/call_back.h"
@@ -56,6 +55,8 @@ class ScriptThread;
 #define PUSH_FROM_PLAYER false
 #define PUSH_FROM_OBJECT true
 
+#define BUTTON_MASK(MB) (1 << ((int)(MB) - 1))
+
 enum EventMode {
 	LOOK_MODE = 0,
 	USE_MODE,
@@ -180,7 +181,7 @@ struct EventInput_s {
 };
 typedef struct EventInput_s EventInput;
 
-class Events : public Ultima::Shared::EventsManager, public CallBack {
+class Events : public CallBack {
 	friend class Magic; // FIXME
 private:
 	const Configuration *config;
@@ -232,6 +233,9 @@ private:
 	FpsCounter *fps_counter_widget;
 	ScriptThread *scriptThread;
 
+	Common::Point _mousePos;
+	uint8 _buttonsDown;
+
 	static Events *g_events;
 protected:
 	inline uint32 TimeLeft();
@@ -242,7 +246,15 @@ protected:
 	void try_next_attack();
 
 public:
-	Events(Shared::EventsCallback *callback, const Configuration *cfg);
+	enum MouseButton {
+		BUTTON_NONE = 0,
+		BUTTON_LEFT = 1,
+		BUTTON_RIGHT = 2,
+		BUTTON_MIDDLE = 3,
+		MOUSE_LAST
+	};
+
+	Events(const Configuration *cfg);
 	~Events() override;
 
 	void clear();
@@ -272,10 +284,27 @@ public:
 	void set_direction_selects_target(bool val) {
 		direction_selects_target = val;
 	}
+
+	/**
+	 * Return the mouse position
+	 */
+	Common::Point getMousePos() const {
+		return _mousePos;
+	}
+
+	/**
+	 * Returns the mouse buttons states
+	 */
+	byte getButtonState() const {
+		return _buttonsDown;
+	}
+
 	bool using_pickpocket_cheat;
 	bool cursor_mode;
 	void update_timers();
 	bool update();
+	static MouseButton whichButton(Common::EventType type);
+	bool pollEvent(Common::Event &event);
 	bool handleEvent(const Common::Event *event);
 	void request_input(CallBack *caller, void *user_data = nullptr);
 	void target_spell();
diff --git a/engines/ultima/nuvie/core/nuvie_defs.h b/engines/ultima/nuvie/core/nuvie_defs.h
index 17a132e694f..cfbac6b638f 100644
--- a/engines/ultima/nuvie/core/nuvie_defs.h
+++ b/engines/ultima/nuvie/core/nuvie_defs.h
@@ -32,10 +32,10 @@ typedef int8 sint8;
 typedef int16 sint16;
 typedef int32 sint32;
 
-#define USE_BUTTON Shared::BUTTON_LEFT
-#define WALK_BUTTON Shared::BUTTON_RIGHT
-#define ACTION_BUTTON Shared::BUTTON_RIGHT
-#define DRAG_BUTTON Shared::BUTTON_LEFT
+#define USE_BUTTON Events::BUTTON_LEFT
+#define WALK_BUTTON Events::BUTTON_RIGHT
+#define ACTION_BUTTON Events::BUTTON_RIGHT
+#define DRAG_BUTTON Events::BUTTON_LEFT
 
 typedef uint8 nuvie_game_t; // Game type (1=u6,2=md,4=se)
 
diff --git a/engines/ultima/nuvie/gui/gui.cpp b/engines/ultima/nuvie/gui/gui.cpp
index 952a873e8c5..57bc9ba80e7 100644
--- a/engines/ultima/nuvie/gui/gui.cpp
+++ b/engines/ultima/nuvie/gui/gui.cpp
@@ -220,7 +220,9 @@ GUI_status GUI::HandleEvent(Common::Event *event) {
 	GUI_status status = GUI_PASS;
 
 	if (dragging) { //&& !block_input)
-		if (Shared::isMouseUpEvent(event->type)) { //FIX for button up that doesn't hit a widget.
+		if (event->type == Common::EVENT_LBUTTONUP ||
+				event->type == Common::EVENT_MBUTTONUP ||
+				event->type == Common::EVENT_RBUTTONUP) { //FIX for button up that doesn't hit a widget.
 			for (hit = false, i = numwidgets - 1; (i >= 0) && (hit == false); --i) {
 				if (widgets[i]->Status() == WIDGET_VISIBLE && widgets[i]->is_drop_target() && widgets[i]->HitRect(event->mouse.x, event->mouse.y)) {
 					gui_drag_manager->drop((GUI_DragArea *)widgets[i], event->mouse.x, event->mouse.y);
diff --git a/engines/ultima/nuvie/gui/gui_button.cpp b/engines/ultima/nuvie/gui/gui_button.cpp
index 01019dfb4fc..601a55f2c07 100644
--- a/engines/ultima/nuvie/gui/gui_button.cpp
+++ b/engines/ultima/nuvie/gui/gui_button.cpp
@@ -187,27 +187,27 @@ void GUI_Button:: Display(bool full_redraw) {
 }
 
 /* Mouse hits activate us */
-GUI_status GUI_Button:: MouseDown(int x, int y, Shared::MouseButton btn) {
+GUI_status GUI_Button:: MouseDown(int x, int y, Events::MouseButton btn) {
 //	if(btn == SDL_BUTTON_WHEELUP || btn == SDL_BUTTON_WHEELDOWN)
 //	  return GUI_PASS;
-	if (enabled && (btn == Shared::BUTTON_LEFT || btn == Shared::BUTTON_RIGHT)) {
+	if (enabled && (btn == Events::BUTTON_LEFT || btn == Events::BUTTON_RIGHT)) {
 		pressed[0] = 1;
 		Redraw();
 	}
 	return GUI_YUM;
 }
 
-GUI_status GUI_Button::MouseUp(int x, int y, Shared::MouseButton btn) {
+GUI_status GUI_Button::MouseUp(int x, int y, Events::MouseButton btn) {
 //	if (btn==SDL_BUTTON_WHEELUP || btn==SDL_BUTTON_WHEELDOWN)
 //		return GUI_PASS;
-	if ((btn == Shared::BUTTON_LEFT || btn == Shared::BUTTON_RIGHT) && (pressed[0])) {
+	if ((btn == Events::BUTTON_LEFT || btn == Events::BUTTON_RIGHT) && (pressed[0])) {
 		pressed[0] = 0;
 		return Activate_button(x, y, btn);
 	}
 	return GUI_YUM;
 }
 
-GUI_status GUI_Button::Activate_button(int x, int y, Shared::MouseButton btn) {
+GUI_status GUI_Button::Activate_button(int x, int y, Events::MouseButton btn) {
 	if (x >= 0 && y >= 0) {
 		if (callback_object && callback_object->callback(BUTTON_CB, this, widget_data) == GUI_QUIT)
 			return GUI_QUIT;
diff --git a/engines/ultima/nuvie/gui/gui_button.h b/engines/ultima/nuvie/gui/gui_button.h
index 6f0a5a1e491..4e08ab09e76 100644
--- a/engines/ultima/nuvie/gui/gui_button.h
+++ b/engines/ultima/nuvie/gui/gui_button.h
@@ -94,8 +94,8 @@ public:
 	void Display(bool full_redraw) override;
 
 	/* Mouse hits activate us */
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 
 	/* Clickable or not ... */
@@ -114,7 +114,7 @@ public:
 	virtual void set_highlighted(bool val) {
 		is_highlighted = val;
 	}
-	virtual GUI_status Activate_button(int x = 0, int y = 0, Shared::MouseButton button = Shared::BUTTON_LEFT);
+	virtual GUI_status Activate_button(int x = 0, int y = 0, Events::MouseButton button = Events::BUTTON_LEFT);
 
 protected:
 	/* yields an appropriate image */
diff --git a/engines/ultima/nuvie/gui/gui_console.cpp b/engines/ultima/nuvie/gui/gui_console.cpp
index c59af9ee8c1..819ee0300d8 100644
--- a/engines/ultima/nuvie/gui/gui_console.cpp
+++ b/engines/ultima/nuvie/gui/gui_console.cpp
@@ -81,7 +81,7 @@ void GUI_Console::AddLine(const Std::string &line) {
 		data.pop_front();
 }
 
-GUI_status GUI_Console::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Console::MouseDown(int x, int y, Events::MouseButton button) {
 
 
 //grab_focus();
@@ -89,7 +89,7 @@ GUI_status GUI_Console::MouseDown(int x, int y, Shared::MouseButton button) {
 	return GUI_YUM;
 }
 
-GUI_status GUI_Console::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Console::MouseUp(int x, int y, Events::MouseButton button) {
 
 // release_focus();
 
diff --git a/engines/ultima/nuvie/gui/gui_console.h b/engines/ultima/nuvie/gui/gui_console.h
index 8fbe1143952..24621cc8dab 100644
--- a/engines/ultima/nuvie/gui/gui_console.h
+++ b/engines/ultima/nuvie/gui/gui_console.h
@@ -51,8 +51,8 @@ public:
 	void Display(bool full_redraw) override;
 
 	/* events, used for dragging the area. */
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 
 	virtual void AddLine(const Std::string &line);
diff --git a/engines/ultima/nuvie/gui/gui_dialog.cpp b/engines/ultima/nuvie/gui/gui_dialog.cpp
index f6d7c54769d..34cf0b40b83 100644
--- a/engines/ultima/nuvie/gui/gui_dialog.cpp
+++ b/engines/ultima/nuvie/gui/gui_dialog.cpp
@@ -194,7 +194,7 @@ GUI_Dialog::Display(bool full_redraw) {
 	return;
 }
 
-GUI_status GUI_Dialog::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Dialog::MouseDown(int x, int y, Events::MouseButton button) {
 	drag = can_drag;
 	button_x = x;
 	button_y = y;
@@ -204,7 +204,7 @@ GUI_status GUI_Dialog::MouseDown(int x, int y, Shared::MouseButton button) {
 	return GUI_YUM;
 }
 
-GUI_status GUI_Dialog::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Dialog::MouseUp(int x, int y, Events::MouseButton button) {
 	drag = false;
 
 	release_focus();
diff --git a/engines/ultima/nuvie/gui/gui_dialog.h b/engines/ultima/nuvie/gui/gui_dialog.h
index b89f4159fc3..a33ce4d0252 100644
--- a/engines/ultima/nuvie/gui/gui_dialog.h
+++ b/engines/ultima/nuvie/gui/gui_dialog.h
@@ -57,8 +57,8 @@ public:
 	void Display(bool full_redraw) override;
 
 	/* events, used for dragging the area. */
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 	void MoveRelative(int dx, int dy) override;
 protected:
diff --git a/engines/ultima/nuvie/gui/gui_scroll_bar.cpp b/engines/ultima/nuvie/gui/gui_scroll_bar.cpp
index e121acf7046..c14640df2f0 100644
--- a/engines/ultima/nuvie/gui/gui_scroll_bar.cpp
+++ b/engines/ultima/nuvie/gui/gui_scroll_bar.cpp
@@ -227,7 +227,7 @@ GUI_status GUI_ScrollBar::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status GUI_ScrollBar::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_ScrollBar::MouseDown(int x, int y, Events::MouseButton button) {
 	if (y >= area.top + button_height + slider_y && y <= area.top + button_height + slider_y + slider_length) {
 		drag = true;
 		slider_click_offset = y - area.top - button_height - slider_y;
@@ -240,7 +240,7 @@ GUI_status GUI_ScrollBar::MouseDown(int x, int y, Shared::MouseButton button) {
 	return GUI_YUM;
 }
 
-GUI_status GUI_ScrollBar::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_ScrollBar::MouseUp(int x, int y, Events::MouseButton button) {
 	drag = false;
 
 	release_focus();
diff --git a/engines/ultima/nuvie/gui/gui_scroll_bar.h b/engines/ultima/nuvie/gui/gui_scroll_bar.h
index 6ceec9ed72d..ae1d583c676 100644
--- a/engines/ultima/nuvie/gui/gui_scroll_bar.h
+++ b/engines/ultima/nuvie/gui/gui_scroll_bar.h
@@ -78,8 +78,8 @@ public:
 	void Display(bool full_redraw) override;
 
 	/* events, used for dragging the area. */
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 
diff --git a/engines/ultima/nuvie/gui/gui_scroller.cpp b/engines/ultima/nuvie/gui/gui_scroller.cpp
index 619560414ff..eafc7864b96 100644
--- a/engines/ultima/nuvie/gui/gui_scroller.cpp
+++ b/engines/ultima/nuvie/gui/gui_scroller.cpp
@@ -107,13 +107,13 @@ void GUI_Scroller:: Display(bool full_redraw) {
 	return;
 }
 
-GUI_status GUI_Scroller::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Scroller::MouseDown(int x, int y, Events::MouseButton button) {
 //grab_focus();
 
 	return GUI_YUM;
 }
 
-GUI_status GUI_Scroller::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Scroller::MouseUp(int x, int y, Events::MouseButton button) {
 
 // release_focus();
 
diff --git a/engines/ultima/nuvie/gui/gui_scroller.h b/engines/ultima/nuvie/gui/gui_scroller.h
index 05dbe0fff9d..e50f755005b 100644
--- a/engines/ultima/nuvie/gui/gui_scroller.h
+++ b/engines/ultima/nuvie/gui/gui_scroller.h
@@ -60,8 +60,8 @@ public:
 	void Display(bool full_redraw) override;
 
 	/* events, used for dragging the area. */
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 
diff --git a/engines/ultima/nuvie/gui/gui_text_input.cpp b/engines/ultima/nuvie/gui/gui_text_input.cpp
index e821c2828af..0a35e38b106 100644
--- a/engines/ultima/nuvie/gui/gui_text_input.cpp
+++ b/engines/ultima/nuvie/gui/gui_text_input.cpp
@@ -55,7 +55,7 @@ void GUI_TextInput::release_focus() {
 // SDL_EnableUNICODE(0); //disable unicode.
 }
 
-GUI_status GUI_TextInput::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_TextInput::MouseUp(int x, int y, Events::MouseButton button) {
 // if(button == SDL_BUTTON_WHEELUP || button == SDL_BUTTON_WHEELDOWN)
 //   return GUI_PASS;
 //release focus if we click outside the text box.
diff --git a/engines/ultima/nuvie/gui/gui_text_input.h b/engines/ultima/nuvie/gui/gui_text_input.h
index c601115d781..c9172d5f635 100644
--- a/engines/ultima/nuvie/gui/gui_text_input.h
+++ b/engines/ultima/nuvie/gui/gui_text_input.h
@@ -51,7 +51,7 @@ public:
 
 	void release_focus() override;
 
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status KeyDown(const Common::KeyState &key) override;
 
 	void add_char(char c);
diff --git a/engines/ultima/nuvie/gui/gui_text_toggle_button.cpp b/engines/ultima/nuvie/gui/gui_text_toggle_button.cpp
index 738e9c166a0..650d37c9eca 100644
--- a/engines/ultima/nuvie/gui/gui_text_toggle_button.cpp
+++ b/engines/ultima/nuvie/gui/gui_text_toggle_button.cpp
@@ -51,7 +51,7 @@ GUI_TextToggleButton::~GUI_TextToggleButton() {
 	texts = 0;
 }
 
-GUI_status GUI_TextToggleButton::MouseUp(int x, int y, Shared::MouseButton button_) {
+GUI_status GUI_TextToggleButton::MouseUp(int x, int y, Events::MouseButton button_) {
 	if ((button_ == 1 || button_ == 3) && (pressed[0])) {
 		pressed[0] = 0;
 		return Activate_button(x, y, button_);
@@ -59,8 +59,8 @@ GUI_status GUI_TextToggleButton::MouseUp(int x, int y, Shared::MouseButton butto
 	return GUI_Button::MouseUp(x, y, button_);
 }
 
-GUI_status GUI_TextToggleButton::Activate_button(int x, int y, Shared::MouseButton button_) {
-	selection = (selection + (button_ == Shared::BUTTON_LEFT ? 1 : -1)) % count;
+GUI_status GUI_TextToggleButton::Activate_button(int x, int y, Events::MouseButton button_) {
+	selection = (selection + (button_ == Events::BUTTON_LEFT ? 1 : -1)) % count;
 	if (selection < 0)
 		selection = count - 1;
 
diff --git a/engines/ultima/nuvie/gui/gui_text_toggle_button.h b/engines/ultima/nuvie/gui/gui_text_toggle_button.h
index 3285e4628cc..5660c7211b5 100644
--- a/engines/ultima/nuvie/gui/gui_text_toggle_button.h
+++ b/engines/ultima/nuvie/gui/gui_text_toggle_button.h
@@ -46,8 +46,8 @@ public:
 
 	virtual int GetSelection() const;
 
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
-	GUI_status Activate_button(int x = 0, int y = 0, Shared::MouseButton button = Shared::BUTTON_LEFT) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
+	GUI_status Activate_button(int x = 0, int y = 0, Events::MouseButton button = Events::BUTTON_LEFT) override;
 
 protected:
 	int selection;
diff --git a/engines/ultima/nuvie/gui/widgets/command_bar.cpp b/engines/ultima/nuvie/gui/widgets/command_bar.cpp
index cd4747d8c89..f18545f1cd6 100644
--- a/engines/ultima/nuvie/gui/widgets/command_bar.cpp
+++ b/engines/ultima/nuvie/gui/widgets/command_bar.cpp
@@ -267,7 +267,7 @@ void CommandBar::select_action(sint8 activate) {
 		set_selected_action(activate);
 }
 
-GUI_status CommandBar::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status CommandBar::MouseDown(int x, int y, Events::MouseButton button) {
 	x -= area.left;
 	y -= area.top;
 
diff --git a/engines/ultima/nuvie/gui/widgets/command_bar.h b/engines/ultima/nuvie/gui/widgets/command_bar.h
index 2d76e561195..55004598ba0 100644
--- a/engines/ultima/nuvie/gui/widgets/command_bar.h
+++ b/engines/ultima/nuvie/gui/widgets/command_bar.h
@@ -76,7 +76,7 @@ public:
 	virtual bool init_buttons();
 
 	void Display(bool full_redraw) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 	void update() {
 		update_display = true;
 	}
diff --git a/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.cpp b/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.cpp
index 431d18ffb34..3c8117bbb03 100644
--- a/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.cpp
+++ b/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.cpp
@@ -136,7 +136,7 @@ CommandBarNewUI::~CommandBarNewUI() {
 
 
 
-GUI_status CommandBarNewUI::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status CommandBarNewUI::MouseDown(int x, int y, Events::MouseButton button) {
 	if (HitRect(x, y)) {
 		x -= area.left;
 		y -= area.right;
@@ -157,7 +157,7 @@ GUI_status CommandBarNewUI::MouseDown(int x, int y, Shared::MouseButton button)
 	return GUI_YUM;
 }
 
-GUI_status CommandBarNewUI::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status CommandBarNewUI::MouseUp(int x, int y, Events::MouseButton button) {
 	/*
 	    if(HitRect(x, y))
 	    {
diff --git a/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.h b/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.h
index 7d87eb9ff79..26ba7203ca2 100644
--- a/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.h
+++ b/engines/ultima/nuvie/gui/widgets/command_bar_new_ui.h
@@ -53,8 +53,8 @@ public:
 
 	void Display(bool full_redraw) override;
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 
 private:
 	const char *get_command_name(sint8 command_num) const;
diff --git a/engines/ultima/nuvie/gui/widgets/converse_gump.cpp b/engines/ultima/nuvie/gui/widgets/converse_gump.cpp
index a8a239757ab..bf9ca383c84 100644
--- a/engines/ultima/nuvie/gui/widgets/converse_gump.cpp
+++ b/engines/ultima/nuvie/gui/widgets/converse_gump.cpp
@@ -694,7 +694,7 @@ GUI_status ConverseGump::KeyDown(const Common::KeyState &keyState) {
 	return GUI_YUM;
 }
 
-GUI_status ConverseGump::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status ConverseGump::MouseUp(int x, int y, Events::MouseButton button) {
 	Std::string token_str;
 
 	if (page_break || !is_talking()) { // any click == scroll-to-end
diff --git a/engines/ultima/nuvie/gui/widgets/converse_gump.h b/engines/ultima/nuvie/gui/widgets/converse_gump.h
index aa6ac39cd30..04176017cf5 100644
--- a/engines/ultima/nuvie/gui/widgets/converse_gump.h
+++ b/engines/ultima/nuvie/gui/widgets/converse_gump.h
@@ -82,9 +82,9 @@ public:
 	void Display(bool full_redraw) override;
 
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 	GUI_status MouseMotion(int x, int y, uint8 state) override {
@@ -96,16 +96,16 @@ public:
 	GUI_status MouseLeave(uint8 state) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseHeld(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseHeld(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 
diff --git a/engines/ultima/nuvie/gui/widgets/converse_gump_wou.h b/engines/ultima/nuvie/gui/widgets/converse_gump_wou.h
index 4286b3df385..27d0eac746f 100644
--- a/engines/ultima/nuvie/gui/widgets/converse_gump_wou.h
+++ b/engines/ultima/nuvie/gui/widgets/converse_gump_wou.h
@@ -59,11 +59,11 @@ public:
 
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 	GUI_status MouseMotion(int x, int y, uint8 state) override {
@@ -75,16 +75,16 @@ public:
 	GUI_status MouseLeave(uint8 state) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseHeld(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseHeld(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 
diff --git a/engines/ultima/nuvie/gui/widgets/gui_widget.cpp b/engines/ultima/nuvie/gui/widgets/gui_widget.cpp
index 9d10a4585cf..bd9d31d2413 100644
--- a/engines/ultima/nuvie/gui/widgets/gui_widget.cpp
+++ b/engines/ultima/nuvie/gui/widgets/gui_widget.cpp
@@ -63,8 +63,8 @@ void GUI_Widget::Init(void *data, int x, int y, int w, int h) {
 
 	update_display = true;
 	set_accept_mouseclick(false); // initializes mouseclick time; SB-X
-	delayed_button = Shared::BUTTON_NONE; // optional mouseclick-delay; SB-X
-	held_button = Shared::BUTTON_NONE; // optional mousedown-delay; SB-X
+	delayed_button = Events::BUTTON_NONE; // optional mouseclick-delay; SB-X
+	held_button = Events::BUTTON_NONE; // optional mousedown-delay; SB-X
 	mouse_moved = false;
 
 	int mx = 0, my = 0;
@@ -302,11 +302,11 @@ GUI_status GUI_Widget::KeyUp(Common::KeyState key) {
 	return GUI_PASS;
 }
 
-GUI_status GUI_Widget::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Widget::MouseDown(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
-GUI_status GUI_Widget::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Widget::MouseUp(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
@@ -353,10 +353,10 @@ GUI_status GUI_Widget::HandleEvent(const Common::Event *event) {
 	case Common::EVENT_RBUTTONDOWN:
 	case Common::EVENT_MBUTTONDOWN: {
 		int x, y;
-		Shared::MouseButton button;
+		Events::MouseButton button;
 		x = event->mouse.x;
 		y = event->mouse.y;
-		button = Shared::whichButton(event->type);
+		button = Events::whichButton(event->type);
 		if (focused || HitRect(x, y)) {
 			set_mousedown(SDL_GetTicks(), button);
 			return(MouseDown(x, y, button));
@@ -367,10 +367,10 @@ GUI_status GUI_Widget::HandleEvent(const Common::Event *event) {
 	case Common::EVENT_RBUTTONUP:
 	case Common::EVENT_MBUTTONUP: {
 		int x, y;
-		Shared::MouseButton button;
+		Events::MouseButton button;
 		x = event->mouse.x;
 		y = event->mouse.y;
-		button = Shared::whichButton(event->type);
+		button = Events::whichButton(event->type);
 		if (focused || HitRect(x, y))  {
 			int rel_time = SDL_GetTicks();
 			int last_rel_time = get_mouseup(button);
@@ -463,13 +463,13 @@ void GUI_Widget::drag_perform_drop(int x, int y, int message, void *data) {
 
 /* Mouse button was pressed and released over the widget.
  */
-GUI_status GUI_Widget::MouseClick(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Widget::MouseClick(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
 /* Mouse button was clicked twice over the widget, within a certain time period.
  */
-GUI_status GUI_Widget::MouseDouble(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Widget::MouseDouble(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
@@ -543,18 +543,18 @@ GUI_status GUI_Widget::try_mouse_delayed() {
 	int time_to_click = SDL_GetTicks() - mouseup_time;
 
 	if (mousedown_time != 0 && time_to_hold >= GUI::mouseclick_delay) {
-		Shared::MouseButton button = held_button;
+		Events::MouseButton button = held_button;
 		int x, y; // position isn't saved anywhere so we get it here
 		screen->get_mouse_location(&x, &y); // hopefully it hasn't changed since MouseDown
-		held_button = Shared::BUTTON_NONE; // no need to clear mousedown time, MouseUp does that
+		held_button = Events::BUTTON_NONE; // no need to clear mousedown time, MouseUp does that
 		return (MouseHeld(x, y, button));
 	}
 
 	if (mouseup_time != 0 && time_to_click >= GUI::mouseclick_delay) {
-		Shared::MouseButton button = delayed_button;
+		Events::MouseButton button = delayed_button;
 		int x, y; // position isn't saved anywhere so we get it here
 		screen->get_mouse_location(&x, &y); // hopefully it hasn't changed since MouseClick/MouseUp
-		delayed_button = Shared::BUTTON_NONE;
+		delayed_button = Events::BUTTON_NONE;
 		// before a Double or Delayed click, mouseup time is reset
 		set_mouseup(0, button);
 		return (MouseDelayed(x, y, button));
@@ -564,13 +564,13 @@ GUI_status GUI_Widget::try_mouse_delayed() {
 
 // like a MouseClick but called only after waiting for MouseDouble, if
 // wait_for_mouseclick(button) was called
-GUI_status GUI_Widget::MouseDelayed(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Widget::MouseDelayed(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
 // like a MouseDown but called only after waiting for MouseUp, if
 // wait_for_mousedown(button) was called
-GUI_status GUI_Widget::MouseHeld(int x, int y, Shared::MouseButton button) {
+GUI_status GUI_Widget::MouseHeld(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
diff --git a/engines/ultima/nuvie/gui/widgets/gui_widget.h b/engines/ultima/nuvie/gui/widgets/gui_widget.h
index 703071fc1d8..abdbf8b830f 100644
--- a/engines/ultima/nuvie/gui/widgets/gui_widget.h
+++ b/engines/ultima/nuvie/gui/widgets/gui_widget.h
@@ -72,8 +72,8 @@ protected:
 	unsigned int mouseup[3]; /* for 3 buttons */
 	unsigned int mousedown[3]; /* waiting for MouseUp */
 	bool accept_mouseclick[3]; /* which buttons can be [double]clicked */
-	Shared::MouseButton delayed_button; /* a MouseClick can be delayed on one button; 0=none */
-	Shared::MouseButton held_button; /* a MouseDown can be delayed on one button; 0=none */
+	Events::MouseButton delayed_button; /* a MouseClick can be delayed on one button; 0=none */
+	Events::MouseButton held_button; /* a MouseDown can be delayed on one button; 0=none */
 	bool mouse_moved; /* true if mouse moves while button is pressed */
 
 	bool mouse_over; // initialized here; toggled by GUI
@@ -170,17 +170,17 @@ public:
 	*/
 	virtual GUI_status KeyDown(const Common::KeyState &key);
 	virtual GUI_status KeyUp(Common::KeyState key);
-	virtual GUI_status MouseDown(int x, int y, Shared::MouseButton button);
-	virtual GUI_status MouseUp(int x, int y, Shared::MouseButton button);
+	virtual GUI_status MouseDown(int x, int y, Events::MouseButton button);
+	virtual GUI_status MouseUp(int x, int y, Events::MouseButton button);
 	virtual GUI_status MouseMotion(int x, int y, uint8 state);
 	virtual GUI_status MouseWheel(sint32 x, sint32 y);
 	// <SB-X>
 	virtual GUI_status MouseEnter(uint8 state);
 	virtual GUI_status MouseLeave(uint8 state);
-	virtual GUI_status MouseClick(int x, int y, Shared::MouseButton button);
-	virtual GUI_status MouseDouble(int x, int y, Shared::MouseButton button);
-	virtual GUI_status MouseDelayed(int x, int y, Shared::MouseButton button);
-	virtual GUI_status MouseHeld(int x, int y, Shared::MouseButton button);
+	virtual GUI_status MouseClick(int x, int y, Events::MouseButton button);
+	virtual GUI_status MouseDouble(int x, int y, Events::MouseButton button);
+	virtual GUI_status MouseDelayed(int x, int y, Events::MouseButton button);
+	virtual GUI_status MouseHeld(int x, int y, Events::MouseButton button);
 	// </SB-X>
 
 	bool drag_accept_drop(int x, int y, int message, void *data) override;
@@ -235,12 +235,12 @@ protected:
 		else return 0;
 	}
 	void wait_for_mouseclick(int button) {
-		if (button >= Shared::BUTTON_NONE && button < Shared::BUTTON_MIDDLE)
-			delayed_button = (Shared::MouseButton)button;
+		if (button >= Events::BUTTON_NONE && button < Events::BUTTON_MIDDLE)
+			delayed_button = (Events::MouseButton)button;
 	}
 	void wait_for_mousedown(int button) {
-		if (button >= Shared::BUTTON_NONE && button <= Shared::BUTTON_MIDDLE)
-			held_button = (Shared::MouseButton)button;
+		if (button >= Events::BUTTON_NONE && button <= Events::BUTTON_MIDDLE)
+			held_button = (Events::MouseButton)button;
 	}
 	virtual GUI_status try_mouse_delayed();
 };
diff --git a/engines/ultima/nuvie/gui/widgets/map_window.cpp b/engines/ultima/nuvie/gui/widgets/map_window.cpp
index 52ccf424d91..e6007e98bb8 100644
--- a/engines/ultima/nuvie/gui/widgets/map_window.cpp
+++ b/engines/ultima/nuvie/gui/widgets/map_window.cpp
@@ -1974,7 +1974,7 @@ GUI_status MapWindow::Idle(void) {
 
 
 // single-click (press and release button)
-GUI_status MapWindow::MouseClick(int x, int y, Shared::MouseButton button) {
+GUI_status MapWindow::MouseClick(int x, int y, Events::MouseButton button) {
 	if (button == USE_BUTTON && look_on_left_click) {
 		wait_for_mouseclick(button); // see MouseDelayed
 	}
@@ -1982,7 +1982,7 @@ GUI_status MapWindow::MouseClick(int x, int y, Shared::MouseButton button) {
 }
 
 // single-click; waited for double-click
-GUI_status MapWindow::MouseDelayed(int x, int y, Shared::MouseButton button) {
+GUI_status MapWindow::MouseDelayed(int x, int y, Events::MouseButton button) {
 	Events *event = game->get_event();
 	if (!looking || game->user_paused() || event->cursor_mode
 	        || (event->get_mode() != MOVE_MODE && event->get_mode() != EQUIP_MODE)) {
@@ -2000,7 +2000,7 @@ GUI_status MapWindow::MouseDelayed(int x, int y, Shared::MouseButton button) {
 }
 
 // MouseDown; waited for MouseUp
-GUI_status MapWindow::MouseHeld(int x, int y, Shared::MouseButton button) {
+GUI_status MapWindow::MouseHeld(int x, int y, Events::MouseButton button) {
 	looking = false;
 	if (walk_with_left_button)
 		set_walking(true);
@@ -2008,7 +2008,7 @@ GUI_status MapWindow::MouseHeld(int x, int y, Shared::MouseButton button) {
 }
 
 // double-click
-GUI_status MapWindow::MouseDouble(int x, int y, Shared::MouseButton button) {
+GUI_status MapWindow::MouseDouble(int x, int y, Events::MouseButton button) {
 	Events *event = game->get_event();
 
 	// only USE if not doing anything in event
@@ -2038,7 +2038,7 @@ GUI_status MapWindow::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status MapWindow::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status MapWindow::MouseDown(int x, int y, Events::MouseButton button) {
 	//DEBUG(0,LEVEL_DEBUGGING,"MapWindow::MouseDown, button = %i\n", button);
 	Events *event = game->get_event();
 	Actor *player = actor_manager->get_player();
@@ -2116,7 +2116,7 @@ GUI_status MapWindow::MouseDown(int x, int y, Shared::MouseButton button) {
 	return  GUI_PASS;
 }
 
-GUI_status MapWindow::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status MapWindow::MouseUp(int x, int y, Events::MouseButton button) {
 	// cancel dragging and movement no matter what button is released
 	if (selected_obj) {
 		selected_obj = nullptr;
diff --git a/engines/ultima/nuvie/gui/widgets/map_window.h b/engines/ultima/nuvie/gui/widgets/map_window.h
index f5dd44cf488..9b087eb0cc0 100644
--- a/engines/ultima/nuvie/gui/widgets/map_window.h
+++ b/engines/ultima/nuvie/gui/widgets/map_window.h
@@ -292,15 +292,15 @@ public:
 	void update();
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override;
 	GUI_status Idle(void) override;
 	GUI_status MouseLeave(uint8 state) override;
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseHeld(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseHeld(int x, int y, Events::MouseButton button) override;
 	GUI_status KeyDown(const Common::KeyState &key) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 
diff --git a/engines/ultima/nuvie/gui/widgets/msg_scroll.cpp b/engines/ultima/nuvie/gui/widgets/msg_scroll.cpp
index 7c214a28689..1c3fadd625f 100644
--- a/engines/ultima/nuvie/gui/widgets/msg_scroll.cpp
+++ b/engines/ultima/nuvie/gui/widgets/msg_scroll.cpp
@@ -857,7 +857,7 @@ GUI_status MsgScroll::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status MsgScroll::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status MsgScroll::MouseUp(int x, int y, Events::MouseButton button) {
 	uint16 i;
 	Std::string token_str;
 
diff --git a/engines/ultima/nuvie/gui/widgets/msg_scroll.h b/engines/ultima/nuvie/gui/widgets/msg_scroll.h
index 1d56fd5b6bb..084928ce6eb 100644
--- a/engines/ultima/nuvie/gui/widgets/msg_scroll.h
+++ b/engines/ultima/nuvie/gui/widgets/msg_scroll.h
@@ -243,7 +243,7 @@ public:
 	}
 
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 	virtual Std::string get_token_string_at_pos(uint16 x, uint16 y);
 //void updateScroll();
diff --git a/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.cpp b/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.cpp
index 5c4d7425994..78915050256 100644
--- a/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.cpp
+++ b/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.cpp
@@ -251,7 +251,7 @@ GUI_status MsgScrollNewUI::KeyDown(const Common::KeyState &key) {
 	return MsgScroll::KeyDown(key);
 }
 
-GUI_status MsgScrollNewUI::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status MsgScrollNewUI::MouseDown(int x, int y, Events::MouseButton button) {
 	MsgScrollEventType event = SCROLL_ESCAPE;
 
 	return scroll_movement_event(event);
diff --git a/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.h b/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.h
index 97a37cf9f91..e05ee9a69b9 100644
--- a/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.h
+++ b/engines/ultima/nuvie/gui/widgets/msg_scroll_new_ui.h
@@ -83,7 +83,7 @@ public:
 	bool is_garg_font() override;
 
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 
 	void move_scroll_down() override {
 		scroll_movement_event(SCROLL_DOWN);
diff --git a/engines/ultima/nuvie/nuvie.cpp b/engines/ultima/nuvie/nuvie.cpp
index 68f4760a8a0..170f6e02cdd 100644
--- a/engines/ultima/nuvie/nuvie.cpp
+++ b/engines/ultima/nuvie/nuvie.cpp
@@ -121,7 +121,7 @@ bool NuvieEngine::initialize() {
 	initConfig();
 
 	// Setup events
-	Events *events = new Ultima::Nuvie::Events(this, _config);
+	Events *events = new Ultima::Nuvie::Events(_config);
 	_events = events;
 
 	// Setup savegame handler
diff --git a/engines/ultima/nuvie/nuvie.h b/engines/ultima/nuvie/nuvie.h
index 390eca9aae4..bb096175315 100644
--- a/engines/ultima/nuvie/nuvie.h
+++ b/engines/ultima/nuvie/nuvie.h
@@ -33,13 +33,14 @@
 namespace Ultima {
 namespace Nuvie {
 
+class Events;
 class Game;
 class SaveGame;
 class Screen;
 class Script;
 class SoundManager;
 
-class NuvieEngine : public Engine, public Ultima::Shared::EventsCallback {
+class NuvieEngine : public Engine {
 private:
 	Common::RandomSource _randomSource;
 	Configuration *_config;
@@ -49,7 +50,7 @@ private:
 	SaveGame *_savegame;
 
 	SoundManager *_soundManager;
-	Ultima::Shared::EventsManager *_events;
+	Events *_events;
 protected:
 	const UltimaGameDescription *_gameDescription;
 private:
diff --git a/engines/ultima/nuvie/views/actor_view.cpp b/engines/ultima/nuvie/views/actor_view.cpp
index de37680c2e5..0b332cab793 100644
--- a/engines/ultima/nuvie/views/actor_view.cpp
+++ b/engines/ultima/nuvie/views/actor_view.cpp
@@ -271,7 +271,7 @@ GUI_status ActorView::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status ActorView::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status ActorView::MouseDown(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
diff --git a/engines/ultima/nuvie/views/actor_view.h b/engines/ultima/nuvie/views/actor_view.h
index 135705bccc5..43ad862007c 100644
--- a/engines/ultima/nuvie/views/actor_view.h
+++ b/engines/ultima/nuvie/views/actor_view.h
@@ -68,7 +68,7 @@ protected:
 	void display_name();
 	void display_actor_stats();
 	bool in_party;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 	GUI_status KeyDown(const Common::KeyState &key) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 	void update_cursor();
diff --git a/engines/ultima/nuvie/views/container_view_gump.cpp b/engines/ultima/nuvie/views/container_view_gump.cpp
index 5049a7058b5..beba77cac40 100644
--- a/engines/ultima/nuvie/views/container_view_gump.cpp
+++ b/engines/ultima/nuvie/views/container_view_gump.cpp
@@ -387,11 +387,11 @@ GUI_status ContainerViewGump::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status ContainerViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status ContainerViewGump::MouseDown(int x, int y, Events::MouseButton button) {
 	return DraggableView::MouseDown(x, y, button);
 }
 
-GUI_status ContainerViewGump::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status ContainerViewGump::MouseUp(int x, int y, Events::MouseButton button) {
 	return DraggableView::MouseUp(x, y, button);
 }
 
diff --git a/engines/ultima/nuvie/views/container_view_gump.h b/engines/ultima/nuvie/views/container_view_gump.h
index b83d3b81681..c0e0b55cb91 100644
--- a/engines/ultima/nuvie/views/container_view_gump.h
+++ b/engines/ultima/nuvie/views/container_view_gump.h
@@ -77,8 +77,8 @@ public:
 
 	GUI_status KeyDown(const Common::KeyState &key) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override {
 		return DraggableView::MouseMotion(x, y, state);
 	}
diff --git a/engines/ultima/nuvie/views/container_widget.cpp b/engines/ultima/nuvie/views/container_widget.cpp
index e79b7a658ca..1201798a505 100644
--- a/engines/ultima/nuvie/views/container_widget.cpp
+++ b/engines/ultima/nuvie/views/container_widget.cpp
@@ -186,7 +186,7 @@ void ContainerWidget::display_special_char(uint16 x, uint16 y, uint8 quality) {
 	screen->blitbitmap(x + 6, y + 11, inventory_font[quality + 9], 3, 5, obj_font_color, bg_color);
 }
 
-GUI_status ContainerWidget::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status ContainerWidget::MouseDown(int x, int y, Events::MouseButton button) {
 //Events *event = Game::get_game()->get_event();
 //MsgScroll *scroll = Game::get_game()->get_scroll();
 	x -= area.left;
@@ -248,7 +248,7 @@ Obj *ContainerWidget::get_obj_at_location(int x, int y) {
 }
 
 // change container, ready/unready object, activate arrows
-GUI_status ContainerWidget::MouseUp(int /*x*/, int /*y*/, Shared::MouseButton button) {
+GUI_status ContainerWidget::MouseUp(int /*x*/, int /*y*/, Events::MouseButton button) {
 	if (button == USE_BUTTON) {
 		//x -= area.left;
 		//y -= area.top;
@@ -517,7 +517,7 @@ void ContainerWidget::try_click() {
 }
 
 /* Use object. */
-GUI_status ContainerWidget::MouseDouble(int x, int y, Shared::MouseButton button) {
+GUI_status ContainerWidget::MouseDouble(int x, int y, Events::MouseButton button) {
 	// we have to check if double-clicks are allowed here, since we use single-clicks
 	if (!Game::get_game()->get_map_window()->is_doubleclick_enabled())
 		return GUI_PASS;
@@ -534,12 +534,12 @@ GUI_status ContainerWidget::MouseDouble(int x, int y, Shared::MouseButton button
 	return GUI_PASS;
 }
 
-GUI_status ContainerWidget::MouseClick(int x, int y, Shared::MouseButton button) {
+GUI_status ContainerWidget::MouseClick(int x, int y, Events::MouseButton button) {
 	return MouseUp(x, y, button);
 }
 
 // change container, ready/unready object, activate arrows
-GUI_status ContainerWidget::MouseDelayed(int x, int y, Shared::MouseButton button) {
+GUI_status ContainerWidget::MouseDelayed(int x, int y, Events::MouseButton button) {
 	if (ready_obj)
 		try_click();
 	return GUI_PASS;
diff --git a/engines/ultima/nuvie/views/container_widget.h b/engines/ultima/nuvie/views/container_widget.h
index 3cc51823d85..94d64317db0 100644
--- a/engines/ultima/nuvie/views/container_widget.h
+++ b/engines/ultima/nuvie/views/container_widget.h
@@ -84,12 +84,12 @@ public:
 	}
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override;
 
 	void drag_drop_success(int x, int y, int message, void *data) override;
 	void drag_drop_failed(int x, int y, int message, void *data) override;
diff --git a/engines/ultima/nuvie/views/doll_view_gump.cpp b/engines/ultima/nuvie/views/doll_view_gump.cpp
index 012660264ab..4d5e9016bec 100644
--- a/engines/ultima/nuvie/views/doll_view_gump.cpp
+++ b/engines/ultima/nuvie/views/doll_view_gump.cpp
@@ -672,11 +672,11 @@ GUI_status DollViewGump::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status DollViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status DollViewGump::MouseDown(int x, int y, Events::MouseButton button) {
 	return DraggableView::MouseDown(x, y, button);
 }
 
-GUI_status DollViewGump::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status DollViewGump::MouseUp(int x, int y, Events::MouseButton button) {
 	return DraggableView::MouseUp(x, y, button);
 }
 
diff --git a/engines/ultima/nuvie/views/doll_view_gump.h b/engines/ultima/nuvie/views/doll_view_gump.h
index 9ebeb466a8c..658992254c4 100644
--- a/engines/ultima/nuvie/views/doll_view_gump.h
+++ b/engines/ultima/nuvie/views/doll_view_gump.h
@@ -71,8 +71,8 @@ public:
 
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override {
 		return DraggableView::MouseMotion(x, y, state);
 	}
diff --git a/engines/ultima/nuvie/views/doll_widget.cpp b/engines/ultima/nuvie/views/doll_widget.cpp
index e3f45d7ad32..83cb10bb567 100644
--- a/engines/ultima/nuvie/views/doll_widget.cpp
+++ b/engines/ultima/nuvie/views/doll_widget.cpp
@@ -331,7 +331,7 @@ inline void DollWidget::display_readied_object(uint8 location, uint16 x, uint16
 
 // when no action is pending the Use button may be used to start dragging,
 // otherwise it has the same effect as ENTER (using InventoryView's callback)
-GUI_status DollWidget::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status DollWidget::MouseDown(int x, int y, Events::MouseButton button) {
 	Events *event = Game::get_game()->get_event();
 	uint8 location;
 	Obj *obj;
@@ -380,7 +380,7 @@ GUI_status DollWidget::MouseDown(int x, int y, Shared::MouseButton button) {
 }
 
 // un-ready selected item
-GUI_status DollWidget::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status DollWidget::MouseUp(int x, int y, Events::MouseButton button) {
 	Events *event = Game::get_game()->get_event();
 
 // only act now if double-click is disabled
@@ -397,7 +397,7 @@ GUI_status DollWidget::MouseUp(int x, int y, Shared::MouseButton button) {
 	return GUI_PASS;
 }
 
-GUI_status DollWidget::MouseClick(int x, int y, Shared::MouseButton button) {
+GUI_status DollWidget::MouseClick(int x, int y, Events::MouseButton button) {
 	return MouseUp(x, y, button);
 }
 
@@ -524,7 +524,7 @@ void DollWidget::drag_draw(int x, int y, int message, void *data) {
 
 /* Use object.
  */
-GUI_status DollWidget::MouseDouble(int x, int y, Shared::MouseButton button) {
+GUI_status DollWidget::MouseDouble(int x, int y, Events::MouseButton button) {
 	// we have to check if double-clicks are allowed here, since we use single-clicks
 	if (!Game::get_game()->get_map_window()->is_doubleclick_enabled())
 		return GUI_PASS;
@@ -543,7 +543,7 @@ GUI_status DollWidget::MouseDouble(int x, int y, Shared::MouseButton button) {
 }
 
 // change container, ready/unready object, activate arrows
-GUI_status DollWidget::MouseDelayed(int x, int y, Shared::MouseButton button) {
+GUI_status DollWidget::MouseDelayed(int x, int y, Events::MouseButton button) {
 	Events *event = Game::get_game()->get_event();
 	if (unready_obj) {
 		event->unready(unready_obj);
diff --git a/engines/ultima/nuvie/views/doll_widget.h b/engines/ultima/nuvie/views/doll_widget.h
index 7e7681a40d5..ddfd3612fdf 100644
--- a/engines/ultima/nuvie/views/doll_widget.h
+++ b/engines/ultima/nuvie/views/doll_widget.h
@@ -63,12 +63,12 @@ public:
 	void set_actor(Actor *a);
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override;
 
 	void drag_drop_success(int x, int y, int message, void *data) override;
 	void drag_drop_failed(int x, int y, int message, void *data) override;
diff --git a/engines/ultima/nuvie/views/draggable_view.cpp b/engines/ultima/nuvie/views/draggable_view.cpp
index 4d0cfb2fc80..5c4eb1d5339 100644
--- a/engines/ultima/nuvie/views/draggable_view.cpp
+++ b/engines/ultima/nuvie/views/draggable_view.cpp
@@ -60,7 +60,7 @@ void DraggableView::set_bg_color_key(uint8 r, uint8 g, uint8 b) {
 	}
 }
 
-GUI_status DraggableView::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status DraggableView::MouseDown(int x, int y, Events::MouseButton button) {
 	if (bg_image && HitRect(x, y)) {
 		uint32 pixel = sdl_getpixel(bg_image, x - area.left, y - area.top);
 		if (pixel == bg_color_key) {
@@ -80,11 +80,11 @@ GUI_status DraggableView::MouseDown(int x, int y, Shared::MouseButton button) {
 	return GUI_YUM;
 }
 
-GUI_status DraggableView::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status DraggableView::MouseUp(int x, int y, Events::MouseButton button) {
 	drag = false;
 
 	release_focus();
-	if (button == Shared::BUTTON_RIGHT) {
+	if (button == Events::BUTTON_RIGHT) {
 		Game::get_game()->get_view_manager()->close_gump(this);
 	}
 	return GUI_YUM;
diff --git a/engines/ultima/nuvie/views/draggable_view.h b/engines/ultima/nuvie/views/draggable_view.h
index d11bf3dd793..29039268b9e 100644
--- a/engines/ultima/nuvie/views/draggable_view.h
+++ b/engines/ultima/nuvie/views/draggable_view.h
@@ -45,8 +45,8 @@ public:
 	~DraggableView() override;
 
 	/* events, used for dragging the area. */
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 	void MoveRelative(int dx, int dy) override;
 
diff --git a/engines/ultima/nuvie/views/inventory_view.cpp b/engines/ultima/nuvie/views/inventory_view.cpp
index 90bc4e8f00d..efb3390b9fa 100644
--- a/engines/ultima/nuvie/views/inventory_view.cpp
+++ b/engines/ultima/nuvie/views/inventory_view.cpp
@@ -638,7 +638,7 @@ bool InventoryView::select_obj(Obj *obj) {
 	return false;
 }
 
-GUI_status InventoryView::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status InventoryView::MouseDown(int x, int y, Events::MouseButton button) {
 	return GUI_PASS;
 }
 
diff --git a/engines/ultima/nuvie/views/inventory_view.h b/engines/ultima/nuvie/views/inventory_view.h
index 7fa3630ebff..ccb84390253 100644
--- a/engines/ultima/nuvie/views/inventory_view.h
+++ b/engines/ultima/nuvie/views/inventory_view.h
@@ -101,7 +101,7 @@ protected:
 	void update_cursor();
 	void hide_buttons();
 	void show_buttons();
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 	GUI_status callback(uint16 msg, GUI_CallBack *caller, void *data) override;
 };
diff --git a/engines/ultima/nuvie/views/inventory_widget.cpp b/engines/ultima/nuvie/views/inventory_widget.cpp
index 80e79dc2b93..3c1888c23aa 100644
--- a/engines/ultima/nuvie/views/inventory_widget.cpp
+++ b/engines/ultima/nuvie/views/inventory_widget.cpp
@@ -266,7 +266,7 @@ void InventoryWidget::display_arrows() {
 		font->drawChar(screen, 25, area.left, area.top + 3 * 16 + 8);
 }
 
-GUI_status InventoryWidget::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status InventoryWidget::MouseDown(int x, int y, Events::MouseButton button) {
 	Events *event = Game::get_game()->get_event();
 	CommandBar *command_bar = Game::get_game()->get_command_bar();
 	x -= area.left;
@@ -371,7 +371,7 @@ GUI_status InventoryWidget::MouseWheel(sint32 x, sint32 y) {
 }
 
 // change container, ready/unready object, activate arrows
-GUI_status InventoryWidget::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status InventoryWidget::MouseUp(int x, int y, Events::MouseButton button) {
 
 	CommandBar *command_bar = Game::get_game()->get_command_bar();
 
@@ -635,7 +635,7 @@ void InventoryWidget::try_click() {
 }
 
 /* Use object. */
-GUI_status InventoryWidget::MouseDouble(int x, int y, Shared::MouseButton button) {
+GUI_status InventoryWidget::MouseDouble(int x, int y, Events::MouseButton button) {
 	// we have to check if double-clicks are allowed here, since we use single-clicks
 	if (!Game::get_game()->get_map_window()->is_doubleclick_enabled())
 		return GUI_PASS;
@@ -653,12 +653,12 @@ GUI_status InventoryWidget::MouseDouble(int x, int y, Shared::MouseButton button
 	return GUI_PASS;
 }
 
-GUI_status InventoryWidget::MouseClick(int x, int y, Shared::MouseButton button) {
+GUI_status InventoryWidget::MouseClick(int x, int y, Events::MouseButton button) {
 	return MouseUp(x, y, button);
 }
 
 // change container, ready/unready object, activate arrows
-GUI_status InventoryWidget::MouseDelayed(int x, int y, Shared::MouseButton button) {
+GUI_status InventoryWidget::MouseDelayed(int x, int y, Events::MouseButton button) {
 	if (ready_obj)
 		try_click();
 	return GUI_PASS;
diff --git a/engines/ultima/nuvie/views/inventory_widget.h b/engines/ultima/nuvie/views/inventory_widget.h
index b364d9bc070..ea9f6964e47 100644
--- a/engines/ultima/nuvie/views/inventory_widget.h
+++ b/engines/ultima/nuvie/views/inventory_widget.h
@@ -83,12 +83,12 @@ public:
 	}
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 	void drag_drop_success(int x, int y, int message, void *data) override;
 	void drag_drop_failed(int x, int y, int message, void *data) override;
diff --git a/engines/ultima/nuvie/views/map_editor_view.cpp b/engines/ultima/nuvie/views/map_editor_view.cpp
index 51f8e132ade..22b2a562430 100644
--- a/engines/ultima/nuvie/views/map_editor_view.cpp
+++ b/engines/ultima/nuvie/views/map_editor_view.cpp
@@ -235,14 +235,14 @@ GUI_status MapEditorView::KeyDown(const Common::KeyState &key) {
 	return GUI_YUM;
 }
 
-GUI_status MapEditorView::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status MapEditorView::MouseDown(int x, int y, Events::MouseButton button) {
 
 	return GUI_YUM;
 }
 
-GUI_status MapEditorView::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status MapEditorView::MouseUp(int x, int y, Events::MouseButton button) {
 
-	if (button == Shared::BUTTON_RIGHT) {
+	if (button == Events::BUTTON_RIGHT) {
 		//Game::get_game()->get_view_manager()->close_gump(this);
 		close_view();
 		GUI::get_gui()->removeWidget((GUI_Widget *)this);
diff --git a/engines/ultima/nuvie/views/map_editor_view.h b/engines/ultima/nuvie/views/map_editor_view.h
index f9a9965d3ff..5b99c25aeb9 100644
--- a/engines/ultima/nuvie/views/map_editor_view.h
+++ b/engines/ultima/nuvie/views/map_editor_view.h
@@ -46,8 +46,8 @@ public:
 	bool init(Screen *tmp_screen, void *view_manager, uint16 x, uint16 y, Font *f, Party *p, TileManager *tm, ObjManager *om);
 	void Display(bool full_redraw) override;
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override;
 
 	void close_view() override;
diff --git a/engines/ultima/nuvie/views/party_view.cpp b/engines/ultima/nuvie/views/party_view.cpp
index 5145ff2af82..591ec55b828 100644
--- a/engines/ultima/nuvie/views/party_view.cpp
+++ b/engines/ultima/nuvie/views/party_view.cpp
@@ -99,7 +99,7 @@ GUI_status PartyView::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status PartyView::MouseUp(int x, int y, Shared::MouseButton button) {
+GUI_status PartyView::MouseUp(int x, int y, Events::MouseButton button) {
 	x -= area.left;
 	y -= area.top;
 
diff --git a/engines/ultima/nuvie/views/party_view.h b/engines/ultima/nuvie/views/party_view.h
index cbede0a846c..f172c757bdc 100644
--- a/engines/ultima/nuvie/views/party_view.h
+++ b/engines/ultima/nuvie/views/party_view.h
@@ -49,8 +49,8 @@ public:
 	~PartyView() override;
 
 	bool init(void *vm, uint16 x, uint16 y, Font *f, Party *p, Player *pl, TileManager *tm, ObjManager *om);
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
diff --git a/engines/ultima/nuvie/views/portrait_view_gump.cpp b/engines/ultima/nuvie/views/portrait_view_gump.cpp
index 5f932299761..269ef2152d4 100644
--- a/engines/ultima/nuvie/views/portrait_view_gump.cpp
+++ b/engines/ultima/nuvie/views/portrait_view_gump.cpp
@@ -285,7 +285,7 @@ GUI_status PortraitViewGump::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status PortraitViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status PortraitViewGump::MouseDown(int x, int y, Events::MouseButton button) {
 	return DraggableView::MouseDown(x, y, button);
 }
 
diff --git a/engines/ultima/nuvie/views/portrait_view_gump.h b/engines/ultima/nuvie/views/portrait_view_gump.h
index b8048914500..d94e23c017d 100644
--- a/engines/ultima/nuvie/views/portrait_view_gump.h
+++ b/engines/ultima/nuvie/views/portrait_view_gump.h
@@ -60,7 +60,7 @@ public:
 
 	GUI_status callback(uint16 msg, GUI_CallBack *caller, void *data) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
 
 protected:
diff --git a/engines/ultima/nuvie/views/scroll_view_gump.cpp b/engines/ultima/nuvie/views/scroll_view_gump.cpp
index b63658e0195..1d3e165c82d 100644
--- a/engines/ultima/nuvie/views/scroll_view_gump.cpp
+++ b/engines/ultima/nuvie/views/scroll_view_gump.cpp
@@ -97,7 +97,7 @@ void ScrollViewGump::Display(bool full_redraw) {
 	return;
 }
 
-GUI_status ScrollViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status ScrollViewGump::MouseDown(int x, int y, Events::MouseButton button) {
 	if (scroll_widget->MouseDown(x, y, button) != GUI_YUM) {
 		Game::get_game()->get_view_manager()->close_gump(this);
 	}
diff --git a/engines/ultima/nuvie/views/scroll_view_gump.h b/engines/ultima/nuvie/views/scroll_view_gump.h
index 51bbe036ca2..92267e1bdf0 100644
--- a/engines/ultima/nuvie/views/scroll_view_gump.h
+++ b/engines/ultima/nuvie/views/scroll_view_gump.h
@@ -47,8 +47,8 @@ public:
 
 	GUI_status callback(uint16 msg, GUI_CallBack *caller, void *data) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 	GUI_status KeyDown(const Common::KeyState &key) override;
diff --git a/engines/ultima/nuvie/views/scroll_widget_gump.cpp b/engines/ultima/nuvie/views/scroll_widget_gump.cpp
index 9dd9d6c6c7a..30bd78ef6cb 100644
--- a/engines/ultima/nuvie/views/scroll_widget_gump.cpp
+++ b/engines/ultima/nuvie/views/scroll_widget_gump.cpp
@@ -195,11 +195,11 @@ GUI_status ScrollWidgetGump::MouseWheel(sint32 x, sint32 y) {
 	return scroll_movement_event(event);
 }
 
-GUI_status ScrollWidgetGump::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status ScrollWidgetGump::MouseDown(int x, int y, Events::MouseButton button) {
 	ScrollEventType event = SCROLL_ESCAPE;
 
 	switch (button) {
-	case Shared::BUTTON_LEFT : {
+	case Events::BUTTON_LEFT : {
 		x -= area.left;
 		y -= area.top;
 		if (HitRect(x, y, arrow_up_rect))
diff --git a/engines/ultima/nuvie/views/scroll_widget_gump.h b/engines/ultima/nuvie/views/scroll_widget_gump.h
index 534522d3c91..4757d72f3e3 100644
--- a/engines/ultima/nuvie/views/scroll_widget_gump.h
+++ b/engines/ultima/nuvie/views/scroll_widget_gump.h
@@ -91,8 +91,8 @@ public:
 	bool can_fit_token_on_msgline(MsgLine *msg_line, MsgText *token) override;
 
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;    // otherwise we do Msgscroll::MouseUp
 	}
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
diff --git a/engines/ultima/nuvie/views/sign_view_gump.cpp b/engines/ultima/nuvie/views/sign_view_gump.cpp
index f33e49a2fbd..fd47625ba71 100644
--- a/engines/ultima/nuvie/views/sign_view_gump.cpp
+++ b/engines/ultima/nuvie/views/sign_view_gump.cpp
@@ -112,7 +112,7 @@ void SignViewGump::Display(bool full_redraw) {
 	return;
 }
 
-GUI_status SignViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status SignViewGump::MouseDown(int x, int y, Events::MouseButton button) {
 	Game::get_game()->get_view_manager()->close_gump(this);
 	return GUI_YUM;
 }
diff --git a/engines/ultima/nuvie/views/sign_view_gump.h b/engines/ultima/nuvie/views/sign_view_gump.h
index 2ceabacfcc6..264dd52d2a9 100644
--- a/engines/ultima/nuvie/views/sign_view_gump.h
+++ b/engines/ultima/nuvie/views/sign_view_gump.h
@@ -49,7 +49,7 @@ public:
 
 	GUI_status callback(uint16 msg, GUI_CallBack *caller, void *data) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 	GUI_status KeyDown(const Common::KeyState &key) override;
 };
 
diff --git a/engines/ultima/nuvie/views/spell_view.cpp b/engines/ultima/nuvie/views/spell_view.cpp
index 59c9dfda3d7..38c9ee9619c 100644
--- a/engines/ultima/nuvie/views/spell_view.cpp
+++ b/engines/ultima/nuvie/views/spell_view.cpp
@@ -410,7 +410,7 @@ GUI_status SpellView::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status SpellView::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status SpellView::MouseDown(int x, int y, Events::MouseButton button) {
 	y -= area.top;
 	x -= area.left;
 	Events *event = Game::get_game()->get_event();
@@ -428,7 +428,7 @@ GUI_status SpellView::MouseDown(int x, int y, Shared::MouseButton button) {
 		doing_nothing = (y < 8 || y > 71 || x < 16 || x > 134);
 	}
 
-	if (button == Shared::BUTTON_RIGHT)
+	if (button == Events::BUTTON_RIGHT)
 		return cancel_spell();
 
 	if (selecting_spell_target && !event_mode) { // cast selected spell on the map
diff --git a/engines/ultima/nuvie/views/spell_view.h b/engines/ultima/nuvie/views/spell_view.h
index 96379b0e957..05c26f33f8e 100644
--- a/engines/ultima/nuvie/views/spell_view.h
+++ b/engines/ultima/nuvie/views/spell_view.h
@@ -72,9 +72,9 @@ public:
 	void PlaceOnScreen(Screen *s, GUI_DragManager *dm, int x, int y) override;
 	void close_look();
 	GUI_status KeyDown(const Common::KeyState &key) override;
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 	GUI_status MouseMotion(int x, int y, uint8 state) override {
@@ -86,16 +86,16 @@ public:
 	GUI_status MouseLeave(uint8 state) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseClick(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseClick(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseDouble(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDouble(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseDelayed(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseDelayed(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
-	GUI_status MouseHeld(int x, int y, Shared::MouseButton button) override {
+	GUI_status MouseHeld(int x, int y, Events::MouseButton button) override {
 		return GUI_YUM;
 	}
 	GUI_status MouseWheel(sint32 x, sint32 y) override;
diff --git a/engines/ultima/nuvie/views/spell_view_gump.cpp b/engines/ultima/nuvie/views/spell_view_gump.cpp
index f4ecd91c99f..45842164661 100644
--- a/engines/ultima/nuvie/views/spell_view_gump.cpp
+++ b/engines/ultima/nuvie/views/spell_view_gump.cpp
@@ -285,8 +285,8 @@ GUI_status SpellViewGump::MouseWheel(sint32 x, sint32 y) {
 	return GUI_YUM;
 }
 
-GUI_status SpellViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
-	if (button == Shared::BUTTON_RIGHT) {
+GUI_status SpellViewGump::MouseDown(int x, int y, Events::MouseButton button) {
+	if (button == Events::BUTTON_RIGHT) {
 		close_spellbook();
 		return GUI_YUM;
 	}
@@ -326,8 +326,8 @@ GUI_status SpellViewGump::MouseDown(int x, int y, Shared::MouseButton button) {
 	return DraggableView::MouseDown(x, y, button);
 }
 
-GUI_status SpellViewGump::MouseUp(int x, int y, Shared::MouseButton button) {
-	if (button == Shared::BUTTON_RIGHT)
+GUI_status SpellViewGump::MouseUp(int x, int y, Events::MouseButton button) {
+	if (button == Events::BUTTON_RIGHT)
 		return GUI_YUM;
 
 	sint16 spell = getSpell(x, y);
diff --git a/engines/ultima/nuvie/views/spell_view_gump.h b/engines/ultima/nuvie/views/spell_view_gump.h
index 53da8ce4a1d..8e85eaf528e 100644
--- a/engines/ultima/nuvie/views/spell_view_gump.h
+++ b/engines/ultima/nuvie/views/spell_view_gump.h
@@ -53,8 +53,8 @@ public:
 
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
-	GUI_status MouseUp(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
+	GUI_status MouseUp(int x, int y, Events::MouseButton button) override;
 	GUI_status MouseMotion(int x, int y, uint8 state) override {
 		return DraggableView::MouseMotion(x, y, state);
 	}
diff --git a/engines/ultima/nuvie/views/sun_moon_ribbon.cpp b/engines/ultima/nuvie/views/sun_moon_ribbon.cpp
index 8ac2b3d54c3..45ebdb3f49f 100644
--- a/engines/ultima/nuvie/views/sun_moon_ribbon.cpp
+++ b/engines/ultima/nuvie/views/sun_moon_ribbon.cpp
@@ -204,7 +204,7 @@ void SunMoonRibbon::display_dungeon_strip() {
 	screen->update(dest.left, dest.top, dest.width(), dest.height());
 }
 
-GUI_status SunMoonRibbon::MouseDown(int x, int y, Shared::MouseButton button) {
+GUI_status SunMoonRibbon::MouseDown(int x, int y, Events::MouseButton button) {
 	Common::Rect rect = area;
 
 	if (retracted) {
diff --git a/engines/ultima/nuvie/views/sun_moon_ribbon.h b/engines/ultima/nuvie/views/sun_moon_ribbon.h
index 56dbb2232ef..04d628e207e 100644
--- a/engines/ultima/nuvie/views/sun_moon_ribbon.h
+++ b/engines/ultima/nuvie/views/sun_moon_ribbon.h
@@ -42,7 +42,7 @@ public:
 	void init(Screen *screen);
 	void Display(bool full_redraw) override;
 
-	GUI_status MouseDown(int x, int y, Shared::MouseButton button) override;
+	GUI_status MouseDown(int x, int y, Events::MouseButton button) override;
 
 
 	void extend() {




More information about the Scummvm-git-logs mailing list