message_box and input for Lua API, also autorun.lua
This commit is contained in:
parent
e94ed7bc11
commit
3ea25c83b7
@ -207,6 +207,8 @@ void copytext_ui(pixel *vid_buf, char *top, char *txt, char *copytxt);
|
|||||||
|
|
||||||
void info_box(pixel *vid_buf, char *msg);
|
void info_box(pixel *vid_buf, char *msg);
|
||||||
|
|
||||||
|
char *input_ui(pixel *vid_buf, char *title, char *prompt, char *text, char *shadow);
|
||||||
|
|
||||||
int confirm_ui(pixel *vid_buf, char *top, char *msg, char *btn);
|
int confirm_ui(pixel *vid_buf, char *top, char *msg, char *btn);
|
||||||
|
|
||||||
void login_ui(pixel *vid_buf);
|
void login_ui(pixel *vid_buf);
|
||||||
|
@ -37,4 +37,6 @@ int luatpt_set_shortcuts(lua_State* l);
|
|||||||
int luatpt_delete(lua_State* l);
|
int luatpt_delete(lua_State* l);
|
||||||
int luatpt_register_step(lua_State* l);
|
int luatpt_register_step(lua_State* l);
|
||||||
int luatpt_unregister_step(lua_State* l);
|
int luatpt_unregister_step(lua_State* l);
|
||||||
|
int luatpt_input(lua_State* l);
|
||||||
|
int luatpt_message_box(lua_State* l);
|
||||||
#endif
|
#endif
|
||||||
|
@ -820,6 +820,75 @@ void error_ui(pixel *vid_buf, int err, char *txt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *input_ui(pixel *vid_buf, char *title, char *prompt, char *text, char *shadow)
|
||||||
|
{
|
||||||
|
int xsize = 244;
|
||||||
|
int ysize = 90;
|
||||||
|
int edity, editx;
|
||||||
|
int x0=(XRES-xsize)/2,y0=(YRES-MENUSIZE-ysize)/2,b=1,bq,mx,my;
|
||||||
|
ui_edit ed;
|
||||||
|
|
||||||
|
edity = y0+50;
|
||||||
|
editx = x0+12;
|
||||||
|
|
||||||
|
ed.x = editx;
|
||||||
|
ed.y = edity;
|
||||||
|
ed.w = xsize - 20;
|
||||||
|
ed.nx = 1;
|
||||||
|
ed.def = shadow;
|
||||||
|
ed.focus = 0;
|
||||||
|
ed.hide = 0;
|
||||||
|
ed.cursor = 0;
|
||||||
|
ed.multiline = 0;
|
||||||
|
strncpy(ed.str, text, 254);
|
||||||
|
|
||||||
|
while (!sdl_poll())
|
||||||
|
{
|
||||||
|
b = SDL_GetMouseState(&mx, &my);
|
||||||
|
if (!b)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (!sdl_poll())
|
||||||
|
{
|
||||||
|
bq = b;
|
||||||
|
b = SDL_GetMouseState(&mx, &my);
|
||||||
|
mx /= sdl_scale;
|
||||||
|
my /= sdl_scale;
|
||||||
|
|
||||||
|
clearrect(vid_buf, x0-2, y0-2, xsize+4, ysize+4);
|
||||||
|
drawrect(vid_buf, x0, y0, xsize, ysize, 192, 192, 192, 255);
|
||||||
|
drawtext(vid_buf, x0+8, y0+8, title, 160, 160, 255, 255);
|
||||||
|
drawtext(vid_buf, x0+8, y0+26, prompt, 255, 255, 255, 255);
|
||||||
|
|
||||||
|
drawrect(vid_buf, ed.x-4, ed.y-5, ed.w+4, 16, 192, 192, 192, 255);
|
||||||
|
|
||||||
|
ui_edit_draw(vid_buf, &ed);
|
||||||
|
ui_edit_process(mx, my, b, &ed);
|
||||||
|
|
||||||
|
drawtext(vid_buf, x0+5, y0+ysize-11, "OK", 255, 255, 255, 255);
|
||||||
|
drawrect(vid_buf, x0, y0+ysize-16, xsize, 16, 192, 192, 192, 255);
|
||||||
|
|
||||||
|
sdl_blit(0, 0, (XRES+BARSIZE), YRES+MENUSIZE, vid_buf, (XRES+BARSIZE));
|
||||||
|
|
||||||
|
if (b && !bq && mx>=x0 && mx<x0+xsize && my>=y0+ysize-16 && my<=y0+ysize)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (sdl_key==SDLK_RETURN)
|
||||||
|
break;
|
||||||
|
if (sdl_key==SDLK_ESCAPE)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (!sdl_poll())
|
||||||
|
{
|
||||||
|
b = SDL_GetMouseState(&mx, &my);
|
||||||
|
if (!b)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return mystrdup(ed.str);
|
||||||
|
}
|
||||||
|
|
||||||
void info_ui(pixel *vid_buf, char *top, char *txt)
|
void info_ui(pixel *vid_buf, char *top, char *txt)
|
||||||
{
|
{
|
||||||
int x0=(XRES-240)/2,y0=(YRES-MENUSIZE)/2,b=1,bq,mx,my;
|
int x0=(XRES-240)/2,y0=(YRES-MENUSIZE)/2,b=1,bq,mx,my;
|
||||||
@ -2618,7 +2687,7 @@ int search_ui(pixel *vid_buf)
|
|||||||
pixel *thumb_rsdata = NULL;
|
pixel *thumb_rsdata = NULL;
|
||||||
pixel *thumb_imgdata = ptif_unpack(search_thumbs[pos], search_thsizes[pos], &finw, &finh);
|
pixel *thumb_imgdata = ptif_unpack(search_thumbs[pos], search_thsizes[pos], &finw, &finh);
|
||||||
if(thumb_imgdata!=NULL){
|
if(thumb_imgdata!=NULL){
|
||||||
thumb_rsdata = resample_img(thumb_imgdata, finw, finh, XRES/GRID_S, YRES/GRID_S);
|
thumb_rsdata = resample_img_nn(thumb_imgdata, finw, finh, XRES/GRID_S, YRES/GRID_S);
|
||||||
draw_image(v_buf, thumb_rsdata, gx, gy, XRES/GRID_S, YRES/GRID_S, 255);
|
draw_image(v_buf, thumb_rsdata, gx, gy, XRES/GRID_S, YRES/GRID_S, 255);
|
||||||
free(thumb_imgdata);
|
free(thumb_imgdata);
|
||||||
free(thumb_rsdata);
|
free(thumb_rsdata);
|
||||||
|
@ -30,6 +30,8 @@ void luacon_open(){
|
|||||||
{"delete", &luatpt_delete},
|
{"delete", &luatpt_delete},
|
||||||
{"register_step", &luatpt_register_step},
|
{"register_step", &luatpt_register_step},
|
||||||
{"unregister_step", &luatpt_unregister_step},
|
{"unregister_step", &luatpt_unregister_step},
|
||||||
|
{"input", &luatpt_input},
|
||||||
|
{"message_box", &luatpt_message_box},
|
||||||
{NULL,NULL}
|
{NULL,NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -703,4 +705,45 @@ int luatpt_unregister_step(lua_State* l)
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int luatpt_input(lua_State* l)
|
||||||
|
{
|
||||||
|
char *prompt, *title, *result, *shadow, *text;
|
||||||
|
title = mystrdup(luaL_optstring(l, 1, "Title"));
|
||||||
|
prompt = mystrdup(luaL_optstring(l, 2, "Enter some text:"));
|
||||||
|
text = mystrdup(luaL_optstring(l, 3, ""));
|
||||||
|
shadow = mystrdup(luaL_optstring(l, 4, ""));
|
||||||
|
|
||||||
|
if (vid_buf!=NULL)
|
||||||
|
{
|
||||||
|
result = input_ui(vid_buf, title, prompt, text, shadow);
|
||||||
|
lua_pushstring(l, result);
|
||||||
|
free(result);
|
||||||
|
free(title);
|
||||||
|
free(prompt);
|
||||||
|
free(text);
|
||||||
|
free(shadow);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
free(title);
|
||||||
|
free(prompt);
|
||||||
|
free(text);
|
||||||
|
free(shadow);
|
||||||
|
return luaL_error(l, "Screen buffer does not exist");
|
||||||
|
}
|
||||||
|
int luatpt_message_box(lua_State* l)
|
||||||
|
{
|
||||||
|
char *title, *text;
|
||||||
|
title = mystrdup(luaL_optstring(l, 1, "Title"));
|
||||||
|
text = mystrdup(luaL_optstring(l, 2, "Message"));
|
||||||
|
if (vid_buf!=NULL)
|
||||||
|
{
|
||||||
|
info_ui(vid_buf, title, text);
|
||||||
|
free(title);
|
||||||
|
free(text);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
free(title);
|
||||||
|
free(text);
|
||||||
|
return luaL_error(l, "Screen buffer does not exist");;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1741,6 +1741,9 @@ int main(int argc, char *argv[])
|
|||||||
http_session_check = http_async_req_start(NULL, "http://" SERVER "/Login.api?Action=CheckSession", NULL, 0, 0);
|
http_session_check = http_async_req_start(NULL, "http://" SERVER "/Login.api?Action=CheckSession", NULL, 0, 0);
|
||||||
http_auth_headers(http_session_check, svf_user_id, NULL, svf_session_id);
|
http_auth_headers(http_session_check, svf_user_id, NULL, svf_session_id);
|
||||||
}
|
}
|
||||||
|
#ifdef LUACONSOLE
|
||||||
|
luacon_eval("dofile(\"autorun.lua\")"); //Autorun lua script
|
||||||
|
#endif
|
||||||
while (!sdl_poll()) //the main loop
|
while (!sdl_poll()) //the main loop
|
||||||
{
|
{
|
||||||
frameidx++;
|
frameidx++;
|
||||||
|
Reference in New Issue
Block a user