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>
|
||||
<a href="#Mw_Constants_h___define_MwMB_ICONNEWS_0x5">#define MwMB_ICONNEWS 0x5</a>
|
||||
</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>
|
||||
<a href="#Mw_Core_h">Mw/Core.h</a>
|
||||
</dt>
|
||||
|
|
@ -248,6 +272,12 @@
|
|||
<dt>
|
||||
<a href="#Mw_MessageBox_h">Mw/MessageBox.h</a>
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="#Mw_MessageBox_h__MwMessageBox">MwMessageBox</a>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="#Mw_MessageBox_h__MwMessageBoxGetChild">MwMessageBoxGetChild</a>
|
||||
</dd>
|
||||
<dt>
|
||||
<a href="#Mw_Milsko_h">Mw/Milsko.h</a>
|
||||
</dt>
|
||||
|
|
@ -498,6 +528,62 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<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>
|
||||
<dl>
|
||||
<dt>
|
||||
|
|
@ -1941,6 +2027,70 @@
|
|||
</dt>
|
||||
</dl>
|
||||
<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>
|
||||
<dl>
|
||||
<dt>
|
||||
|
|
|
|||
|
|
@ -68,4 +68,44 @@ enum MwALIGNMENT {
|
|||
*/
|
||||
#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
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
/*!
|
||||
* %brief Creates a message box
|
||||
* %param handle Widget
|
||||
* %param text 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);
|
||||
|
||||
/*!
|
||||
* %brief Gets a child of the message box
|
||||
* %param handle Widget
|
||||
* %param child Child
|
||||
*/
|
||||
MWDECL MwWidget MwMessageBoxGetChild(MwWidget handle, int child);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#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$ */
|
||||
#include <Mw/Milsko.h>
|
||||
|
||||
void msgbox_ok_handler(MwWidget handle, void* user, void* call) {
|
||||
MwWidget win = user;
|
||||
#include "external/stb_ds.h"
|
||||
|
||||
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 window, ok;
|
||||
MwWidget window;
|
||||
MwPoint p;
|
||||
int w, h;
|
||||
int left = 8;
|
||||
int th;
|
||||
int x = 0;
|
||||
|
||||
p.x = 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),
|
||||
MwNtitle, title,
|
||||
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) {
|
||||
MwWidget icon;
|
||||
|
|
@ -75,3 +91,9 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi
|
|||
|
||||
return window;
|
||||
}
|
||||
|
||||
MwWidget MwMessageBoxGetChild(MwWidget handle, int child) {
|
||||
msgbox_t* mb = handle->opaque;
|
||||
|
||||
return hmget(mb, child);
|
||||
}
|
||||
|
|
|
|||