⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppp_modem.cxx

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 CXX
📖 第 1 页 / 共 5 页
字号:
	//ppp_add_config_gateway = new IP_Input(85, 105, 130, 20, "Gateway:");	//ppp_add_config_broadcast = new IP_Input(85, 130, 130, 20, "Broadcast:");	//add_dns_domain = new NxInput(85, 180, 130, 20, "Domainname:");	//add_dns_domain->hide();	//add_dns_ip = new IP_Input(85, 205, 130, 20, "DNS-Server IP:");	//add_dns_ip->hide();	ppp_add_config_script =	    new NxMultilineInput(BUTTON_X, BUTTON_Y - BUTTON_HEIGHT - 20,				 W_W - 15, 30, "Chat Script");	ppp_add_config_script->align(FL_ALIGN_TOP);	ppp_add_config_group->end();	config_win->add((Fl_Widget *) ppp_add_config_group);    }}/***************************ppp_modem_setup**********************************////////////////////////////////////////////////////////////////      function:               PPP_Modem_setup::edit_config_value//      description:    get the config values from config file//      parameters:             PPP_Add_config *config - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::edit_config_value(PPP_Add_Config * config){    char config_value[60];    char dev_choice[20];    char speed_choice[15];    char ip_dest[20] = "";    char ip_source[20] = "";    //char ip_broadcast[20] = "";    //char ip_gateway[20] = "";    char dhcp[5];    char autos[5] = "";    //char dnsip[16] = "";    char domainname[30] = "";    char file[70];    int val = 0;    val = ppp_modem_setup_browser->value();    if (0 >= val) {	return;    }    strcpy(config_value, ppp_modem_setup_browser->text(val));    IniGetString(config_value, "device", NULL, dev_choice,		 sizeof(dev_choice) - 1, CONFIG_FILE);    IniGetString(config_value, "speed", NULL, speed_choice,		 sizeof(speed_choice) - 1, CONFIG_FILE);    IniGetString(config_value, "dest", NULL, ip_dest, sizeof(ip_dest) - 1,		 CONFIG_FILE);    IniGetString(config_value, "source", NULL, ip_source,		 sizeof(ip_source) - 1, CONFIG_FILE);    //IniGetString(config_value, "broadcast", NULL, ip_broadcast, sizeof(ip_broadcast) - 1, CONFIG_FILE);    //IniGetString(config_value, "gateway", NULL, ip_gateway, sizeof(ip_gateway) - 2, CONFIG_FILE);    IniGetString(config_value, "dhcp", NULL, dhcp, sizeof(dhcp) - 1,		 CONFIG_FILE);    IniGetString(config_value, "auto", NULL, autos, sizeof(autos) - 1,		 CONFIG_FILE);    //IniGetString(config_value, "dnsip", NULL, dnsip, sizeof(dnsip) - 1, CONFIG_FILE);    IniGetString(config_value, "domainname", NULL, domainname,		 sizeof(domainname) - 1, CONFIG_FILE);    config->set_config_value(config_value);    config->set_device_value(dev_choice);    config->set_speed_value(speed_choice);    config->set_dest_value(ip_dest);    config->set_source_value(ip_source);    //config->set_broadcast_value(ip_broadcast);    //config->set_gateway_value(ip_gateway);    config->set_dhcp_value(dhcp);    config->set_auto_value(autos);    //config->set_dns_domain_value(domainname);    //config->set_dns_ip_value(dnsip);        sprintf(file, "%s%s", SCRIPT_PREFIX, config_value);    get_script_file(file, config);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::change_config_value()//      description:    change the config value to one not in use//      parameters:             PPP_Add_Config *config - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::change_config_value(PPP_Add_Config * config){    char buf[20];    bool match = true;    int configs = ppp_modem_setup_browser->size();    int nums = 1;    sprintf(buf, "NewConfig%d", nums);    while (match) {	for (int idx = 1; idx <= configs; idx++) {	    if (0 == strcmp(buf, ppp_modem_setup_browser->text(idx))) {		match = true;		idx = 0;		sprintf(buf, "NewConfig%d", ++nums);	    }	}	match = false;    }    config->set_config_value(buf);    config->set_device_value(0);    config->set_speed_value(0);    config->set_dhcp_value("on");    config->set_auto_value("on");}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::write_config()//      description:    write the config file//      parameters:             PPP_Add_Config *config - pointer to parnet object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::write_config(PPP_Add_Config * config){    char cfg[60];    char dialer_cfg[90];    char script_file[70];    strcpy(cfg, config->get_config_value());    IniWriteString(cfg, "device", (char *) config->get_device_value(),		   CONFIG_FILE);    IniWriteString(cfg, "speed", (char *) config->get_speed_value(),		   CONFIG_FILE);    IniWriteString(cfg, "dest", (char *) config->get_dest_value(),		   CONFIG_FILE);    IniWriteString(cfg, "source", (char *) config->get_source_value(),		   CONFIG_FILE);    //IniWriteString(cfg, "broadcast",  (char *)config->get_broadcast_value(), CONFIG_FILE);    //IniWriteString(cfg, "gateway", (char *)config->get_gateway_value(), CONFIG_FILE);    IniWriteString(cfg, "dhcp", (char *) config->get_dhcp_value(),		   CONFIG_FILE);    IniWriteString(cfg, "auto", (char *) config->get_auto_value(),		   CONFIG_FILE);    //IniWriteString(cfg, "domainname", (char *)config->get_dns_domain_value(), CONFIG_FILE);    //IniWriteString(cfg, "dnsip", (char *)config->get_dns_ip_value(), CONFIG_FILE);          sprintf(script_file, "%s%s", SCRIPT_PREFIX, cfg);    write_script_file(script_file, config);    sprintf(dialer_cfg, "Dialer %s", cfg);    IniWriteString(dialer_cfg, "Modem", (char *) config->get_device_value(),		   DIALER_FILE);    IniWriteString(dialer_cfg, "Baud", (char *) config->get_speed_value(),		   DIALER_FILE);    chmod(CONFIG_FILE, MODE_RDWR);    chmod(DIALER_FILE, MODE_RDWR);    chmod(script_file, MODE_RDWR);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::write_script_file()//      description:    write out the script file for this config//      parameters:             char *file - file to write to//                                              PPP_Add_Config *config - pointer to parent object////      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::write_script_file(char *file, PPP_Add_Config * config){    FILE *fp;    if (0 == strcmp(config->get_script_value(), "")) {	remove(file);	return;    }    if ((fp = fopen(file, "w+")) == NULL) {	return;    }    fputs(config->get_script_value(), fp);    fclose(fp);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_setup::get_script_file()//      description:    get the script input from a file//      parameters:             char *file - file to get script form//                                              PPP_Add_Config *config - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::get_script_file(char *file, PPP_Add_Config * config){    FILE *fp;    char script[MAX_SCRIPT_SIZE] = "";    char buf[4096];    off_t pos = 0;    if ((fp = fopen(file, "r")) == NULL) {	return;    }    while (NULL != fgets(buf, sizeof(buf) - 1, fp)) {	pos += strlen(buf);	if (MAX_SCRIPT_SIZE < pos) {	    off_t diff = pos - MAX_SCRIPT_SIZE;	    strncat(script, buf, strlen(buf) - diff - 1);	    break;	} else {	    strncat(script, buf, strlen(buf));	}    }    config->set_script_value(script);    fclose(fp);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::edit_config()//      description:    edit the config value//      parameters:             PPP_Add_config * config - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::edit_config(PPP_Add_Config * config){    char cfg[60];    strcpy(cfg, config->get_config_value());    if (0 == strcmp(cfg, "")) {	change_config_value(config);	strcpy(cfg, config->get_config_value());    }    for (int idx = 1; idx <= ppp_modem_setup_browser->size(); idx++) {	if (0 == strcmp(cfg, ppp_modem_setup_browser->text(idx))) {	    write_config(config);	    return;	}    }    fl_addto_browser(ppp_modem_setup_browser, cfg);    account_modem->add_config(cfg);    write_config(config);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::add_config//      description:    add config value to config browser and file//      parameters:             PPP_Add_config *config - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::add_config(PPP_Add_Config * config){    char cfg[60];    strncpy(cfg, config->get_config_value(), 59);    if (0 == strcmp(cfg, "")) {	change_config_value(config);	strcpy(cfg, config->get_config_value());    }    fl_addto_browser(ppp_modem_setup_browser, get_config_value(config));    account_modem->add_config(cfg);    write_config(config);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::ppp_delete_config_cb()//      descriptioin:   delete config file from config browser and file//      parameters:             Fl_Widget *widget - pointer to calling widget//                                              void *parent - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::ppp_delete_config_cb(Fl_Widget * widget, void *parent){    char cfg[60];    int val = 0;    char file[70];    PPP_Modem_Setup *setup = (PPP_Modem_Setup *) parent;    val = setup->ppp_modem_setup_browser->value();    if (0 >= val) {	return;    }    strcpy(cfg, setup->ppp_modem_setup_browser->text(val));    IniDelSection(cfg, CONFIG_FILE);    fl_delete_browser_line(setup->ppp_modem_setup_browser, val);    fl_select_browser_line(setup->ppp_modem_setup_browser, 1);    setup->account_modem->delete_config(val);    sprintf(file, "%s%s", SCRIPT_PREFIX, cfg);    unlink(file);}///////////////////////////////////////////////////////////////      function:               PPP_Modem_Setup::ppp_add_config_cb()//      description:    callback for add/edit config //      parameters:             Fl_Widget *widget - pointer to calling widget//                                              void *parent - pointer to parent object//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::ppp_add_config_cb(Fl_Widget * widget, void *parent){    NxButton *button = (NxButton *) widget;    PPP_Modem_Setup *setup = (PPP_Modem_Setup *) (parent);    PPP_Modem *this_modem = setup->get_ppp_modem();    PPP_Add_Config *config = this_modem->_add_config;    if (button == setup->ppp_modem_setup_add_button) {	setup->change_config_value(config);    }    if (button == setup->ppp_modem_setup_edit_button) {	if (setup->ppp_modem_setup_browser->size() == 0)	    return;	setup->edit_config_value(config);    }    config->set_ip_info();    this_modem->_add_config->show();    while (this_modem->_add_config->get_parent_window()->shown()) {	Fl::wait();	for (;;) {	    Fl_Widget *o = Fl::readqueue();	    if (!o) {		break;	    }	    if (o == config->ok_button) {		if (button == setup->ppp_modem_setup_add_button) {		    setup->add_config(config);		}		if (button == setup->ppp_modem_setup_edit_button) {		    setup->edit_config(config);		}		this_modem->_add_config->hide();		setup->show();		//      parent_win->show();		//      parent_win->remove(&ppp_config_win);		return;	    }	    if ( /*o == &ppp_config_win || */ o == config->cancel_button) {		//      ppp_config_win.hide();		this_modem->_add_config->hide();		setup->show();		//      parent_win->show();		//      parent_win->remove(&ppp_config_win);		return;	    }	}    }}///////////////////////////////////////////////////////////////      functoin:               PPP_Modem_Setup::fill_config_browser()//      description:    fill config browser from config file//      parameters:             none//      returns:                        none/////////////////////////////////////////////////////////////voidPPP_Modem_Setup::fill_config_browser(){    int size = account_modem->get_num_configs();    for (int idx = 0; idx < size; idx++) {	fl_addto_browser(ppp_modem_setup_browser,			 account_modem->get_config_name(idx));    }    fl_set_browser_topline(ppp_modem_setup_browser, 1);    fl_select_browser_line(ppp_modem_setup_browser, 1);}///////////////////////////////////////////////////////////////      fucntion:               PPP_Modem_Setup::hide()//      description:    hide the object//      parameters:             none//      returns:                        none//////////////////////////////////////////////////////////////voidPPP_Modem_Setup::hide(){    get_parent_win()->hide();    /*       ppp_modem_setup_add_button->show();       ppp_modem_setup_edit_button->show();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -