44 lines
1.2 KiB
Plaintext
44 lines
1.2 KiB
Plaintext
extension JsiAgarGUI = { // libAgar GUI from Jsi
|
|
/*
|
|
Alert popup, via libAgar and Jsish CData
|
|
tectonics:
|
|
jsish -c JsiAgar.jsc
|
|
gcc `jsish -c -cflags true JsiAgar.so` `agar-config --cflags --libs`
|
|
jsish -e 'require("JsiAgar"); JsiAgar.alert("Goodbye, World!");'
|
|
*/
|
|
#include <agar/core.h>
|
|
#include <agar/gui.h>
|
|
|
|
/* Terminate on close */
|
|
void windDown(AG_Event *event) {
|
|
AG_Terminate(0);
|
|
}
|
|
|
|
function alert(msg:string):void { // Display a JsiAgar windowed message
|
|
/* Native C code block (in a JSI function wrapper) */
|
|
AG_Window *win;
|
|
AG_Box *box;
|
|
|
|
Jsi_RC rc = JSI_OK;
|
|
|
|
if (AG_InitCore(NULL, 0) == -1 || AG_InitGraphics(0) == -1) return (JSI_ERROR);
|
|
AG_BindStdGlobalKeys();
|
|
|
|
win = AG_WindowNew(0);
|
|
|
|
box = AG_BoxNew(win, AG_BOX_VERT, 0);
|
|
AG_LabelNewS(box, AG_LABEL_HFILL, msg);
|
|
AG_ButtonNewFn(box, AG_BUTTON_HFILL, "Ok", AGWINDETACH(win), "%p", win);
|
|
|
|
AG_SetEvent(win, "window-detached", windDown, NULL);
|
|
AG_WindowShow(win);
|
|
|
|
AG_EventLoop();
|
|
|
|
AG_DestroyGraphics();
|
|
AG_Destroy();
|
|
|
|
return rc;
|
|
}
|
|
};
|