add messagebox
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@261 b9cfdab3-6d41-4d17-bbe4-086880011989
150
doc/index.html
|
|
@ -41,6 +41,30 @@
|
||||||
<dd>
|
<dd>
|
||||||
<a href="#Mw_Constants_h___define_MwMB_ICONNEWS_0x5">#define MwMB_ICONNEWS 0x5</a>
|
<a href="#Mw_Constants_h___define_MwMB_ICONNEWS_0x5">#define MwMB_ICONNEWS 0x5</a>
|
||||||
</dd>
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h___define_MwMB_BUTTONMASK_0xf0">#define MwMB_BUTTONMASK 0xf0</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h___define_MwMB_BUTTONOK_0x10">#define MwMB_BUTTONOK 0x10</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h___define_MwMB_BUTTONCANCEL_0x20">#define MwMB_BUTTONCANCEL 0x20</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h___define_MwMB_BUTTONYES_0x40">#define MwMB_BUTTONYES 0x40</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h___define_MwMB_BUTTONNO_0x80">#define MwMB_BUTTONNO 0x80</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h__MwMB_BUTTONOKCANCEL">MwMB_BUTTONOKCANCEL</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h__MwMB_BUTTONYESNO">MwMB_BUTTONYESNO</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_Constants_h__MwMB_BUTTONYESNOCANCEL">MwMB_BUTTONYESNOCANCEL</a>
|
||||||
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href="#Mw_Core_h">Mw/Core.h</a>
|
<a href="#Mw_Core_h">Mw/Core.h</a>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
@ -248,6 +272,12 @@
|
||||||
<dt>
|
<dt>
|
||||||
<a href="#Mw_MessageBox_h">Mw/MessageBox.h</a>
|
<a href="#Mw_MessageBox_h">Mw/MessageBox.h</a>
|
||||||
</dt>
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_MessageBox_h__MwMessageBox">MwMessageBox</a>
|
||||||
|
</dd>
|
||||||
|
<dd>
|
||||||
|
<a href="#Mw_MessageBox_h__MwMessageBoxGetChild">MwMessageBoxGetChild</a>
|
||||||
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href="#Mw_Milsko_h">Mw/Milsko.h</a>
|
<a href="#Mw_Milsko_h">Mw/Milsko.h</a>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
@ -498,6 +528,62 @@
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<hr>
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h___define_MwMB_BUTTONMASK_0xf0">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONMASK</FONT> 0xf0</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Button mask.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h___define_MwMB_BUTTONOK_0x10">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONOK</FONT> 0x10</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
OK button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h___define_MwMB_BUTTONCANCEL_0x20">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONCANCEL</FONT> 0x20</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Cancel button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h___define_MwMB_BUTTONYES_0x40">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONYES</FONT> 0x40</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Yes button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h___define_MwMB_BUTTONNO_0x80">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONNO</FONT> 0x80</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
No button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h__MwMB_BUTTONOKCANCEL">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONOKCANCEL</FONT> (MwMB_BUTTONCANCEL | MwMB_BUTTONOK)</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Ok and Cancel button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h__MwMB_BUTTONYESNO">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONYESNO</FONT> (MwMB_BUTTONYES | MwMB_BUTTONNO)</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Yes and No button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_Constants_h__MwMB_BUTTONYESNOCANCEL">#<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">MwMB_BUTTONYESNOCANCEL</FONT> (MwMB_BUTTONYES | MwMB_BUTTONNO | MwMB_BUTTONCANCEL)</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Yes, No and Cancel button.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
<h2 align="center" id="Mw_Core_h">Mw/Core.h</h2>
|
<h2 align="center" id="Mw_Core_h">Mw/Core.h</h2>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
|
|
@ -1941,6 +2027,70 @@
|
||||||
</dt>
|
</dt>
|
||||||
</dl>
|
</dl>
|
||||||
<hr>
|
<hr>
|
||||||
|
<pre id="Mw_MessageBox_h__MwMessageBox">MWDECL MwWidget <B><FONT COLOR="#0000FF">MwMessageBox</FONT></B> (
|
||||||
|
MwWidget handle,
|
||||||
|
<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>* title,
|
||||||
|
<B><FONT COLOR="#228B22">unsigned</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> flag
|
||||||
|
);</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Creates a message box.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Parameter <code>handle</code>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Widget.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Parameter <code>text</code>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Text.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Parameter <code>title</code>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Title text.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Parameter <code>flag</code>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Flag.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Returns
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Widget.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<pre id="Mw_MessageBox_h__MwMessageBoxGetChild">MWDECL MwWidget <B><FONT COLOR="#0000FF">MwMessageBoxGetChild</FONT></B> (
|
||||||
|
MwWidget handle,
|
||||||
|
<B><FONT COLOR="#228B22">int</FONT></B> child
|
||||||
|
);</pre>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
Gets a child of the message box.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Parameter <code>handle</code>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Widget.
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
Parameter <code>child</code>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Child.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
<h2 align="center" id="Mw_Milsko_h">Mw/Milsko.h</h2>
|
<h2 align="center" id="Mw_Milsko_h">Mw/Milsko.h</h2>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
|
|
|
||||||
|
|
@ -68,4 +68,44 @@ enum MwALIGNMENT {
|
||||||
*/
|
*/
|
||||||
#define MwMB_ICONNEWS 0x5
|
#define MwMB_ICONNEWS 0x5
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Button mask
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONMASK 0xf0
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief OK button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONOK 0x10
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Cancel button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONCANCEL 0x20
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Yes button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONYES 0x40
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief No button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONNO 0x80
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Ok and Cancel button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONOKCANCEL (MwMB_BUTTONCANCEL | MwMB_BUTTONOK)
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Yes and No button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONYESNO (MwMB_BUTTONYES | MwMB_BUTTONNO)
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Yes, No and Cancel button
|
||||||
|
*/
|
||||||
|
#define MwMB_BUTTONYESNOCANCEL (MwMB_BUTTONYES | MwMB_BUTTONNO | MwMB_BUTTONCANCEL)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
* %brief Creates a message box
|
||||||
* %param handle Widget
|
* %param handle Widget
|
||||||
* %param text Text
|
* %param text Text
|
||||||
* %param title Title text
|
* %param title Title text
|
||||||
|
|
@ -22,6 +23,13 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
MWDECL MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag);
|
MWDECL MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* %brief Gets a child of the message box
|
||||||
|
* %param handle Widget
|
||||||
|
* %param child Child
|
||||||
|
*/
|
||||||
|
MWDECL MwWidget MwMessageBoxGetChild(MwWidget handle, int child);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 434 B After Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 594 B After Width: | Height: | Size: 594 B |
|
Before Width: | Height: | Size: 529 B After Width: | Height: | Size: 529 B |
|
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
|
|
@ -1,18 +1,31 @@
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
#include <Mw/Milsko.h>
|
#include <Mw/Milsko.h>
|
||||||
|
|
||||||
void msgbox_ok_handler(MwWidget handle, void* user, void* call) {
|
#include "external/stb_ds.h"
|
||||||
MwWidget win = user;
|
|
||||||
|
|
||||||
MwDestroyWidget(win);
|
typedef struct msgbox {
|
||||||
|
int key;
|
||||||
|
MwWidget value;
|
||||||
|
} msgbox_t;
|
||||||
|
|
||||||
|
static void spawn_button(MwWidget handle, int x, int y, int id, const char* text) {
|
||||||
|
msgbox_t* mb = handle->opaque;
|
||||||
|
MwWidget widget = MwVaCreateWidget(MwButtonClass, text, handle, x, y, 80, 24,
|
||||||
|
MwNtext, text,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
hmput(mb, id, widget);
|
||||||
|
|
||||||
|
handle->opaque = mb;
|
||||||
}
|
}
|
||||||
|
|
||||||
MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) {
|
MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) {
|
||||||
MwWidget window, ok;
|
MwWidget window;
|
||||||
MwPoint p;
|
MwPoint p;
|
||||||
int w, h;
|
int w, h;
|
||||||
int left = 8;
|
int left = 8;
|
||||||
int th;
|
int th;
|
||||||
|
int x = 0;
|
||||||
|
|
||||||
p.x = 0;
|
p.x = 0;
|
||||||
p.y = 0;
|
p.y = 0;
|
||||||
|
|
@ -20,11 +33,14 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi
|
||||||
window = MwVaCreateWidget(MwWindowClass, "messagebox", handle, 0, 0, (w = 512), (h = 32 * 4),
|
window = MwVaCreateWidget(MwWindowClass, "messagebox", handle, 0, 0, (w = 512), (h = 32 * 4),
|
||||||
MwNtitle, title,
|
MwNtitle, title,
|
||||||
NULL);
|
NULL);
|
||||||
ok = MwVaCreateWidget(MwButtonClass, "ok", window, w - 8 - 80, h - 8 - 24, 80, 24,
|
|
||||||
MwNtext, "OK",
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
MwAddUserHandler(ok, MwNactivateHandler, msgbox_ok_handler, window);
|
window->opaque = NULL;
|
||||||
|
|
||||||
|
if(flag & MwMB_BUTTONOK) spawn_button(window, w - (x += 8 + 80), h - 8 - 24, MwMB_BUTTONOK, "OK");
|
||||||
|
if(flag & MwMB_BUTTONCANCEL) spawn_button(window, w - (x += 8 + 80), h - 8 - 24, MwMB_BUTTONCANCEL, "Cancel");
|
||||||
|
|
||||||
|
if(flag & MwMB_BUTTONNO) spawn_button(window, w - (x += 8 + 80), h - 8 - 24, MwMB_BUTTONNO, "No");
|
||||||
|
if(flag & MwMB_BUTTONYES) spawn_button(window, w - (x += 8 + 80), h - 8 - 24, MwMB_BUTTONYES, "Yes");
|
||||||
|
|
||||||
if((flag & MwMB_ICONMASK) != 0) {
|
if((flag & MwMB_ICONMASK) != 0) {
|
||||||
MwWidget icon;
|
MwWidget icon;
|
||||||
|
|
@ -75,3 +91,9 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi
|
||||||
|
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MwWidget MwMessageBoxGetChild(MwWidget handle, int child) {
|
||||||
|
msgbox_t* mb = handle->opaque;
|
||||||
|
|
||||||
|
return hmget(mb, child);
|
||||||
|
}
|
||||||
|
|
|
||||||