From 9fc580eeb2ada2d62e78df21bbc9f545128db7b0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 10 Oct 2025 06:08:19 +0000 Subject: [PATCH] numberentry git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@246 b9cfdab3-6d41-4d17-bbe4-086880011989 --- GNUmakefile | 2 +- NTMakefile | 4 +- doc/index.html | 84 ++++++++++++++++++++++--------- include/Mw/Milsko.h | 1 + include/Mw/TypeDefs.h | 5 ++ include/Mw/Widget/NumberEntry.h | 26 ++++++++++ include/MwOO/Widget/NumberEntry.h | 20 ++++++++ include/MwOO/Widget/OpenGL.h | 1 - oosrc/deps.mk | 2 +- oosrc/widget/numberentry.cc | 31 ++++++++++++ oosrc/widget/opengl.cc | 3 -- src/widget/entry.c | 10 ++-- src/widget/numberentry.c | 40 +++++++++++++++ 13 files changed, 189 insertions(+), 40 deletions(-) create mode 100644 include/Mw/Widget/NumberEntry.h create mode 100644 include/MwOO/Widget/NumberEntry.h create mode 100644 oosrc/widget/numberentry.cc create mode 100644 src/widget/numberentry.c diff --git a/GNUmakefile b/GNUmakefile index 78141aa..097692f 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 src/unicode.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 src/widget/entry.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/entry.o src/widget/numberentry.o L_OBJS += src/cursor/default.o src/cursor/cross.o src/cursor/text.o OOL_CXXFLAGS = $(DEPINC) $(CFLAGS) -std=c++98 -fPIC diff --git a/NTMakefile b/NTMakefile index 7f58463..ad1e0ac 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\unicode.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\entry.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\cursor\text.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 oosrc\widget\entry.obj +OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.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\entry.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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 oosrc\widget\entry.obj oosrc\widget\numberentry.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/doc/index.html b/doc/index.html index 21404f8..d3f5fc7 100644 --- a/doc/index.html +++ b/doc/index.html @@ -164,6 +164,9 @@
MwTextHeight
+
+ MwGetColor +
Mw/Error.h
@@ -263,6 +266,12 @@
MwMenuAdd
+
+ Mw/Widget/NumberEntry.h +
+
+ MwNumberEntryClass +
Mw/Widget/OpenGL.h
@@ -278,9 +287,6 @@
MwOpenGLSwapBuffer
-
- MwOpenGLSetColor -
Mw/Widget/ScrollBar.h
@@ -1577,6 +1583,42 @@
+
MWDECL void MwGetColor (
+	MwLLColor color,
+	int* red,
+	int* green,
+	int* blue
+);
+
+
+ Get color components. +
+
+ Parameter color +
+
+ Color. +
+
+ Parameter red +
+
+ Pointer to red color. +
+
+ Parameter green +
+
+ Pointer to green color. +
+
+ Parameter blue +
+
+ Pointer to blue color. +
+
+

Mw/Error.h

@@ -1879,6 +1921,20 @@

+

Mw/Widget/NumberEntry.h

+
+
+ NumberEntry widget. +
+
+
+
MWDECL MwClass MwNumberEntryClass;
+
+
+ NumberEntry widget class. +
+
+

Mw/Widget/OpenGL.h

@@ -1951,28 +2007,6 @@

-
MWDECL void MwOpenGLSetColor (
-	MwWidget handle,
-	MwLLColor color
-);
-
-
- Set color using glColor3f. -
-
- Parameter handle -
-
- Widget. -
-
- Parameter color -
-
- Color. -
-
-

Mw/Widget/ScrollBar.h

diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index de6450b..8450b76 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -29,5 +29,6 @@ #include #include #include +#include #endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index ce4567b..285b2b9 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -18,6 +18,7 @@ typedef struct _MwVoidKeyValue MwVoidKeyValue; typedef struct _MwFont MwFont; typedef struct _MwMenu* MwMenu; typedef struct _MwCursor MwCursor; +typedef struct _MwEntry* MwEntry; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; #else @@ -100,6 +101,10 @@ struct _MwMenu { MwMenu* sub; }; +struct _MwEntry { + int cursor; +}; + #define MwCursorDataHeight 16 struct _MwCursor { int width; diff --git a/include/Mw/Widget/NumberEntry.h b/include/Mw/Widget/NumberEntry.h new file mode 100644 index 0000000..4ce5266 --- /dev/null +++ b/include/Mw/Widget/NumberEntry.h @@ -0,0 +1,26 @@ +/* $Id$ */ +/*! + * %file Mw/Widget/NumberEntry.h + * %brief NumberEntry widget + * %prop MwNtext + */ +#ifndef __MW_WIDGET_NUMBERENTRY_H__ +#define __MW_WIDGET_NUMBERENTRY_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * %brief NumberEntry widget class + */ +MWDECL MwClass MwNumberEntryClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/MwOO/Widget/NumberEntry.h b/include/MwOO/Widget/NumberEntry.h new file mode 100644 index 0000000..8f1e5cd --- /dev/null +++ b/include/MwOO/Widget/NumberEntry.h @@ -0,0 +1,20 @@ +/* $Id$ */ +#ifndef __MWOO_WIDGET_NUMBERENTRY_H__ +#define __MWOO_WIDGET_NUMBERENTRY_H__ + +#include + +namespace MwOO { +class NumberEntry : public MwOO::Base { + public: + NumberEntry(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h); + void SetText(const char* value); + const char* GetText(void); + void SetBackground(const char* value); + const char* GetBackground(void); + void SetForeground(const char* value); + const char* GetForeground(void); +}; +} // namespace MwOO + +#endif diff --git a/include/MwOO/Widget/OpenGL.h b/include/MwOO/Widget/OpenGL.h index cb54d42..72b3009 100644 --- a/include/MwOO/Widget/OpenGL.h +++ b/include/MwOO/Widget/OpenGL.h @@ -11,7 +11,6 @@ class OpenGL : public MwOO::Base { void MakeCurrent(void); void* GetProcAddress(const char* name); void SwapBuffer(void); - void SetColor(MwLLColor color); void SetBackground(const char* value); const char* GetBackground(void); void SetForeground(const char* value); diff --git a/oosrc/deps.mk b/oosrc/deps.mk index e6fc702..df1e953 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 oosrc/widget/entry.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/entry.o oosrc/widget/numberentry.o diff --git a/oosrc/widget/numberentry.cc b/oosrc/widget/numberentry.cc new file mode 100644 index 0000000..adac585 --- /dev/null +++ b/oosrc/widget/numberentry.cc @@ -0,0 +1,31 @@ +/* $Id$ */ +#include +#include + +MwOO::NumberEntry::NumberEntry(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwNumberEntryClass, widget_name, parent, x, y, w, h){ +} + +void MwOO::NumberEntry::SetText(const char* value){ + MwSetText(this->widget, MwNtext, value); +} + +const char* MwOO::NumberEntry::GetText(void){ + return MwGetText(this->widget, MwNtext); +} + +void MwOO::NumberEntry::SetBackground(const char* value){ + MwSetText(this->widget, MwNbackground, value); +} + +const char* MwOO::NumberEntry::GetBackground(void){ + return MwGetText(this->widget, MwNbackground); +} + +void MwOO::NumberEntry::SetForeground(const char* value){ + MwSetText(this->widget, MwNforeground, value); +} + +const char* MwOO::NumberEntry::GetForeground(void){ + return MwGetText(this->widget, MwNforeground); +} + diff --git a/oosrc/widget/opengl.cc b/oosrc/widget/opengl.cc index 5c6634a..78c6cc2 100644 --- a/oosrc/widget/opengl.cc +++ b/oosrc/widget/opengl.cc @@ -14,9 +14,6 @@ void* MwOO::OpenGL::GetProcAddress(const char* name){ void MwOO::OpenGL::SwapBuffer(void){ MwOpenGLSwapBuffer(this->widget); } -void MwOO::OpenGL::SetColor(MwLLColor color){ - MwOpenGLSetColor(this->widget, color); -} void MwOO::OpenGL::SetBackground(const char* value){ MwSetText(this->widget, MwNbackground, value); } diff --git a/src/widget/entry.c b/src/widget/entry.c index 5be17e2..46cf749 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -1,12 +1,8 @@ /* $Id$ */ #include -typedef struct text { - int cursor; -} text_t; - static int create(MwWidget handle) { - text_t* t = malloc(sizeof(*t)); + MwEntry t = malloc(sizeof(*t)); t->cursor = 0; handle->internal = t; @@ -24,7 +20,7 @@ static void destroy(MwWidget handle) { static void draw(MwWidget handle) { MwRect r; - text_t* t = handle->internal; + MwEntry t = handle->internal; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); const char* str = MwGetText(handle, MwNtext); @@ -79,7 +75,7 @@ static void draw(MwWidget handle) { } static void key(MwWidget handle, int code) { - text_t* t = handle->internal; + MwEntry t = handle->internal; const char* str = MwGetText(handle, MwNtext); char* out; if(str == NULL) str = ""; diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c new file mode 100644 index 0000000..b3a78c6 --- /dev/null +++ b/src/widget/numberentry.c @@ -0,0 +1,40 @@ +/* $Id$ */ +#include + +static int create(MwWidget handle) { + int st; + + if((st = MwEntryClass->create(handle)) != 0) return st; + + return 0; +} + +static void destroy(MwWidget handle) { + MwEntryClass->destroy(handle); +} + +static void draw(MwWidget handle) { + MwEntryClass->draw(handle); +} + +static void key(MwWidget handle, int code) { + MwEntryClass->key(handle, code); +} + +MwClassRec MwNumberEntryClassRec = { + create, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + MwForceRender, /* mouse_up */ + MwForceRender, /* mouse_down */ + key, /* key */ + NULL, + NULL, + NULL, + NULL, + NULL}; +MwClass MwNumberEntryClass = &MwNumberEntryClassRec;