less memleak

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@361 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-16 10:42:59 +00:00
parent ba4010eb52
commit 07199650b7
10 changed files with 90 additions and 75 deletions

View File

@@ -28,6 +28,8 @@ clean:
del /f /q src\icon\error.obj
del /f /q src\icon\news.obj
del /f /q src\icon\question.obj
del /f /q src\icon\directory.obj
del /f /q src\icon\file.obj
del /f /q src\cursor\default.obj
del /f /q src\cursor\cross.obj
del /f /q src\cursor\text.obj
@@ -64,8 +66,8 @@ clean:
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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\listbox.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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\icon\directory.obj src\icon\file.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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\icon\directory.obj src\icon\file.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\listbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj

View File

@@ -28,6 +28,8 @@ clean:
del /f /q src\icon\error.obj
del /f /q src\icon\news.obj
del /f /q src\icon\question.obj
del /f /q src\icon\directory.obj
del /f /q src\icon\file.obj
del /f /q src\cursor\default.obj
del /f /q src\cursor\cross.obj
del /f /q src\cursor\text.obj
@@ -64,8 +66,8 @@ clean:
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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\listbox.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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\icon\directory.obj src\icon\file.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\directory.obj src\messagebox.obj src\boldfont.obj external\ds.obj 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\icon\directory.obj src\icon\file.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\listbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj

View File

@@ -27,6 +27,8 @@ clean: .SYMBOLIC
%erase src/icon/error.obj
%erase src/icon/news.obj
%erase src/icon/question.obj
%erase src/icon/directory.obj
%erase src/icon/file.obj
%erase src/cursor/default.obj
%erase src/cursor/cross.obj
%erase src/cursor/text.obj
@@ -63,8 +65,8 @@ clean: .SYMBOLIC
%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/directory.obj src/messagebox.obj src/boldfont.obj external/ds.obj 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/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/directory.obj file src/messagebox.obj file src/boldfont.obj file external/ds.obj file 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/listbox.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/directory.obj src/messagebox.obj src/boldfont.obj external/ds.obj 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/icon/directory.obj src/icon/file.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/directory.obj file src/messagebox.obj file src/boldfont.obj file external/ds.obj file 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/icon/directory.obj file src/icon/file.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/listbox.obj oosrc/widget/label.obj oosrc/widget/entry.obj oosrc/widget/numberentry.obj
@@ -110,6 +112,10 @@ src/icon/news.obj: src/icon/news.c
$(CC) $(CFLAGS) -fo=$@ $<
src/icon/question.obj: src/icon/question.c
$(CC) $(CFLAGS) -fo=$@ $<
src/icon/directory.obj: src/icon/directory.c
$(CC) $(CFLAGS) -fo=$@ $<
src/icon/file.obj: src/icon/file.c
$(CC) $(CFLAGS) -fo=$@ $<
src/cursor/default.obj: src/cursor/default.c
$(CC) $(CFLAGS) -fo=$@ $<
src/cursor/cross.obj: src/cursor/cross.c

View File

