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.
+
+
+
-
@@ -1951,28 +2007,6 @@
-MWDECL void MwOpenGLSetColor (
- MwWidget handle,
- MwLLColor color
-);
-
--
- Set color using glColor3f.
-
--
- Parameter
handle
-
--
- Widget.
-
--
- Parameter
color
-
--
- Color.
-
-
-
-
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;