Compare commits

...

8 Commits

Author SHA1 Message Date
NishiOwO
3e4001e4f1 more proper term 2025-12-15 15:41:19 +09:00
NishiOwO
02c21233ae use more proper term 2025-12-15 15:27:04 +09:00
NishiOwO
a5cd1974e4 add MwNouterPadding 2025-12-15 15:05:36 +09:00
NishiOwO
a1ce1b56e4 fix prop and add MwNfixedSize 2025-12-15 14:30:59 +09:00
NishiOwO
1a95ddce94 oops 2025-12-15 14:13:55 +09:00
NishiOwO
50f11b1c69 introduce box widget 2025-12-15 14:09:30 +09:00
NishiOwO
5003d29246 wtf 2025-12-15 12:26:15 +09:00
NishiOwO
1853cd1e7f fix 2025-12-15 11:42:09 +09:00
48 changed files with 1169 additions and 797 deletions

5
BorMakefile generated
View File

@@ -51,6 +51,7 @@ clean:
del /f /q src\string.obj del /f /q src\string.obj
del /f /q src\text.obj del /f /q src\text.obj
del /f /q src\unicode.obj del /f /q src\unicode.obj
del /f /q src\widget\box.obj
del /f /q src\widget\button.obj del /f /q src\widget\button.obj
del /f /q src\widget\checkbox.obj del /f /q src\widget\checkbox.obj
del /f /q src\widget\combobox.obj del /f /q src\widget\combobox.obj
@@ -73,8 +74,8 @@ clean:
del /f /q src\Mw.dll del /f /q src\Mw.dll
del /f /q src\Mw.lib del /f /q src\Mw.lib
src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj
$(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib
implib src\Mw.lib src\Mw.dll implib src\Mw.lib src\Mw.dll
.c.obj: .c.obj:

View File

@@ -171,14 +171,17 @@ print(OUT "\n");
print(OUT "all: lib examples\n"); print(OUT "all: lib examples\n");
print(OUT "\n"); print(OUT "\n");
print(OUT "install: lib\n"); print(OUT "install: lib\n");
print(OUT " mkdir -p \$(DESTDIR)\$(PREFIX)/lib \$(DESTDIR)\$(PREFIX)/include\n"); print(OUT
print(OUT " -cp src/${library_prefix}Mw${library_suffix} \$(DESTDIR)\$(PREFIX)/lib/\n"); " mkdir -p \$(DESTDIR)\$(PREFIX)/lib \$(DESTDIR)\$(PREFIX)/include\n");
print(OUT
" -cp src/${library_prefix}Mw${library_suffix} \$(DESTDIR)\$(PREFIX)/lib/\n"
);
print(OUT " -cp src/libMw.a \$(DESTDIR)\$(PREFIX)/lib/\n"); print(OUT " -cp src/libMw.a \$(DESTDIR)\$(PREFIX)/lib/\n");
print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n");
print(OUT "\n"); print(OUT "\n");
print(OUT "format:\n"); print(OUT "format:\n");
print(OUT print(OUT
" clang-format --verbose -i `find src include -name \"*.c\" -or -name \"*.h\"`\n" " clang-format --verbose -i `find src include examples -name \"*.c\" -or -name \"*.h\"`\n"
); );
print(OUT print(OUT
" perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl Makefile.pl -name \"*.pl\"`\n" " perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl Makefile.pl -name \"*.pl\"`\n"

5
NTMakefile generated
View File

@@ -51,6 +51,7 @@ clean:
del /f /q src\string.obj del /f /q src\string.obj
del /f /q src\text.obj del /f /q src\text.obj
del /f /q src\unicode.obj del /f /q src\unicode.obj
del /f /q src\widget\box.obj
del /f /q src\widget\button.obj del /f /q src\widget\button.obj
del /f /q src\widget\checkbox.obj del /f /q src\widget\checkbox.obj
del /f /q src\widget\combobox.obj del /f /q src\widget\combobox.obj
@@ -73,8 +74,8 @@ clean:
del /f /q src\Mw.dll del /f /q src\Mw.dll
del /f /q src\Mw.lib del /f /q src\Mw.lib
src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj
$(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib
.c.obj: .c.obj:

7
WatMakefile generated
View File

@@ -50,6 +50,7 @@ clean: .SYMBOLIC
%erase src/string.obj %erase src/string.obj
%erase src/text.obj %erase src/text.obj
%erase src/unicode.obj %erase src/unicode.obj
%erase src/widget/box.obj
%erase src/widget/button.obj %erase src/widget/button.obj
%erase src/widget/checkbox.obj %erase src/widget/checkbox.obj
%erase src/widget/combobox.obj %erase src/widget/combobox.obj
@@ -72,8 +73,8 @@ clean: .SYMBOLIC
%erase src/Mw.dll %erase src/Mw.dll
%erase src/Mw.lib %erase src/Mw.lib
src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj
$(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib
@@ -167,6 +168,8 @@ src/text.obj: src/text.c
$(CC) $(CFLAGS) -fo=$@ $< $(CC) $(CFLAGS) -fo=$@ $<
src/unicode.obj: src/unicode.c src/unicode.obj: src/unicode.c
$(CC) $(CFLAGS) -fo=$@ $< $(CC) $(CFLAGS) -fo=$@ $<
src/widget/box.obj: src/widget/box.c
$(CC) $(CFLAGS) -fo=$@ $<
src/widget/button.obj: src/widget/button.c src/widget/button.obj: src/widget/button.c
$(CC) $(CFLAGS) -fo=$@ $< $(CC) $(CFLAGS) -fo=$@ $<
src/widget/checkbox.obj: src/widget/checkbox.c src/widget/checkbox.obj: src/widget/checkbox.c

74
examples/basic/box.c Normal file
View File

@@ -0,0 +1,74 @@
#include <Mw/Milsko.h>
MwWidget window, box;
void resize(MwWidget handle, void* user, void* client) {
int ww = MwGetInteger(handle, MwNwidth);
int wh = MwGetInteger(handle, MwNheight);
(void)user;
(void)client;
MwVaApply(box,
MwNwidth, ww,
MwNheight, wh,
NULL);
}
int main() {
MwWidget box2, box3, box4;
MwLibraryInit();
window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 600, 200,
MwNtitle, "box",
NULL);
box = MwVaCreateWidget(MwBoxClass, "box", window, 0, 0, 0, 0,
MwNpadding, 10,
MwNmargin, 10,
NULL);
box2 = MwVaCreateWidget(MwBoxClass, "box2", box, 0, 0, 0, 0,
MwNmargin, 10,
MwNorientation, MwVERTICAL,
NULL);
box3 = MwVaCreateWidget(MwBoxClass, "box3", box, 0, 0, 0, 0,
MwNmargin, 10,
MwNorientation, MwVERTICAL,
NULL);
box4 = MwVaCreateWidget(MwBoxClass, "box4", box, 0, 0, 0, 0,
MwNmargin, 10,
MwNorientation, MwVERTICAL,
MwNfixedSize, 40,
NULL);
MwVaCreateWidget(MwButtonClass, "btn1", box2, 0, 0, 0, 0,
MwNbackground, "#a00",
NULL);
MwVaCreateWidget(MwButtonClass, "btn2", box2, 0, 0, 0, 0,
MwNbackground, "#0a0",
MwNratio, 2,
NULL);
MwVaCreateWidget(MwButtonClass, "btn3", box2, 0, 0, 0, 0,
MwNbackground, "#00a",
NULL);
MwVaCreateWidget(MwButtonClass, "btn4", box3, 0, 0, 0, 0,
MwNbackground, "#a0a",
NULL);
MwVaCreateWidget(MwButtonClass, "btn5", box4, 0, 0, 0, 0,
MwNbackground, "#0aa",
NULL);
MwAddUserHandler(window, MwNresizeHandler, resize, NULL);
resize(window, NULL, NULL);
MwLoop(window);
}

View File

@@ -719,5 +719,4 @@ const char* harvard[] = {
"A severe storm tore down the barn.", "A severe storm tore down the barn.",
"She called his name many times.", "She called his name many times.",
"When you hear the bell, come quickly.", "When you hear the bell, come quickly.",
NULL NULL};
};

View File

@@ -37,6 +37,17 @@
#define MwDispatch3(x, y, z) \ #define MwDispatch3(x, y, z) \
if(!x->destroyed && x->widget_class != NULL && x->widget_class->y != NULL) x->widget_class->y(x, z) if(!x->destroyed && x->widget_class != NULL && x->widget_class->y != NULL) x->widget_class->y(x, z)
/*!
* @warning Used internally
* @brief Dispatches the handler of widget class
* @param x Widget
* @param y Handler name
* @param z Argument
* @param w Argument
*/
#define MwDispatch4(x, y, z, w) \
if(!x->destroyed && x->widget_class != NULL && x->widget_class->y != NULL) x->widget_class->y(x, z, w)
#define MwWaitMS 30 #define MwWaitMS 30
#define MwDoubleClickTimeout 250 #define MwDoubleClickTimeout 250

View File

@@ -50,5 +50,6 @@
#include <Mw/Widget/Separator.h> #include <Mw/Widget/Separator.h>
#include <Mw/Widget/ComboBox.h> #include <Mw/Widget/ComboBox.h>
#include <Mw/Widget/TreeView.h> #include <Mw/Widget/TreeView.h>
#include <Mw/Widget/Box.h>
#endif #endif

View File

@@ -32,6 +32,9 @@
#define MwNpadding "Ipadding" #define MwNpadding "Ipadding"
#define MwNborderWidth "IborderWidth" #define MwNborderWidth "IborderWidth"
#define MwNfillArea "IfillArea" #define MwNfillArea "IfillArea"
#define MwNratio "Iratio"
#define MwNfixedSize "IfixedSize"
#define MwNmargin "Imargin"
#define MwNtitle "Stitle" #define MwNtitle "Stitle"
#define MwNtext "Stext" #define MwNtext "Stext"

View File

@@ -32,11 +32,13 @@ typedef void* MwWidget;
typedef void (*MwHandler)(MwWidget handle); typedef void (*MwHandler)(MwWidget handle);
typedef int (*MwHandlerWithStatus)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle);
typedef void (*MwHandlerProp)(MwWidget handle, const char* key); typedef void (*MwHandlerProp)(MwWidget handle, const char* key);
typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key);
typedef void (*MwHandlerKey)(MwWidget handle, int key); typedef void (*MwHandlerKey)(MwWidget handle, int key);
typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr);
typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args);
typedef void (*MwUserHandler)(MwWidget handle, void* user_data, void* call_data); typedef void (*MwUserHandler)(MwWidget handle, void* user_data, void* call_data);
typedef void (*MwErrorHandler)(int code, const char* message, void* user_data); typedef void (*MwErrorHandler)(int code, const char* message, void* user_data);
typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args);
struct _MwTextKeyValue { struct _MwTextKeyValue {
char* key; char* key;
@@ -187,6 +189,11 @@ struct _MwClass {
MwHandlerKey key; MwHandlerKey key;
MwHandlerExecute execute; MwHandlerExecute execute;
MwHandler tick; MwHandler tick;
MwHandler resize;
MwHandler children_update;
MwHandlerChildrenProp children_prop_change;
void* reserved1;
void* reserved2;
void* reserved3; void* reserved3;
void* reserved4; void* reserved4;
void* reserved5; void* reserved5;

24
include/Mw/Widget/Box.h Normal file
View File

@@ -0,0 +1,24 @@
/*!
* @file Mw/Widget/Box.h
* @brief Box widget
*/
#ifndef __MW_WIDGET_BOX_H__
#define __MW_WIDGET_BOX_H__
#include <Mw/MachDep.h>
#include <Mw/TypeDefs.h>
#ifdef __cplusplus
extern "C" {
#endif
/*!
* @brief Box widget class
*/
MWDECL MwClass MwBoxClass;
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -49,6 +49,8 @@
- MwNheight - MwNheight
- MwNborderWidth - MwNborderWidth
- MwNbackgroundPixmap - MwNbackgroundPixmap
- MwNratio
- MwNfixedSize
Integer properties must be prefixed with I. Integer properties must be prefixed with I.
String properties must be prefixed with S. String properties must be prefixed with S.
@@ -82,6 +84,9 @@
<integer name="showArrows" /> <integer name="showArrows" />
<integer name="padding" /> <integer name="padding" />
<integer name="borderWidth" /> <integer name="borderWidth" />
<integer name="ratio" />
<integer name="fixedSize" />
<integer name="margin" />
<string name="title" /> <string name="title" />
<string name="text" /> <string name="text" />
@@ -483,6 +488,13 @@
</header> </header>
</headers> </headers>
<widgets> <widgets>
<widget name="Box">
<properties>
<property name="orientation" />
<property name="margin" />
<property name="padding" />
</properties>
</widget>
<widget name="Button"> <widget name="Button">
<properties> <properties>
<property name="pixmap" /> <property name="pixmap" />

View File

@@ -71,6 +71,7 @@ new_object("src/icon/*.c");
new_object("src/font/*.c"); new_object("src/font/*.c");
new_object("src/cursor/*.c"); new_object("src/cursor/*.c");
new_object("src/widget/box.c");
new_object("src/widget/button.c"); new_object("src/widget/button.c");
new_object("src/widget/checkbox.c"); new_object("src/widget/checkbox.c");
new_object("src/widget/combobox.c"); new_object("src/widget/combobox.c");
@@ -116,6 +117,7 @@ new_example("examples/basic/progressbar");
new_example("examples/basic/colorpicker"); new_example("examples/basic/colorpicker");
new_example("examples/basic/combobox"); new_example("examples/basic/combobox");
new_example("examples/basic/treeview"); new_example("examples/basic/treeview");
new_example("examples/basic/box");
if (param_get("opengl")) { if (param_get("opengl")) {
new_example("examples/gldemos/boing", $gl_libs); new_example("examples/gldemos/boing", $gl_libs);

View File

@@ -50,6 +50,7 @@ static void llresizehandler(MwLL handle, void* data) {
for(i = 0; i < arrlen(h->children); i++) { for(i = 0; i < arrlen(h->children); i++) {
MwDispatch(h->children[i], parent_resize); MwDispatch(h->children[i], parent_resize);
} }
MwDispatch(h, resize);
} }
static void llclosehandler(MwLL handle, void* data) { static void llclosehandler(MwLL handle, void* data) {
@@ -176,6 +177,8 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent,
MwAddTickList(h); MwAddTickList(h);
} }
if(h->parent != NULL) MwDispatch(h->parent, children_update);
return h; return h;
} }
@@ -378,7 +381,10 @@ void MwSetInteger(MwWidget handle, const char* key, int n) {
} else { } else {
shput(handle->integer, key, n); shput(handle->integer, key, n);
} }
if(handle->prop_event) MwDispatch3(handle, prop_change, key); if(handle->prop_event) {
MwDispatch3(handle, prop_change, key);
if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key);
}
} }
void MwSetText(MwWidget handle, const char* key, const char* value) { void MwSetText(MwWidget handle, const char* key, const char* value) {
@@ -395,7 +401,10 @@ void MwSetText(MwWidget handle, const char* key, const char* value) {
shdel(handle->text, key); shdel(handle->text, key);
} }
} }
if(handle->prop_event) MwDispatch3(handle, prop_change, key); if(handle->prop_event) {
MwDispatch3(handle, prop_change, key);
if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key);
}
if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0) { if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0) {
MwForceRender(handle); MwForceRender(handle);
} }
@@ -413,7 +422,10 @@ void MwSetVoid(MwWidget handle, const char* key, void* value) {
} else { } else {
shput(handle->data, key, value); shput(handle->data, key, value);
} }
if(handle->prop_event) MwDispatch3(handle, prop_change, key); if(handle->prop_event) {
MwDispatch3(handle, prop_change, key);
if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key);
}
} }
int MwGetInteger(MwWidget handle, const char* key) { int MwGetInteger(MwWidget handle, const char* key) {
@@ -732,10 +744,14 @@ void MwReparent(MwWidget handle, MwWidget new_parent) {
break; break;
} }
} }
MwDispatch(handle->parent, children_update);
} }
handle->parent = new_parent; handle->parent = new_parent;
arrput(new_parent->children, handle); arrput(new_parent->children, handle);
MwDispatch(handle->parent, children_update);
} }
MwClass MwGetClass(MwWidget handle) { MwClass MwGetClass(MwWidget handle) {

View File

@@ -125,7 +125,11 @@ static void okay_activate(MwWidget handle, void* user, void* call) {
} else if(stat(p, &s) != 0) { } else if(stat(p, &s) != 0) {
MwWidget msgbox = MwMessageBox(handle->parent, "File does not exist!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK); MwWidget msgbox = MwMessageBox(handle->parent, "File does not exist!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK);
MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL); MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL);
#ifdef _S_IFDIR
} else if(fc->dir_only ? ((s.st_mode & _S_IFDIR) != _S_IFDIR) : 0) {
#else
} else if(fc->dir_only ? !S_ISDIR(s.st_mode) : 0) { } else if(fc->dir_only ? !S_ISDIR(s.st_mode) : 0) {
#endif
MwWidget msgbox = MwMessageBox(handle->parent, "File is not permitted here!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK); MwWidget msgbox = MwMessageBox(handle->parent, "File is not permitted here!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK);
MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL); MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL);
} else { } else {

110
src/widget/box.c Normal file
View File

@@ -0,0 +1,110 @@
#include <Mw/Milsko.h>
#include "../../external/stb_ds.h"
static int create(MwWidget handle) {
MwSetDefault(handle);
MwSetInteger(handle, MwNorientation, MwHORIZONTAL);
MwSetInteger(handle, MwNmargin, 0);
MwSetInteger(handle, MwNpadding, 0);
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);
}
static void layout(MwWidget handle) {
int i;
int sum = 0;
int horiz = MwGetInteger(handle, MwNorientation) == MwHORIZONTAL ? 1 : 0;
int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding) * 2;
int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2;
int sk = MwGetInteger(handle, MwNpadding);
for(i = 0; i < arrlen(handle->children); i++) {
int n = MwGetInteger(handle->children[i], MwNratio);
int s = MwGetInteger(handle->children[i], MwNfixedSize);
if(n == MwDEFAULT) n = 1;
if(s != MwDEFAULT) {
sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0);
} else {
sum += n;
}
}
for(i = 0; i < arrlen(handle->children); i++) {
int n = MwGetInteger(handle->children[i], MwNratio);
int s = MwGetInteger(handle->children[i], MwNfixedSize);
int wsz;
if(n == MwDEFAULT) n = 1;
if(s != MwDEFAULT) {
wsz = s;
} else {
wsz = sz * n / sum;
}
wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0);
MwVaApply(handle->children[i],
horiz ? MwNx : MwNy, sk, /* this is what gets changed */
horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding), /* fixed between widgets */
horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */
horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */
NULL);
sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0);
}
}
static void prop_change(MwWidget handle, const char* key) {
if(strcmp(key, MwNorientation) == 0) layout(handle);
}
static void children_prop_change(MwWidget handle, MwWidget child, const char* key) {
(void)child;
if(strcmp(key, MwNratio) == 0) layout(handle);
}
static void resize(MwWidget handle) {
layout(handle);
}
static void children_update(MwWidget handle) {
layout(handle);
}
MwClassRec MwBoxClassRec = {
create, /* create */
NULL, /* destroy */
draw, /* draw */
NULL, /* click */
NULL, /* parent_resize */
prop_change, /* prop_change */
NULL, /* mouse_move */
NULL, /* mouse_up */
NULL, /* mouse_down */
NULL, /* key */
NULL, /* execute */
NULL, /* tick */
resize, /* resize */
children_update, /* children_update */
children_prop_change, /* children_prop_change */
NULL,
NULL,
NULL,
NULL,
NULL};
MwClass MwBoxClass = &MwBoxClassRec;