@@ -206,9 +206,6 @@
<dd>
<a href="#Mw_Draw_h__MwDrawText">MwDrawText</a>
</dd>
<dd>
<a href="#Mw_Draw_h__MwDrawTextEx">MwDrawTextEx</a>
</dd>
<dd>
<a href="#Mw_Draw_h__MwLoadImage">MwLoadImage</a>
</dd>
@@ -257,9 +254,15 @@
<dt>
<a href="#Mw_Icon_h">Mw/Icon.h</a>
</dt>
<dd>
<a href="#Mw_Icon_h__MwIconDirectory__">MwIconDirectory[]</a>
</dd>
<dd>
<a href="#Mw_Icon_h__MwIconError__">MwIconError[]</a>
</dd>
<dd>
<a href="#Mw_Icon_h__MwIconFile__">MwIconFile[]</a>
</dd>
<dd>
<a href="#Mw_Icon_h__MwIconInfo__">MwIconInfo[]</a>
</dd>
@@ -290,6 +293,9 @@
<dd>
<a href="#Mw_MessageBox_h__MwMessageBoxGetChild">MwMessageBoxGetChild</a>
</dd>
<dd>
<a href="#Mw_MessageBox_h__MwMessageBoxDestroy">MwMessageBoxDestroy</a>
</dd>
<dt>
<a href="#Mw_Milsko_h">Mw/Milsko.h</a>
</dt>
@@ -1803,63 +1809,6 @@
</dd>
</dl>
<hr>
<pre id="Mw_Draw_h__MwDrawTextEx">MWDECL <B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">MwDrawTextEx</FONT></B> (
MwWidget handle,
MwPoint* point,
<B><FONT COLOR="#228B22">const</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B>* text,
<B><FONT COLOR="#228B22">int</FONT></B> bold,
<B><FONT COLOR="#228B22">int</FONT></B> align,
MwLLColor color,
MwLLColor bgcolor
);</pre>
<dl>
<dd>
Draws a text.
</dd>
<dt>
Parameter <code>handle</code>
</dt>
<dd>
Widget.
</dd>
<dt>
Parameter <code>point</code>
</dt>
<dd>
Center point of the text.
</dd>
<dt>
Parameter <code>text</code>
</dt>
<dd>
Text.
</dd>
<dt>
Parameter <code>bold</code>
</dt>
<dd>
Bold.
</dd>
<dt>
Parameter <code>align</code>
</dt>
<dd>
Align.
</dd>
<dt>
Parameter <code>color</code>
</dt>
<dd>
Color.
</dd>
<dt>
Parameter <code>bgcolor</code>
</dt>
<dd>
Background color.
</dd>
</dl>
<hr>
<pre id="Mw_Draw_h__MwLoadImage">MWDECL MwLLPixmap <B><FONT COLOR="#0000FF">MwLoadImage</FONT></B> (
MwWidget handle,
<B><FONT COLOR="#228B22">const</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B>* path
@@ -2143,6 +2092,13 @@
</dt>
</dl>
<hr>
<pre id="Mw_Icon_h__MwIconDirectory__">MWDECL <B><FONT COLOR="#228B22">char</FONT></B>* MwIconDirectory[];</pre>
<dl>
<dd>
Directory icon.
</dd>
</dl>
<hr>
<pre id="Mw_Icon_h__MwIconError__">MWDECL <B><FONT COLOR="#228B22">char</FONT></B>* MwIconError[];</pre>
<dl>
<dd>
@@ -2150,6 +2106,13 @@
</dd>
</dl>
<hr>
<pre id="Mw_Icon_h__MwIconFile__">MWDECL <B><FONT COLOR="#228B22">char</FONT></B>* MwIconFile[];</pre>
<dl>
<dd>
File icon.
</dd>
</dl>
<hr>
<pre id="Mw_Icon_h__MwIconInfo__">MWDECL <B><FONT COLOR="#228B22">char</FONT></B>* MwIconInfo[];</pre>
<dl>
<dd>
@@ -2273,6 +2236,21 @@
</dd>
</dl>
<hr>
<pre id="Mw_MessageBox_h__MwMessageBoxDestroy">MWDECL <B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">MwMessageBoxDestroy</FONT></B> (
MwWidget handle
);</pre>
<dl>
<dd>
Destroys the message box.
</dd>
<dt>
Parameter <code>handle</code>
</dt>
<dd>
Widget.
</dd>
</dl>
<hr>
<h2 align="center" id="Mw_Milsko_h">Mw/Milsko.h</h2>
<dl>
<dt>
@@ -2468,7 +2446,8 @@
<pre id="Mw_Widget_ListBox_h__MwListBoxInsert">MWDECL <B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">MwListBoxInsert</FONT></B> (
MwWidget handle,
<B><FONT COLOR="#228B22">int</FONT></B> index,
<B><FONT COLOR="#228B22">const</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B>* text
<B><FONT COLOR="#228B22">const</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B>* text,
MwLLPixmap pixmap
);</pre>
<dl>
<dd>
@@ -2492,12 +2471,19 @@
<dd>
Text.
</dd>
<dt>
Parameter <code>pixmap</code>
</dt>
<dd>
Pixmap.
</dd>
</dl>
<hr>
<pre id="Mw_Widget_ListBox_h__MwListBoxInsertMultiple">MWDECL <B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">MwListBoxInsertMultiple</FONT></B> (
MwWidget handle,
<B><FONT COLOR="#228B22">int</FONT></B> index,
<B><FONT COLOR="#228B22">char</FONT></B>** text,
MwLLPixmap* pixmap,
<B><FONT COLOR="#228B22">int</FONT></B> count
);</pre>
<dl>
@@ -2522,6 +2508,12 @@
<dd>
Text.
</dd>
<dt>
Parameter <code>pixmap</code>
</dt>
<dd>
Pixmap.
</dd>
<dt>
Parameter <code>count</code>
</dt>

View File

@@ -6,7 +6,7 @@
MwWidget wmain;
void destroy(MwWidget handle, void* user, void* call) {
MwDestroyWidget(user);
MwMessageBoxDestroy(user);
}
void activate(MwWidget handle, void* user, void* call) {

View File

@@ -2,7 +2,7 @@
#include <Mw/Milsko.h>
void ok(MwWidget handle, void* user, void* call) {
MwDestroyWidget(user);
MwMessageBoxDestroy(user);
}
void spawn(MwWidget handle, void* user, void* call) {

View File

@@ -30,6 +30,12 @@ MWDECL MwWidget MwMessageBox(MwWidget handle, const char* text, const char* titl
*/
MWDECL MwWidget MwMessageBoxGetChild(MwWidget handle, int child);
/*!
* %brief Destroys the message box
* %param handle Widget
*/
MWDECL void MwMessageBoxDestroy(MwWidget handle);
#ifdef __cplusplus
}
#endif

View File

@@ -8,8 +8,8 @@ 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 Insert(int index, const char* text);
void InsertMultiple(int index, char** text, int count);
void Insert(int index, const char* text, MwLLPixmap pixmap);
void InsertMultiple(int index, char** text, MwLLPixmap* pixmap, int count);
void Delete(int index);
const char* Get(int index);
void SetLeftPadding(int value);

View File

@@ -5,11 +5,11 @@
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::Insert(int index, const char* text){
MwListBoxInsert(this->widget, index, text);
void MwOO::ListBox::Insert(int index, const char* text, MwLLPixmap pixmap){
MwListBoxInsert(this->widget, index, text, pixmap);
}
void MwOO::ListBox::InsertMultiple(int index, char** text, int count){
MwListBoxInsertMultiple(this->widget, index, text, count);
void MwOO::ListBox::InsertMultiple(int index, char** text, MwLLPixmap* pixmap, int count){
MwListBoxInsertMultiple(this->widget, index, text, pixmap, count);
}
void MwOO::ListBox::Delete(int index){
MwListBoxDelete(this->widget, index);

View File

@@ -103,3 +103,10 @@ MwWidget MwMessageBoxGetChild(MwWidget handle, int child) {
return hmget(mb, child);
}
void MwMessageBoxDestroy(MwWidget handle) {
void* px;
if((px = MwGetVoid(handle, MwNpixmap)) != NULL) MwLLDestroyPixmap(px);
MwDestroyWidget(handle);
}