From b230521a1a6809fb90751b9b5b089b4782703b9a Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 8 Oct 2025 17:16:03 +0000 Subject: [PATCH] work on text widget git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@227 b9cfdab3-6d41-4d17-bbe4-086880011989 --- GNUmakefile | 2 +- NTMakefile | 4 ++-- include/Mw/Widget/Text.h | 26 ++++++++++++++++++++++++++ include/MwOO/Widget/Text.h | 16 ++++++++++++++++ oosrc/deps.mk | 2 +- oosrc/widget/text.cc | 15 +++++++++++++++ src/widget/text.c | 36 ++++++++++++++++++++++++++++++++++++ 7 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 include/Mw/Widget/Text.h create mode 100644 include/MwOO/Widget/Text.h create mode 100644 oosrc/widget/text.cc create mode 100644 src/widget/text.c diff --git a/GNUmakefile b/GNUmakefile index 2d2b944..99fd45a 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -28,7 +28,7 @@ L_LIBS = $(LIBS) L_OBJS = src/core.o src/default.o src/draw.o src/lowlevel.o src/font.o src/boldfont.o src/error.o L_OBJS += src/external/ds.o src/external/image.o -L_OBJS += src/widget/window.o src/widget/button.o src/widget/frame.o src/widget/menu.o src/widget/submenu.o src/widget/image.o src/widget/scrollbar.o src/widget/checkbox.o src/widget/label.o +L_OBJS += src/widget/window.o src/widget/button.o src/widget/frame.o src/widget/menu.o src/widget/submenu.o src/widget/image.o src/widget/scrollbar.o src/widget/checkbox.o src/widget/label.o src/widget/text.o L_OBJS += src/cursor/default.o src/cursor/cross.o OOL_CXXFLAGS = $(DEPINC) $(CFLAGS) -std=c++98 -fPIC diff --git a/NTMakefile b/NTMakefile index a5b87a6..7307569 100644 --- a/NTMakefile +++ b/NTMakefile @@ -2,8 +2,8 @@ CC = cl LD = link -OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\font.obj src\boldfont.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\backend\gdi.obj -OOOBJS = oosrc\base.obj oosrc\widget\button.obj oosrc\widget\frame.obj oosrc\widget\image.obj oosrc\widget\menu.obj oosrc\widget\opengl.obj oosrc\widget\scrollbar.obj oosrc\widget\submenu.obj oosrc\widget\window.obj oosrc\widget\checkbox.obj oosrc\widget\label.obj +OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\font.obj src\boldfont.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\text.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\backend\gdi.obj +OOOBJS = oosrc\base.obj oosrc\widget\button.obj oosrc\widget\frame.obj oosrc\widget\image.obj oosrc\widget\menu.obj oosrc\widget\opengl.obj oosrc\widget\scrollbar.obj oosrc\widget\submenu.obj oosrc\widget\window.obj oosrc\widget\checkbox.obj oosrc\widget\text.obj oosrc\widget\label.obj CFLAGS = /nologo /DSTBI_NO_SIMD /D_MILSKO /DUSE_GDI /DUSE_STB_IMAGE /Iinclude CXXFLAGS = /nologo /Iinclude LDFLAGS = /nologo /DLL /LIBPATH:src /LIBPATH:oosrc diff --git a/include/Mw/Widget/Text.h b/include/Mw/Widget/Text.h new file mode 100644 index 0000000..4be8ba6 --- /dev/null +++ b/include/Mw/Widget/Text.h @@ -0,0 +1,26 @@ +/* $Id$ */ +/*! + * %file Mw/Widget/Text.h + * %brief Text widget + * %prop MwNchecked + */ +#ifndef __MW_WIDGET_TEXT_H__ +#define __MW_WIDGET_TEXT_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * %brief Text widget class + */ +MWDECL MwClass MwTextClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/MwOO/Widget/Text.h b/include/MwOO/Widget/Text.h new file mode 100644 index 0000000..a7f796b --- /dev/null +++ b/include/MwOO/Widget/Text.h @@ -0,0 +1,16 @@ +/* $Id$ */ +#ifndef __MWOO_WIDGET_TEXT_H__ +#define __MWOO_WIDGET_TEXT_H__ + +#include + +namespace MwOO { +class Text : public MwOO::Base { + public: + Text(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h); + void SetChecked(int value); + int GetChecked(void); +}; +} // namespace MwOO + +#endif diff --git a/oosrc/deps.mk b/oosrc/deps.mk index cb24f7c..a8067a0 100644 --- a/oosrc/deps.mk +++ b/oosrc/deps.mk @@ -1,2 +1,2 @@ # $Id$ -OOL_OBJS += oosrc/widget/button.o oosrc/widget/frame.o oosrc/widget/image.o oosrc/widget/menu.o oosrc/widget/scrollbar.o oosrc/widget/submenu.o oosrc/widget/window.o oosrc/widget/checkbox.o oosrc/widget/label.o +OOL_OBJS += oosrc/widget/button.o oosrc/widget/frame.o oosrc/widget/image.o oosrc/widget/menu.o oosrc/widget/scrollbar.o oosrc/widget/submenu.o oosrc/widget/window.o oosrc/widget/checkbox.o oosrc/widget/label.o oosrc/widget/text.o diff --git a/oosrc/widget/text.cc b/oosrc/widget/text.cc new file mode 100644 index 0000000..0ff1985 --- /dev/null +++ b/oosrc/widget/text.cc @@ -0,0 +1,15 @@ +/* $Id$ */ +#include +#include + +MwOO::Text::Text(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwTextClass, widget_name, parent, x, y, w, h){ +} + +void MwOO::Text::SetChecked(int value){ + MwSetInteger(this->widget, MwNchecked, value); +} + +int MwOO::Text::GetChecked(void){ + return MwGetInteger(this->widget, MwNchecked); +} + diff --git a/src/widget/text.c b/src/widget/text.c new file mode 100644 index 0000000..4f438bd --- /dev/null +++ b/src/widget/text.c @@ -0,0 +1,36 @@ +/* $Id$ */ +#include + +static int create(MwWidget handle) { + MwSetDefault(handle); + + return 0; +} + +static void draw(MwWidget handle) { + MwRect r; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + + r.x = 0; + r.y = 0; + r.width = MwGetInteger(handle, MwNwidth); + r.height = MwGetInteger(handle, MwNheight); + + MwDrawFrame(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0); + MwDrawRect(handle, &r, base); + + MwLLFreeColor(base); +} + +MwClassRec MwTextClassRec = { + create, /* create */ + NULL, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL /* mouse_down */ +}; +MwClass MwTextClass = &MwTextClassRec;