View File

@@ -101,6 +101,11 @@ MwClassRec MwButtonClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -50,6 +50,11 @@ MwClassRec MwCheckBoxClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -201,6 +201,11 @@ MwClassRec MwComboBoxClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -170,6 +170,11 @@ MwClassRec MwEntryClassRec = {
key, /* key */ key, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -59,6 +59,11 @@ MwClassRec MwFrameClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -46,6 +46,11 @@ MwClassRec MwImageClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -59,6 +59,11 @@ MwClassRec MwLabelClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -606,6 +606,11 @@ MwClassRec MwListBoxClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
tick, /* tick */ tick, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -201,6 +201,11 @@ MwClassRec MwMenuClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -140,6 +140,11 @@ MwClassRec MwNumberEntryClassRec = {
key, /* key */ key, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -249,6 +249,11 @@ MwClassRec MwOpenGLClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -58,6 +58,11 @@ MwClassRec MwProgressBarClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -59,6 +59,11 @@ MwClassRec MwRadioBoxClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -275,6 +275,11 @@ MwClassRec MwScrollBarClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -47,6 +47,11 @@ MwClassRec MwSeparatorClassRec = {
NULL, /* key */ NULL, /* key */
NULL, /* execute */ NULL, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -212,6 +212,11 @@ MwClassRec MwSubMenuClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -493,6 +493,11 @@ MwClassRec MwTreeViewClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
tick, /* tick */ tick, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -188,6 +188,11 @@ MwClassRec MwViewportClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
tick, /* tick */ tick, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -521,6 +521,11 @@ MwClassRec MwVulkanClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -56,6 +56,11 @@ MwClassRec MwWindowClassRec = {
NULL, /* key */ NULL, /* key */
func_handler, /* execute */ func_handler, /* execute */
NULL, /* tick */ NULL, /* tick */
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
NULL,
NULL,
NULL, NULL,
NULL, NULL,
NULL}; NULL};

View File

@@ -18,5 +18,6 @@ for i in *.c; do
done done
cd ../.. cd ../..
rm -f milsko-examples.zip rm -f milsko-examples.zip
cp resource/logo/logo.png examples/picture.jpg examples/picture.png milsko-examples/
zip -rv milsko-examples.zip milsko-examples zip -rv milsko-examples.zip milsko-examples
rm -rf milsko-examples rm -rf milsko-examples