static int k_any(Ihandle *ih, int c) { switch(c) { case K_m: IupSetGlobal("PARENTDIALOG", "_MAIN_DIALOG_TEST_"); IupMessage("IupMessage Test", "Message Text\nSecond Line."); IupSetGlobal("PARENTDIALOG", NULL); break; case K_e: new_message("ERROR", NULL); break; case K_i: new_message("INFORMATION", NULL); break; case K_w: new_message("WARNING", "OKCANCEL"); break; case K_q: new_message("QUESTION", "YESNO"); break; case K_c: new_color(); break; case K_f: new_font(); break; case K_o: new_file("OPEN", 0); break; case K_O: new_file("OPEN", 1); break; case K_G: new_file("OPEN", 2); break; case K_s: new_file("SAVE", 0); break; case K_d: new_file("DIR", 0); break; case K_a: new_alarm(); break; case K_y: IupShow(IupLayoutDialog(NULL)); break; case K_g: new_getfile(); break; case K_t: new_gettext(); break; case K_l: new_list(); break; case K_ESC: IupDestroy(ih); return IUP_IGNORE; } return IUP_DEFAULT; }
static int LayoutDialog(lua_State *L) { iuplua_pushihandle(L,IupLayoutDialog(iuplua_checkihandleornil(L,1))); return 1; }
int iupKeyProcessNavigation(Ihandle* ih, int code, int shift) { /* this is called after K_ANY is processed, so the user may change its behavior */ if (code == K_cTAB) { int is_multiline = iupAttribGetInt(ih, "_IUP_MULTILINE_TEXT"); if (is_multiline) { if (shift) IupPreviousField(ih); else IupNextField(ih); return 1; } } else if (code == K_TAB || code == K_sTAB) { int is_multiline = iupAttribGetInt(ih, "_IUP_MULTILINE_TEXT"); if (!is_multiline) { if (code == K_sTAB || shift) IupPreviousField(ih); else IupNextField(ih); return 1; } } else if (code == K_UP || code == K_DOWN) { int is_button = (IupClassMatch(ih, "button") || IupClassMatch(ih, "toggle")); if (is_button) { if (code == K_UP) iupFocusPrevious(ih); else iupFocusNext(ih); return 1; } } else if (code==K_ESC) { Ihandle* bt = IupGetAttributeHandle(IupGetDialog(ih), "DEFAULTESC"); if (iupObjectCheck(bt) && IupClassMatch(bt, "button")) iupdrvActivate(bt); return 1; } else if (code==K_CR || code==K_cCR) { int is_multiline = iupAttribGetInt(ih, "_IUP_MULTILINE_TEXT"); if ((code==K_CR && !is_multiline) || (code==K_cCR && is_multiline)) { Ihandle* bt = IupGetAttributeHandle(IupGetDialog(ih), "DEFAULTENTER"); if (iupObjectCheck(bt) && IupClassMatch(bt, "button")) iupdrvActivate(bt); return 1; } } else if (iup_isCtrlXkey(code) && iup_isShiftXkey(code) && iup_isAltXkey(code) && iup_XkeyBase(code) == K_L) { /* Ctrl+Shift+Alt+L */ IupShow(IupLayoutDialog(IupGetDialog(ih))); } return 0; }