\n";
var.val += string_f("
\n",gameid.c_str());
var.val += draw_main_image(sp.mobile,ctx.docnum,ctx.maywrite,var_script.val);
var.val += "
\n";
var.val += string_f("
\n",gameid.c_str());
var.val += draw_main_caption(sp.mobile,ctx.docnum,var_script.val);
var.val += "
\n";
var.val += string_f("
\n",gameid.c_str());
var.val += draw_small_images(sp.mobile,ctx.docnum,ctx.maywrite,glocal.mini_height,var_script.val);
var.val += "
\n";
var.val += "
\n";
}
res.emplace_back(move(var));
res.emplace_back(move(var_script));
}else if (is_eq(var,REQ_LISTREGION)){
VARVAL var,var_script;
var.var = VAR_CONTENT;
var.val += string_f("main:%s\n",MSG_U(I_PHOTOREGION_MAIN,"Large image"));
var.val += string_f("mini:%s\n",MSG_U(I_PHOTOREGION_MINI,"Small images"));
var.val += string_f("caption:%s\n",MSG_U(I_PHOTOREGION_CAPTION,"Image caption"));
var.val += string_f("all:%s\n",MSG_U(I_PHOTOREGION_ALL,"All regions"));
res.emplace_back(move(var));
}else if (is_eq(var,REQ_CHAT)){
appendchat(val,notify_var.val,res,ctx);
}else if (is_eq(var,REQ_GETFIELDS)){
VARVAL var;
var.var = VAR_FIELDS;
if (strcmp(val,DIALOG_PHOTOS_CONFIG)==0){
for (auto &im:images) var.val += string_f("img:%s\n",im.image.c_str());
}else if (strcmp(val,DIALOG_PHOTOS_TXTEDIT)==0){
if (main_image < images.size()){
auto &im = images[main_image];
auto lines = str_cnv2lines(im.caption);
var.val += string_f("img:%s\n",im.image.c_str());
for (auto &l:lines){
var.val += string_f("line:%s\n",l.c_str());
}
}
}
res.emplace_back(var);
}else if (is_eq(var,REQ_FOCUS)){
setfocus(script_var);
}else if (ctx.maywrite){
if (is_eq(var,KBD_HMOVE)){
unsigned old = main_image;
if (is_eq(val,"1")){
if (images.size() > 0 && main_image < images.size()-1) main_image++;
}else{
if (main_image > 0) main_image--;
}
updateif (old,updimages,notify_var);
}else if (is_any_of(var,"select","mselect")){
double dx,dy;
unsigned button;
bool shiftkey,ctrlkey;
if (splitline(val,',',dx,dy,limits(button,1u,2u),shiftkey,ctrlkey)){
// tlmp_warning ("dx=%lf dy=%lf val=%s\n",dx,dy,val);
unsigned old = main_image;
if (is_eq(var,"select")){
if (dx > board_width/2){
if (images.size() > 0 && main_image < images.size()-1) main_image++;
}else{
if (main_image > 0) main_image--;
}
}else{
unsigned new_main_image = dx/(glocal.mini_height-4);
if (new_main_image < images.size()) main_image = new_main_image;
}
updateif (old,updimages,notify_var);
}
}else if (is_eq(var,"newgame")){
int uval = atoi(val);
if (uval == BUTTON_CONFIG){
VARVAL var;
var.var = VAR_DIALOG;
var.val = DIALOG_PHOTOS_CONFIG;
res.emplace_back(var);
}else if (uval == BUTTON_TXTEDIT){
VARVAL var;
var.var = VAR_DIALOG;
var.val = DIALOG_PHOTOS_TXTEDIT;
res.emplace_back(var);
}
}else if (is_eq(var,"resetgame")){
resetgame();
setmodified(ctx.username);
}else if (is_eq(var,"config")){
}else if (is_eq(var,"addimage")){
string image;
bool ok = false;
if (splitlineq(val,image)){
if (images.size() < 100 && photos_checkurlpath(image)){
updimages.insert(images.size());
images.push_back(IMAGE(image));
ok = true;
setmodified(ctx.username);
}
}
if (!ok){
api_error = MSG_U(E_IVLADDIMAGE,"Invalid addimage command");
}
}else if (is_eq(var,"setimage")){
unsigned no;
string image;
bool ok = false;
if (splitlineq(val,no,image)){
if (no < 100 && photos_checkurlpath(image)){
while (images.size() <= no){
updimages.insert(images.size());
images.emplace_back("");
}
images[no] = IMAGE(image);
updimages.insert(no);
ok = true;
setmodified(ctx.username);
}
}
if (!ok){
api_error = MSG_U(E_IVLSETIMAGE,"Invalid setimage command");
}
}else if (is_eq(var,"setcaption")){
string image,caption;
bool ok = false;
if (splitlineq(val,image,caption)){
unsigned no = 0;
for (auto &im:images){
if (im.image == image){
im.caption = caption;
ok = true;
setmodified(ctx.username);
break;
}
no++;
}
}
if (!ok){
api_error = MSG_U(E_IVLSETCAPTION,"Invalid setcaption command");
}
}else if (is_eq(var,"images")){ // Receives the image list from the dialog
// Receives the images from the configuration dialog
vector