Ejemplo n.º 1
0
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 );	
	}
}