From c6e267a2b7980e5a135aeeb8742e7f4d1a46c485 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 14 Oct 2025 14:39:40 +0000 Subject: [PATCH] work on listbox git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@327 b9cfdab3-6d41-4d17-bbe4-086880011989 --- BorMakefile | 12 ++++---- GNUmakefile | 2 +- NTMakefile | 12 ++++---- WatMakefile | 20 ++++++------- doc/index.html | 20 +++++++++++++ examples/viewport.c | 2 +- include/Mw/Milsko.h | 1 + include/Mw/TypeDefs.h | 8 +++++ include/Mw/Widget/ListBox.h | 25 ++++++++++++++++ include/MwOO/Base.h | 11 ------- include/MwOO/Widget/ListBox.h | 18 +++++++++++ oosrc/base.cc | 55 ---------------------------------- oosrc/deps.mk | 2 +- oosrc/widget/listbox.cc | 23 ++++++++++++++ resource/icon/error.png | Bin 663 -> 663 bytes resource/icon/info.png | Bin 434 -> 434 bytes resource/icon/news.png | Bin 542 -> 542 bytes resource/icon/note.png | Bin 594 -> 594 bytes resource/icon/question.png | Bin 529 -> 529 bytes resource/icon/warning.png | Bin 498 -> 498 bytes src/widget/listbox.c | 40 +++++++++++++++++++++++++ src/widget/viewport.c | 49 ++++++++++++++---------------- 22 files changed, 183 insertions(+), 117 deletions(-) create mode 100644 include/Mw/Widget/ListBox.h create mode 100644 include/MwOO/Widget/ListBox.h create mode 100644 oosrc/widget/listbox.cc create mode 100644 src/widget/listbox.c diff --git a/BorMakefile b/BorMakefile index 90d7e3c..83fde18 100644 --- a/BorMakefile +++ b/BorMakefile @@ -19,8 +19,6 @@ clean: del /f /q src\color.obj del /f /q src\messagebox.obj del /f /q src\boldfont.obj - del /f /q src\external\ds.obj - del /f /q src\external\image.obj del /f /q src\icon\info.obj del /f /q src\icon\note.obj del /f /q src\icon\warning.obj @@ -42,6 +40,7 @@ clean: del /f /q src\widget\scrollbar.obj del /f /q src\widget\checkbox.obj del /f /q src\widget\label.obj + del /f /q src\widget\listbox.obj del /f /q src\widget\numberentry.obj del /f /q src\backend\gdi.obj del /f /q oosrc\base.obj @@ -55,18 +54,19 @@ clean: del /f /q oosrc\widget\window.obj del /f /q oosrc\widget\checkbox.obj del /f /q oosrc\widget\viewport.obj + del /f /q oosrc\widget\listbox.obj del /f /q oosrc\widget\label.obj del /f /q oosrc\widget\entry.obj del /f /q oosrc\widget\numberentry.obj del /f /q src\Mw.dll del /f /q oosrc\MwOO.dll -src\Mw.dll: src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\external\ds.obj src\external\image.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\backend\gdi.obj - $(LD) $(LDFLAGS) -e$@ src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\external\ds.obj src\external\image.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib +src\Mw.dll: src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\backend\gdi.obj + $(LD) $(LDFLAGS) -e$@ src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib implib src\Mw.lib src\Mw.dll -oosrc\MwOO.dll: 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\viewport.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj - $(LD) $(LDFLAGS) -e$@ 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\viewport.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj -lsrc\Mw.lib +oosrc\MwOO.dll: 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\viewport.obj oosrc\widget\listbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj + $(LD) $(LDFLAGS) -e$@ 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\viewport.obj oosrc\widget\listbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj -lsrc\Mw.lib implib oosrc\MwOO.lib oosrc\MwOO.dll .c.obj: diff --git a/GNUmakefile b/GNUmakefile index a98e4bc..3061ce0 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -32,7 +32,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 src/color.o src/messagebox.o L_OBJS += external/ds.o 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 src/widget/numberentry.o src/widget/viewport.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 src/widget/viewport.o src/widget/listbox.o L_OBJS += src/cursor/default.o src/cursor/cross.o src/cursor/text.o L_OBJS += src/icon/question.o src/icon/warning.o src/icon/note.o src/icon/info.o src/icon/news.o src/icon/error.o diff --git a/NTMakefile b/NTMakefile index 26ef2ae..aac722a 100644 --- a/NTMakefile +++ b/NTMakefile @@ -19,8 +19,6 @@ clean: del /f /q src\color.obj del /f /q src\messagebox.obj del /f /q src\boldfont.obj - del /f /q src\external\ds.obj - del /f /q src\external\image.obj del /f /q src\icon\info.obj del /f /q src\icon\note.obj del /f /q src\icon\warning.obj @@ -42,6 +40,7 @@ clean: del /f /q src\widget\scrollbar.obj del /f /q src\widget\checkbox.obj del /f /q src\widget\label.obj + del /f /q src\widget\listbox.obj del /f /q src\widget\numberentry.obj del /f /q src\backend\gdi.obj del /f /q oosrc\base.obj @@ -55,18 +54,19 @@ clean: del /f /q oosrc\widget\window.obj del /f /q oosrc\widget\checkbox.obj del /f /q oosrc\widget\viewport.obj + del /f /q oosrc\widget\listbox.obj del /f /q oosrc\widget\label.obj del /f /q oosrc\widget\entry.obj del /f /q oosrc\widget\numberentry.obj del /f /q src\Mw.dll del /f /q oosrc\MwOO.dll -src\Mw.dll: src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\external\ds.obj src\external\image.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\backend\gdi.obj - $(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\external\ds.obj src\external\image.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib +src\Mw.dll: src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\backend\gdi.obj + $(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib -oosrc\MwOO.dll: 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\viewport.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj - $(LD) $(LDFLAGS) /OUT:$@ 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\viewport.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj src\Mw.lib +oosrc\MwOO.dll: 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\viewport.obj oosrc\widget\listbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj + $(LD) $(LDFLAGS) /OUT:$@ 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\viewport.obj oosrc\widget\listbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj src\Mw.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index eb43d39..7644d7a 100644 --- a/WatMakefile +++ b/WatMakefile @@ -18,8 +18,6 @@ clean: .SYMBOLIC %erase src/color.obj %erase src/messagebox.obj %erase src/boldfont.obj - %erase src/external/ds.obj - %erase src/external/image.obj %erase src/icon/info.obj %erase src/icon/note.obj %erase src/icon/warning.obj @@ -41,6 +39,7 @@ clean: .SYMBOLIC %erase src/widget/scrollbar.obj %erase src/widget/checkbox.obj %erase src/widget/label.obj + %erase src/widget/listbox.obj %erase src/widget/numberentry.obj %erase src/backend/gdi.obj %erase oosrc/base.obj @@ -54,18 +53,19 @@ clean: .SYMBOLIC %erase oosrc/widget/window.obj %erase oosrc/widget/checkbox.obj %erase oosrc/widget/viewport.obj + %erase oosrc/widget/listbox.obj %erase oosrc/widget/label.obj %erase oosrc/widget/entry.obj %erase oosrc/widget/numberentry.obj %erase src/Mw.dll %erase oosrc/MwOO.dll -src/Mw.dll: src/core.obj src/draw.obj src/default.obj src/lowlevel.obj src/error.obj src/unicode.obj src/font.obj src/color.obj src/messagebox.obj src/boldfont.obj src/external/ds.obj src/external/image.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/question.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.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/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/numberentry.obj src/backend/gdi.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/draw.obj file src/default.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/font.obj file src/color.obj file src/messagebox.obj file src/boldfont.obj file src/external/ds.obj file src/external/image.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/question.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/numberentry.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib +src/Mw.dll: src/core.obj src/draw.obj src/default.obj src/lowlevel.obj src/error.obj src/unicode.obj src/font.obj src/color.obj src/messagebox.obj src/boldfont.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/question.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.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/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/listbox.obj src/widget/numberentry.obj src/backend/gdi.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/draw.obj file src/default.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/font.obj file src/color.obj file src/messagebox.obj file src/boldfont.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/question.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/numberentry.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib -oosrc/MwOO.dll: 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/viewport.obj oosrc/widget/label.obj oosrc/widget/entry.obj oosrc/widget/numberentry.obj - $(LD) $(LDFLAGS) option implib=oosrc/MwOO.lib name $@ file oosrc/base.obj file oosrc/widget/button.obj file oosrc/widget/frame.obj file oosrc/widget/image.obj file oosrc/widget/menu.obj file oosrc/widget/opengl.obj file oosrc/widget/scrollbar.obj file oosrc/widget/submenu.obj file oosrc/widget/window.obj file oosrc/widget/checkbox.obj file oosrc/widget/viewport.obj file oosrc/widget/label.obj file oosrc/widget/entry.obj file oosrc/widget/numberentry.obj library clib3r.lib library src/Mw.lib +oosrc/MwOO.dll: 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/viewport.obj oosrc/widget/listbox.obj oosrc/widget/label.obj oosrc/widget/entry.obj oosrc/widget/numberentry.obj + $(LD) $(LDFLAGS) option implib=oosrc/MwOO.lib name $@ file oosrc/base.obj file oosrc/widget/button.obj file oosrc/widget/frame.obj file oosrc/widget/image.obj file oosrc/widget/menu.obj file oosrc/widget/opengl.obj file oosrc/widget/scrollbar.obj file oosrc/widget/submenu.obj file oosrc/widget/window.obj file oosrc/widget/checkbox.obj file oosrc/widget/viewport.obj file oosrc/widget/listbox.obj file oosrc/widget/label.obj file oosrc/widget/entry.obj file oosrc/widget/numberentry.obj library clib3r.lib library src/Mw.lib @@ -89,10 +89,6 @@ src/messagebox.obj: src/messagebox.c $(CC) $(CFLAGS) -fo=$@ $< src/boldfont.obj: src/boldfont.c $(CC) $(CFLAGS) -fo=$@ $< -src/external/ds.obj: src/external/ds.c - $(CC) $(CFLAGS) -fo=$@ $< -src/external/image.obj: src/external/image.c - $(CC) $(CFLAGS) -fo=$@ $< src/icon/info.obj: src/icon/info.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/note.obj: src/icon/note.c @@ -135,6 +131,8 @@ src/widget/checkbox.obj: src/widget/checkbox.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/label.obj: src/widget/label.c $(CC) $(CFLAGS) -fo=$@ $< +src/widget/listbox.obj: src/widget/listbox.c + $(CC) $(CFLAGS) -fo=$@ $< src/widget/numberentry.obj: src/widget/numberentry.c $(CC) $(CFLAGS) -fo=$@ $< src/backend/gdi.obj: src/backend/gdi.c @@ -161,6 +159,8 @@ oosrc/widget/checkbox.obj: oosrc/widget/checkbox.cc $(CXX) $(CXXFLAGS) -fo=$@ $< oosrc/widget/viewport.obj: oosrc/widget/viewport.cc $(CXX) $(CXXFLAGS) -fo=$@ $< +oosrc/widget/listbox.obj: oosrc/widget/listbox.cc + $(CXX) $(CXXFLAGS) -fo=$@ $< oosrc/widget/label.obj: oosrc/widget/label.cc $(CXX) $(CXXFLAGS) -fo=$@ $< oosrc/widget/entry.obj: oosrc/widget/entry.cc diff --git a/doc/index.html b/doc/index.html index b1850a7..d70f40d 100644 --- a/doc/index.html +++ b/doc/index.html @@ -329,6 +329,12 @@
MwLabelClass
+
+ Mw/Widget/ListBox.h +
+
+ MwListBoxClass +
Mw/Widget/Menu.h
@@ -2269,6 +2275,20 @@
+

Mw/Widget/ListBox.h

+
+
+ ListBox widget. +
+
+
+
MWDECL MwClass MwListBoxClass;
+
+
+ ListBox widget class. +
+
+

Mw/Widget/Menu.h

diff --git a/examples/viewport.c b/examples/viewport.c index d92eec6..4bdfb47 100644 --- a/examples/viewport.c +++ b/examples/viewport.c @@ -18,7 +18,7 @@ int main() { vp = MwCreateWidget(MwViewportClass, "vp", w, 5, 5, 630, 470); - MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 5, 5, 1024, 1024, + MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, MwNpixmap, MwLoadImage(vp, "examples/picture.png"), NULL); MwViewportSetSize(vp, 1024, 1024); diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index e8e3bd6..1c91cce 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -33,5 +33,6 @@ #include #include #include +#include #endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 144db72..b18a5da 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -19,6 +19,7 @@ typedef struct _MwFont MwFont; typedef struct _MwMenu* MwMenu; typedef struct _MwCursor MwCursor; typedef struct _MwEntry* MwEntry; +typedef struct _MwViewport* MwViewport; typedef struct _MwSizeHints MwSizeHints; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; @@ -110,6 +111,13 @@ struct _MwEntry { MwPoint mouse; }; +struct _MwViewport { + MwWidget vscroll; + MwWidget hscroll; + MwWidget frame; + MwWidget inframe; +}; + struct _MwSizeHints { int min_width; int min_height; diff --git a/include/Mw/Widget/ListBox.h b/include/Mw/Widget/ListBox.h new file mode 100644 index 0000000..18d619e --- /dev/null +++ b/include/Mw/Widget/ListBox.h @@ -0,0 +1,25 @@ +/* $Id$ */ +/*! + * %file Mw/Widget/ListBox.h + * %brief ListBox widget + */ +#ifndef __MW_WIDGET_LISTBOX_H__ +#define __MW_WIDGET_LISTBOX_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * %brief ListBox widget class + */ +MWDECL MwClass MwListBoxClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/MwOO/Base.h b/include/MwOO/Base.h index f5302d6..d03e4d6 100644 --- a/include/MwOO/Base.h +++ b/include/MwOO/Base.h @@ -30,17 +30,6 @@ class Base { int GetWidth(void); int GetHeight(void); /* BEGIN AUTOGENERATE */ - virtual void OnActivate(void*) {}; - virtual void OnResize(void*) {}; - virtual void OnTick(void*) {}; - virtual void OnMenu(void*) {}; - virtual void OnMouseDownHandler(void*) {}; - virtual void OnMouseUpHandler(void*) {}; - virtual void OnMouseMoveHandler(void*) {}; - virtual void OnChangedHandler(void*) {}; - virtual void OnKeyHandler(void*) {}; - virtual void OnKeyReleaseHandler(void*) {}; - virtual void OnCloseHandler(void*) {}; /* END AUTOGENERATE */ diff --git a/include/MwOO/Widget/ListBox.h b/include/MwOO/Widget/ListBox.h new file mode 100644 index 0000000..6572190 --- /dev/null +++ b/include/MwOO/Widget/ListBox.h @@ -0,0 +1,18 @@ +/* $Id$ */ +#ifndef __MWOO_WIDGET_LISTBOX_H__ +#define __MWOO_WIDGET_LISTBOX_H__ + +#include + +namespace MwOO { +class ListBox : public MwOO::Base { + public: + ListBox(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h); + void SetBackground(const char* value); + const char* GetBackground(void); + void SetForeground(const char* value); + const char* GetForeground(void); +}; +} // namespace MwOO + +#endif diff --git a/oosrc/base.cc b/oosrc/base.cc index d213613..0253268 100644 --- a/oosrc/base.cc +++ b/oosrc/base.cc @@ -68,62 +68,7 @@ int MwOO::Base::GetHeight(void){ } /* BEGIN AUTOGENERATE */ -static void __OnActivate(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnActivate(call); -} -static void __OnResize(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnResize(call); -} -static void __OnTick(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnTick(call); -} -static void __OnMenu(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnMenu(call); -} -static void __OnMouseDownHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnMouseDownHandler(call); -} -static void __OnMouseUpHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnMouseUpHandler(call); -} -static void __OnMouseMoveHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnMouseMoveHandler(call); -} -static void __OnChangedHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnChangedHandler(call); -} -static void __OnKeyHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnKeyHandler(call); -} -static void __OnKeyReleaseHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnKeyReleaseHandler(call); -} -static void __OnCloseHandler(MwWidget widget, void* user, void* call){ - MwOO::Base* c = (MwOO::Base*)user; - (void)widget; c->OnCloseHandler(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); - MwAddUserHandler(this->widget, MwNmouseMoveHandler, __OnMouseMoveHandler, this); - MwAddUserHandler(this->widget, MwNchangedHandler, __OnChangedHandler, this); - MwAddUserHandler(this->widget, MwNkeyHandler, __OnKeyHandler, this); - MwAddUserHandler(this->widget, MwNkeyReleaseHandler, __OnKeyReleaseHandler, this); - MwAddUserHandler(this->widget, MwNcloseHandler, __OnCloseHandler, this); } /* END AUTOGENERATE */ diff --git a/oosrc/deps.mk b/oosrc/deps.mk index a4a7ebb..e114134 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 oosrc/widget/viewport.o oosrc/widget/numberentry.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/viewport.o oosrc/widget/numberentry.o oosrc/widget/listbox.o diff --git a/oosrc/widget/listbox.cc b/oosrc/widget/listbox.cc new file mode 100644 index 0000000..4a09e4a --- /dev/null +++ b/oosrc/widget/listbox.cc @@ -0,0 +1,23 @@ +/* $Id$ */ +#include +#include + +MwOO::ListBox::ListBox(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwListBoxClass, widget_name, parent, x, y, w, h){ +} + +void MwOO::ListBox::SetBackground(const char* value){ + MwSetText(this->widget, MwNbackground, value); +} + +const char* MwOO::ListBox::GetBackground(void){ + return MwGetText(this->widget, MwNbackground); +} + +void MwOO::ListBox::SetForeground(const char* value){ + MwSetText(this->widget, MwNforeground, value); +} + +const char* MwOO::ListBox::GetForeground(void){ + return MwGetText(this->widget, MwNforeground); +} + diff --git a/resource/icon/error.png b/resource/icon/error.png index 7ef3ff2cd8c12bdba4e3ae2689b137380c357130..70f0b855a77a096395fa3abfabb3ef86711db6b7 100644 GIT binary patch delta 52 zcmbQvI-PaGG!8yKb#}?~ty?zEyUD0v5@Kj#Wo&6>V6JUoU}a#i%G;-m0SG)@{an^L HB{Ts5pkxmn delta 52 zcmbQvI-PaGG!9-iIhILJmOt7!?q4bo*UW-mdKI;Vst E0G%NZ5dZ)H diff --git a/resource/icon/news.png b/resource/icon/news.png index 8d5eb4abf1fd0924e90572b17132636dbbedbbac..dc2a88d1fdd581ca63e60384bea2e768ebdfb94b 100644 GIT binary patch delta 52 zcmbQoGLL1#1P(qvb&k%08LAs+q%kU(gczDw8CzNzSZEszmvv4F FO#rU74{ZPd diff --git a/resource/icon/note.png b/resource/icon/note.png index f63620122c7ca67bdb3b9b823f36aaf506f857a6..1124f8e1e0502839058311b213170ca3125d0277 100644 GIT binary patch delta 52 zcmcb_a*1WaG!8yKb&k%08LAuSO<`0p2{AOWGPblbu+TOzure@+VYZpi00f?{elF{r G5}E*)G!A9} delta 52 zcmcb_a*1WaG!9-iIhILJmOt7!ZwjM=afpGLm9c@9fr+*OkTgh_xtPfS1fH&bF6*2U FngGkG5Dx$V diff --git a/resource/icon/question.png b/resource/icon/question.png index 2599ac2682f18bf50c3e541cd1681054c1b4777e..407405b918944a0585a313959807280041bc26a7 100644 GIT binary patch delta 52 zcmbQpGLdD%1P(qvb&k%08LAs+L^3LvgczDw8CzNzSZEs delta 52 zcmbQpGLdD%1P)#{IhILJmOt7!Ba%_UIK;rr%Gkilz(m^sNE)QeT+Czu0#8>zmvv4F FO#r9B4@Lk0 diff --git a/resource/icon/warning.png b/resource/icon/warning.png index d1ebad9484e535dbb7782f069691995a6781d2e3..b9beb3467a52f6496aabadb909df3bf38de83431 100644 GIT binary patch delta 52 zcmeyw{E2zO1P(qvb&k%08LAs+STQP?gczDw8CzNzSZEszmvv4F FO#sQo59a^? diff --git a/src/widget/listbox.c b/src/widget/listbox.c new file mode 100644 index 0000000..82fa510 --- /dev/null +++ b/src/widget/listbox.c @@ -0,0 +1,40 @@ +/* $Id$ */ +#include + +static int create(MwWidget handle) { + int st; + + if((st = MwViewportClass->create(handle)) != 0) return st; + + return 0; +} + +static void destroy(MwWidget handle) { + MwViewportClass->destroy(handle); +} + +static void draw(MwWidget handle) { + MwViewportClass->draw(handle); +} + +static void prop_change(MwWidget handle, const char* prop) { + MwViewportClass->prop_change(handle, prop); +} + +MwClassRec MwListBoxClassRec = { + create, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + NULL, + NULL, + NULL, + NULL, + NULL}; +MwClass MwListBoxClass = &MwListBoxClassRec; diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 7279bb6..6d368cc 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -1,19 +1,12 @@ /* $Id$ */ #include -typedef struct viewport { - MwWidget vscroll; - MwWidget hscroll; - MwWidget frame; - MwWidget inframe; -} viewport_t; - static void vscroll_changed(MwWidget handle, void* user, void* call) { - viewport_t* vp = user; - int v = MwGetInteger(handle, MwNvalue); - int mv = MwGetInteger(handle, MwNmaxValue); - int l = MwGetInteger(vp->frame, MwNheight); - v = (mv - l) * (double)v / mv; + MwViewport vp = user; + int v = MwGetInteger(handle, MwNvalue); + int mv = MwGetInteger(handle, MwNmaxValue); + int l = MwGetInteger(vp->frame, MwNheight); + v = (mv - l) * (double)v / mv; (void)call; if(v < 0) v = 0; MwVaApply(vp->inframe, @@ -22,11 +15,11 @@ static void vscroll_changed(MwWidget handle, void* user, void* call) { } static void hscroll_changed(MwWidget handle, void* user, void* call) { - viewport_t* vp = user; - int v = MwGetInteger(handle, MwNvalue); - int mv = MwGetInteger(handle, MwNmaxValue); - int l = MwGetInteger(vp->frame, MwNwidth); - v = (mv - l) * (double)v / mv; + MwViewport vp = user; + int v = MwGetInteger(handle, MwNvalue); + int mv = MwGetInteger(handle, MwNmaxValue); + int l = MwGetInteger(vp->frame, MwNwidth); + v = (mv - l) * (double)v / mv; (void)call; if(v < 0) v = 0; MwVaApply(vp->inframe, @@ -35,11 +28,11 @@ static void hscroll_changed(MwWidget handle, void* user, void* call) { } static void resize(MwWidget handle) { - viewport_t* vp = handle->internal; - int w = MwGetInteger(handle, MwNwidth); - int h = MwGetInteger(handle, MwNheight); - int iw; - int ih; + MwViewport vp = handle->internal; + int w = MwGetInteger(handle, MwNwidth); + int h = MwGetInteger(handle, MwNheight); + int iw; + int ih; if(vp->vscroll == NULL) { vp->vscroll = MwVaCreateWidget(MwScrollBarClass, "vscroll", handle, w - 16, 0, 16, h - 16, NULL); MwAddUserHandler(vp->vscroll, MwNchangedHandler, vscroll_changed, vp); @@ -91,7 +84,7 @@ static void resize(MwWidget handle) { } static int create(MwWidget handle) { - viewport_t* vp = malloc(sizeof(*vp)); + MwViewport vp = malloc(sizeof(*vp)); memset(vp, 0, sizeof(*vp)); handle->internal = vp; @@ -103,6 +96,10 @@ static int create(MwWidget handle) { return 0; } +static void destroy(MwWidget handle) { + free(handle->internal); +} + static void draw(MwWidget handle) { MwRect r; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); @@ -123,7 +120,7 @@ static void prop_change(MwWidget handle, const char* prop) { MwClassRec MwViewportClassRec = { create, /* create */ - NULL, /* destroy */ + destroy, /* destroy */ draw, /* draw */ NULL, /* click */ NULL, /* parent_resize */ @@ -140,13 +137,13 @@ MwClassRec MwViewportClassRec = { MwClass MwViewportClass = &MwViewportClassRec; MwWidget MwViewportGetViewport(MwWidget handle) { - viewport_t* vp = handle->internal; + MwViewport vp = handle->internal; return vp->inframe; } void MwViewportSetSize(MwWidget handle, int w, int h) { - viewport_t* vp = handle->internal; + MwViewport vp = handle->internal; MwVaApply(vp->inframe, MwNwidth, w,