From 951dcc054a9fc0dbbe00dff4ef8baefca6af7c35 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 7 Oct 2025 15:59:55 +0000 Subject: [PATCH] add more handlers git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@208 b9cfdab3-6d41-4d17-bbe4-086880011989 --- GNUmakefile | 4 ++-- include/Mw/StringDefs.h | 2 ++ include/MwOO/Base.h | 2 ++ oosrc/base.cc | 10 ++++++++++ src/core.c | 2 ++ 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 0d71300..4644037 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -4,8 +4,8 @@ ifeq ($(TARGET),) TARGET = $(shell uname -s) endif -CC = gcc -CXX = g++ +CC = $(GCC)gcc +CXX = $(GCC)g++ CFLAGS = -Wall -Wextra -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude LDFLAGS = diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 7ebffb7..7a1af6d 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -28,5 +28,7 @@ #define MwNresizeHandler "Cresize" #define MwNtickHandler "Ctick" #define MwNmenuHandler "Cmenu" +#define MwNmouseDownHandler "CmouseDownHandler" +#define MwNmouseUpHandler "CmouseUpHandler" #endif diff --git a/include/MwOO/Base.h b/include/MwOO/Base.h index 1a755cc..cba4ecf 100644 --- a/include/MwOO/Base.h +++ b/include/MwOO/Base.h @@ -31,6 +31,8 @@ class Base { virtual void OnResize(void*) {}; virtual void OnTick(void*) {}; virtual void OnMenu(void*) {}; + virtual void OnMouseDownHandler(void*) {}; + virtual void OnMouseUpHandler(void*) {}; /* END AUTOGENERATE */ diff --git a/oosrc/base.cc b/oosrc/base.cc index f687262..f54334c 100644 --- a/oosrc/base.cc +++ b/oosrc/base.cc @@ -65,11 +65,21 @@ static void __OnMenu(MwWidget widget, void* user, void* call){ MwOO::Base* c = (MwOO::Base*)user; c->OnMenu(call); } +static void __OnMouseDownHandler(MwWidget widget, void* user, void* call){ + MwOO::Base* c = (MwOO::Base*)user; + c->OnMouseDownHandler(call); +} +static void __OnMouseUpHandler(MwWidget widget, void* user, void* call){ + MwOO::Base* c = (MwOO::Base*)user; + c->OnMouseUpHandler(call); +} void MwOO::Base::SetHandler(void){ MwAddUserHandler(this->widget, MwNactivateHandler, __OnActivate, this); MwAddUserHandler(this->widget, MwNresizeHandler, __OnResize, this); MwAddUserHandler(this->widget, MwNtickHandler, __OnTick, this); MwAddUserHandler(this->widget, MwNmenuHandler, __OnMenu, this); + MwAddUserHandler(this->widget, MwNmouseDownHandler, __OnMouseDownHandler, this); + MwAddUserHandler(this->widget, MwNmouseUpHandler, __OnMouseUpHandler, this); } /* END AUTOGENERATE */ diff --git a/src/core.c b/src/core.c index f7fb2d6..f39458b 100644 --- a/src/core.c +++ b/src/core.c @@ -23,6 +23,7 @@ static void lluphandler(MwLL handle, void* data) { MwDispatch(h, click); MwDispatch(h, mouse_up); + MwDispatchUserHandler(h, MwNmouseUpHandler, data); } static void lldownhandler(MwLL handle, void* data) { @@ -33,6 +34,7 @@ static void lldownhandler(MwLL handle, void* data) { h->mouse_point.y = p->y; MwDispatch(h, mouse_down); + MwDispatchUserHandler(h, MwNmouseDownHandler, data); } static void llresizehandler(MwLL handle, void* data) {