add messagebox

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@338 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-15 10:32:40 +00:00
parent 61772bf9ca
commit 234d726e3f
4 changed files with 34 additions and 17 deletions

View File

@@ -3,13 +3,30 @@
#include "../resource/harvard.c"
int main(){
MwWidget w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480,
MwNtitle, "test",
NULL);
MwWidget lb = MwCreateWidget(MwListBoxClass, "listbox", w, 5, 5, 630, 470);
MwWidget wmain;
MwListBoxInsertMultiple(lb, -1, (char**)harvard, sizeof(harvard) / sizeof(harvard[0]) - 1);
MwLoop(w);
void destroy(MwWidget handle, void* user, void* call) {
MwDestroyWidget(user);
}
void activate(MwWidget handle, void* user, void* call) {
char msg[256];
MwWidget msgbox;
sprintf(msg, "You pressed: %s", MwListBoxGet(handle, *(int*)call));
msgbox = MwMessageBox(wmain, msg, "wow", MwMB_ICONINFO | MwMB_BUTTONOK);
MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, destroy, msgbox);
}
int main() {
MwWidget lb;
wmain = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480,
MwNtitle, "test",
NULL);
lb = MwCreateWidget(MwListBoxClass, "listbox", wmain, 5, 5, 630, 470);
MwAddUserHandler(lb, MwNactivateHandler, activate, NULL);
MwListBoxInsertMultiple(lb, -1, (char**)harvard, sizeof(harvard) / sizeof(harvard[0]) - 1);
MwLoop(wmain);
}

View File

@@ -126,7 +126,7 @@ struct _MwListBox {
char** list;
int selected;
unsigned long click_time;
int pressed;
int pressed;
};
struct _MwSizeHints {

View File

@@ -53,8 +53,8 @@ static void frame_mouse_up(MwWidget handle, void* user, void* call) {
}
static void frame_mouse_move(MwWidget handle, void* user, void* call) {
MwListBox lb = handle->parent->internal;
MwPoint* p = call;
MwListBox lb = handle->parent->internal;
MwPoint* p = call;
if(lb->pressed) {
int st = 0;
int i;
@@ -64,7 +64,7 @@ static void frame_mouse_move(MwWidget handle, void* user, void* call) {
st = get_first_entry(lb);
for(i = 0; i < (h - MwDefaultBorderWidth * 2) / MwTextHeight(handle, "M"); i++) {
if(y <= p->y && p->y <= (y + MwTextHeight(handle, "M"))) {
lb->selected = st + i;
lb->selected = st + i;
}
y += MwTextHeight(handle, "M");
}

View File

@@ -3,11 +3,11 @@
open(IN, "<", "resource/harvard.txt");
print("const char* harvard[] = {\n");
while(my $l = <IN>){
$l =~ s/\r?\n$//;
if($l =~ /^[ \t]*[0-9]+\. (.+)$/){
print(" \"" . $1 . "\",\n");
}
while (my $l = <IN>) {
$l =~ s/\r?\n$//;
if ($l =~ /^[ \t]*[0-9]+\. (.+)$/) {
print(" \"" . $1 . "\",\n");
}
}
print(" NULL\n");
print("};\n");