work on viewport

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@274 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-11 14:33:56 +00:00
parent 028cf2e288
commit bf78a98ac2
19 changed files with 174 additions and 13 deletions

View File

@@ -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 src/color.o src/messagebox.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 src/widget/numberentry.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/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

View File

@@ -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\color.obj src\messagebox.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\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.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
OBJS = 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\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\widget\viewport.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.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\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\viewport.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

View File

@@ -5,8 +5,8 @@ CXX = wpp386
CFLAGS = -q -d_MILSKO -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -i=$(WATCOM)/h/nt -i=include
CXXFLAGS = -q -i=include -i=$(WATCOM)/h/nt
OBJS = 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/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/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/question.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
OBJS = 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/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/widget/viewport.obj src/external/ds.obj src/external/image.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.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/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/viewport.obj oosrc/widget/label.obj oosrc/widget/entry.obj oosrc/widget/numberentry.obj
all: src/Mw.dll oosrc/MwOO.dll
@@ -33,6 +33,7 @@ clean: .SYMBOLIC
%erase src/widget/checkbox.obj
%erase src/widget/label.obj
%erase src/widget/numberentry.obj
%erase src/widget/viewport.obj
%erase src/external/ds.obj
%erase src/external/image.obj
%erase src/cursor/default.obj
@@ -55,6 +56,7 @@ clean: .SYMBOLIC
%erase oosrc/widget/submenu.obj
%erase oosrc/widget/window.obj
%erase oosrc/widget/checkbox.obj
%erase oosrc/widget/viewport.obj
%erase oosrc/widget/label.obj
%erase oosrc/widget/entry.obj
%erase oosrc/widget/numberentry.obj
@@ -78,6 +80,7 @@ oosrc/MwOO.dll: $(OOOBJS) src/Mw.dll
%write MwOO.lnk file oosrc/widget/submenu.obj
%write MwOO.lnk file oosrc/widget/window.obj
%write MwOO.lnk file oosrc/widget/checkbox.obj
%write MwOO.lnk file oosrc/widget/viewport.obj
%write MwOO.lnk file oosrc/widget/label.obj
%write MwOO.lnk file oosrc/widget/entry.obj
%write MwOO.lnk file oosrc/widget/numberentry.obj
@@ -109,6 +112,7 @@ src/Mw.dll: $(OBJS)
%write Mw.lnk file src/widget/checkbox.obj
%write Mw.lnk file src/widget/label.obj
%write Mw.lnk file src/widget/numberentry.obj
%write Mw.lnk file src/widget/viewport.obj
%write Mw.lnk file src/external/ds.obj
%write Mw.lnk file src/external/image.obj
%write Mw.lnk file src/cursor/default.obj
@@ -167,6 +171,8 @@ src/widget/label.obj: src/widget/label.c
$(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/label.c
src/widget/numberentry.obj: src/widget/numberentry.c
$(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/numberentry.c
src/widget/viewport.obj: src/widget/viewport.c
$(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/viewport.c
src/external/ds.obj: src/external/ds.c
$(CC) $(CFLAGS) -bt=nt -fo=$@ src/external/ds.c
src/external/image.obj: src/external/image.c
@@ -211,6 +217,8 @@ oosrc/widget/window.obj: oosrc/widget/window.cc
$(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/window.cc
oosrc/widget/checkbox.obj: oosrc/widget/checkbox.cc
$(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/checkbox.cc
oosrc/widget/viewport.obj: oosrc/widget/viewport.cc
$(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/viewport.cc
oosrc/widget/label.obj: oosrc/widget/label.cc
$(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/label.cc
oosrc/widget/entry.obj: oosrc/widget/entry.cc

View File

@@ -392,6 +392,12 @@
<dd>
<a href="#Mw_Widget_SubMenu_h__MwSubMenuClass">MwSubMenuClass</a>
</dd>
<dt>
<a href="#Mw_Widget_Viewport_h">Mw/Widget/Viewport.h</a>
</dt>
<dd>
<a href="#Mw_Widget_Viewport_h__MwViewportClass">MwViewportClass</a>
</dd>
<dt>
<a href="#Mw_Widget_Vulkan_h">Mw/Widget/Vulkan.h</a>
</dt>
@@ -2498,6 +2504,20 @@
</dd>
</dl>
<hr>
<h2 align="center" id="Mw_Widget_Viewport_h">Mw/Widget/Viewport.h</h2>
<dl>
<dt>
Viewport widget.
</dt>
</dl>
<hr>
<pre id="Mw_Widget_Viewport_h__MwViewportClass">MWDECL MwClass MwViewportClass;</pre>
<dl>
<dd>
Viewport widget class.
</dd>
</dl>
<hr>
<h2 align="center" id="Mw_Widget_Vulkan_h">Mw/Widget/Vulkan.h</h2>
<dl>
<dt>

View File

@@ -32,5 +32,6 @@
#include <Mw/Widget/Entry.h>
#include <Mw/Widget/ScrollBar.h>
#include <Mw/Widget/NumberEntry.h>
#include <Mw/Widget/Viewport.h>
#endif

View File

@@ -0,0 +1,27 @@
/* $Id$ */
/*!
* %file Mw/Widget/Viewport.h
* %brief Viewport widget
*/
#ifndef __MW_WIDGET_VIEWPORT_H__
#define __MW_WIDGET_VIEWPORT_H__
#include <Mw/MachDep.h>
#include <Mw/TypeDefs.h>
#ifdef __cplusplus
extern "C" {
#endif
/*!
* %brief Viewport widget class
*/
MWDECL MwClass MwViewportClass;
MWDECL MwWidget MwViewportGetViewport(MwWidget widget);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -16,7 +16,6 @@ class Base {
private:
int can_be_gc;
void SetHandler(void);
Base(MwWidget widget, int gc = 0);
public:
MwOO::Base MessageBox(const char* title, const char* text, unsigned int flags);
@@ -44,6 +43,7 @@ class Base {
/* END AUTOGENERATE */
Base(MwClass widget_class, const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
Base(MwWidget widget, int gc = 0);
~Base(void);
};
} // namespace MwOO

View File

@@ -0,0 +1,19 @@
/* $Id$ */
#ifndef __MWOO_WIDGET_VIEWPORT_H__
#define __MWOO_WIDGET_VIEWPORT_H__
#include <MwOO/Base.h>
namespace MwOO {
class Viewport : public MwOO::Base {
public:
Viewport(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h);
MwOO::Base GetViewport(void);
void SetBackground(const char* value);
const char* GetBackground(void);
void SetForeground(const char* value);
const char* GetForeground(void);
};
} // namespace MwOO
#endif

View File

@@ -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/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

26
oosrc/widget/viewport.cc Normal file
View File

@@ -0,0 +1,26 @@
/* $Id$ */
#include <MwOO/Widget/Viewport.h>
#include <Mw/Widget/Viewport.h>
MwOO::Viewport::Viewport(const char* widget_name, MwOO::Base* parent, int x, int y, int w, int h) : MwOO::Base(MwViewportClass, widget_name, parent, x, y, w, h){
}
MwOO::Base MwOO::Viewport::GetViewport(void){
return MwOO::Base(MwViewportGetViewport(this->widget));
}
void MwOO::Viewport::SetBackground(const char* value){
MwSetText(this->widget, MwNbackground, value);
}
const char* MwOO::Viewport::GetBackground(void){
return MwGetText(this->widget, MwNbackground);
}
void MwOO::Viewport::SetForeground(const char* value){
MwSetText(this->widget, MwNforeground, value);
}
const char* MwOO::Viewport::GetForeground(void){
return MwGetText(this->widget, MwNforeground);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 498 B

View File

@@ -16,8 +16,6 @@ static void draw(MwWidget handle) {
r.width = MwGetInteger(handle, MwNwidth);
r.height = MwGetInteger(handle, MwNheight);
MwDrawFrameEx(handle, &r, base, 1, 1);
MwDrawFrameEx(handle, &r, base, 0, 1);
MwDrawRect(handle, &r, base);
MwLLFreeColor(base);

43
src/widget/viewport.c Normal file
View File

@@ -0,0 +1,43 @@
/* $Id$ */
#include <Mw/Milsko.h>
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);
MwDrawRect(handle, &r, base);
MwLLFreeColor(base);
}
MwWidget MwViewportGetViewport(MwWidget widget) {
}
MwClassRec MwViewportClassRec = {
create, /* create */
NULL, /* destroy */
draw, /* draw */
NULL, /* click */
NULL, /* parent_resize */
NULL, /* prop_change */
NULL, /* mouse_move */
NULL, /* mouse_up */
NULL, /* mouse_down */
NULL, /* key */
NULL,
NULL,
NULL,
NULL,
NULL};
MwClass MwViewportClass = &MwViewportClassRec;

View File

@@ -103,8 +103,15 @@ foreach my $f (@files) {
);
foreach my $m (@methods) {
if ($m =~ /^MwWidget[ \t]+/) {
my $l = $m;
$l =~ s/^MwWidget([ \t]+)/MwOO::Base\1/g;
print(OUT " $l;\n");
}
else {
print(OUT " $m;\n");
}
}
foreach my $prop (@props) {
my $type = "";
@@ -145,18 +152,30 @@ foreach my $f (@files) {
my $i = 0;
foreach my $m (@omethods) {
my $end = "";
if ($m =~ /^MwWidget[ \t]+/) {
my $l = $m;
$l =~ s/^MwWidget([ \t]+)/MwOO::Base\1/;
print(OUT "$l\{\n");
}
else {
print(OUT "$m\{\n");
}
if ($m =~ /^void[ \t]+/) {
print(OUT " Mw${name}" . $names[$i]);
}
elsif ($m =~ /^MwWidget[ \t]+/) {
print(OUT " return MwOO::Base(Mw${name}" . $names[$i]);
$end = ")";
}
else {
print(OUT " return Mw${name}" . $names[$i]);
}
if ($args[$i] eq "void") {
print(OUT "(this->widget);\n");
print(OUT "(this->widget)$end;\n");
}
else {
print(OUT "(this->widget, " . $args[$i] . ");\n");
print(OUT "(this->widget, " . $args[$i] . ")$end;\n");
}
print(OUT "}\n");
$i++;