void CMenu::menu_entry::ReadConfig( config& _cfg, int _level ) { int curlevel = 0; std::string sthname; std::string sthtext; std::string line; std::cout << "ReadConfig" << DBGINFO << std::endl; bool flag = _cfg.next(); while( flag ) { std::cout << "ReadConfig: " << _cfg.line << " " << DBGINFO << std::endl; ParseLine( _cfg.line, curlevel, sthname, sthtext ); std::cout << "ReadConfig: " << curlevel << "," << sthname << "," << sthtext << " " << DBGINFO << std::endl; if( curlevel != _level ) return; menu_entry* me = new menu_entry( this ); me->handler = sthname; me->text = sthtext; std::cout << "me.handler = " << me->handler << " " << DBGINFO << std::endl; if( me->handler == CMENU ) { std::cout << "ReadConfig: recursion" << DBGINFO << std::endl; me->ReadConfig( _cfg, _level+1 ); } else { flag = _cfg.next(); } //TODO me->Validate(); this->submenu.push_back( me ); } }