bool login_form_do(nsurl * url, char * realm, char ** out) { char user[255]; char pass[255]; //const char * auth; short exit_obj = 0; OBJECT * tree; user[0] = 0; pass[0] = 0; // TODO: use auth details for predefined login data // auth = urldb_get_auth_details(url, realm); tree = gemtk_obj_get_tree(LOGIN); assert(tree != NULL); exit_obj = simple_mdial(tree, 0); if(exit_obj == LOGIN_BT_LOGIN) { get_string(tree, LOGIN_TB_USER, user); get_string(tree, LOGIN_TB_PASSWORD, pass); int size = strlen((char*)&user) + strlen((char*)&pass) + 2 ; *out = malloc(size); snprintf(*out, size, "%s:%s", user, pass); } else { *out = NULL; } return((exit_obj == LOGIN_BT_LOGIN)); }
void handle_menu(int16 title, int16 item) { switch (item) { case MENDE : quit = TRUE; break; case MOPEN : open_wdial( wdial, -1, -1 ); break; case MABOUT : simple_mdial( about, 0 ); break; default: break; } menu_tnormal(menu, title, 1); }
/*----------------------------------------------------------------------------------------*/ int16 menu_context( int16 mx, int16 my ) { int16 obj, pob, wh; wh = wind_find( mx, my ); set_state( tools, POP_ORIGIN, DISABLED, TRUE ); set_state( tools, POP_ITOPEN, DISABLED, TRUE ); set_flag( tools, POP_ITCLOSE, HIDETREE, TRUE ); set_flag( tools, POP_ITOPEN, HIDETREE, FALSE ); if( wh == wdial->win_handle && wdial->mode == WD_OPEN ) { obj = objc_find( wdial->tree, ROOT, MAX_DEPTH, mx, my ); if( obj > -1 ) { dyn_fnode( wdial, obj ); if( clnode ) { my -= tools[POP_ITOPEN].ob_y; if( clnode->type == ItemTag && file_exist(clnode->attr.item->path) ) { set_state( tools, POP_ORIGIN, DISABLED, FALSE ); set_state( tools, POP_ITOPEN, DISABLED, FALSE ); } else if( clnode->type == FolderTag ) { set_state( tools, POP_ITOPEN, DISABLED, FALSE ); if( clnode->attr.folder->open ) { set_flag( tools, POP_ITOPEN, HIDETREE, TRUE ); set_flag( tools, POP_ITCLOSE, HIDETREE, FALSE ); } } } } pob = icn_popup( TOOLS, POPUP, mx, my ); switch( pob ) { case POP_INFO: simple_mdial( about, 0 ); break; case POP_ORIGIN: av_xwind( clnode->attr.item->path ); break; case POP_ITCLOSE: case POP_ITOPEN: click_node( clnode, wdial, obj ); break; case POP_HELP: open_hyp( "*:\\mcontrol.hyp", "" ); break; default: break; } } return 0; }