ClientWindow::ClientWindow(SubWindowHost &host,const Config &cfg_) : ComboWindow(host), cfg(cfg_), menu(wlist,cfg.menu_cfg,menu_data), cascade_menu(host.getFrameDesktop(),cfg.cascade_menu_cfg), editor(wlist,cfg.editor_cfg), file_frame(host.getFrameDesktop(),cfg.file_cfg,{true,".cont.ddl"_def}), msg_frame(host.getFrameDesktop(),cfg.msg_cfg), connector_menu_selected(this,&ClientWindow::menu_selected,menu.selected), connector_cascade_menu_selected(this,&ClientWindow::cascade_menu_selected,cascade_menu.selected), connector_cascade_menu_pressed(this,&ClientWindow::cascade_menu_pressed,cascade_menu.pressed), connector_file_destroyed(this,&ClientWindow::file_destroyed,file_frame.destroyed), connector_msg_destroyed(this,&ClientWindow::msg_destroyed,msg_frame.destroyed) { wlist.insTop(menu,editor); wlist.enableTabFocus(false); // menu menu_data(+cfg.menu_File,MenuFile) (+cfg.menu_Options,MenuOptions); menu_file_data(+cfg.menu_New,MenuFileNew) (+cfg.menu_Open,MenuFileOpen) (MenuSeparator) (+cfg.menu_Save,MenuFileSave) (+cfg.menu_SaveAs,MenuFileSaveAs) (MenuSeparator) (+cfg.menu_Exit,MenuFileExit); menu_opt_data(+cfg.menu_Global,MenuOptionsUserPref) (+cfg.menu_App,MenuOptionsAppPref); // file frame file_frame.addFilter("*.cont.ddl"_c); file_frame.addFilter("*"_c,false); // msg frame msg_frame.setInfo(+cfg.text_AskSave) .add(+cfg.text_Yes,Button_Yes) .add(+cfg.text_No,Button_No) .add(+cfg.text_Cancel,Button_Cancel); }
void StartMenus() { unique_ptr<MenuInstanceData> menu_data(new MenuInstanceData{}); menu_data->reload = true; // force loading of menu if (!LoadMenuSetup(session()->usernum)) { strcpy(pSecondUserRec->szMenuSet, "wwiv"); // default menu set name pSecondUserRec->cHotKeys = HOTKEYS_ON; pSecondUserRec->cMenuType = MENUTYPE_REGULAR; WriteMenuSetup(session()->usernum); } while (menu_data->reload && !hangup) { menu_data->finished = false; menu_data->reload = false; if (!LoadMenuSetup(session()->usernum)) { LoadMenuSetup(1); ConfigUserMenuSet(); } if (!ValidateMenuSet(pSecondUserRec->szMenuSet)) { ConfigUserMenuSet(); } menu_data->Menus(pSecondUserRec->szMenuSet, "main"); // default starting menu } }
int main() { float SueldoAnualProfesional[LEGAJO] = {0}; float SueldoMes[MES + 1] = {0}; int TotalHorasExtra[LEGAJO] = {0}; bool validated = false; int menu_item; system("clear"); //system("cls") if(login_request()) // nos logeamos { while(menu_item != 5) // repetimos el switch hasta salir del menu { menu_item = menu_items(); // llamamos al menu para introducir items if(validated == false && menu_item == 0) // opcion 0 usable solo si no introducimos nada { menu_data(&validated, SueldoAnualProfesional, SueldoMes, TotalHorasExtra); // introducimos datos } else if(validated == true) // si ya introducimos datos habilitamos las otras opciones { switch(menu_item) // opciones despues de introducir datos { case 0: system("clear"); //system("cls"); getchar(); printf("Solo se puede introducir los datos una vez\n"); getchar(); break; case 1: system("clear"); //system("cls"); getchar(); data_processing(menu_item, SueldoAnualProfesional, 0); break; case 2: system("clear"); //system("cls"); getchar(); data_processing(menu_item, SueldoMes, 0); break; case 3: system("clear"); //system("cls"); getchar(); data_processing(menu_item, SueldoAnualProfesional, 0); break; case 4: system("clear"); //system("cls"); getchar(); data_processing(menu_item, SueldoAnualProfesional, TotalHorasExtra); break; } } else if(menu_item == 5) // terminamos el loop { return 0; } else // si tratamos de usar el menu sin introducir datos nos tira error { system("clear"); //system("cls"); getchar(); printf("Debes introducir los datos antes de usar el menu\n"); getchar(); } } } return 0; }