Example #1
0
void COsdLangSetup::showSetup()
{
	CMenuWidget *osdl_setup = new CMenuWidget(LOCALE_LANGUAGESETUP_HEAD, NEUTRINO_ICON_LANGUAGE, width);

	osdl_setup->addItem(GenericMenuSeparator);
	osdl_setup->addItem(GenericMenuBack);
	osdl_setup->addItem(GenericMenuSeparatorLine);

	//search available languages....

	struct dirent **namelist;
	int n;
	//		printf("scanning locale dir now....(perhaps)\n");

	const char *pfad[] = {DATADIR "/neutrino/locale","/var/tuxbox/config/locale"};

	for(int p = 0;p < 2;p++)
	{
		n = scandir(pfad[p], &namelist, 0, alphasort);
		if(n < 0)
		{
			perror("loading locales: scandir");
		}
		else
		{
			for(int count=0;count<n;count++)
			{
				char * locale = strdup(namelist[count]->d_name);
				char * pos = strstr(locale, ".locale");
				if(pos != NULL)
				{
					*pos = '\0';
					CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, new COsdLangNotifier());
					oj->addOption(locale);
					osdl_setup->addItem( oj );
				}
				else
					free(locale);
				free(namelist[count]);
			}
			free(namelist);
		}
	}

	osdl_setup->exec(NULL, "");
	osdl_setup->hide();
	delete osdl_setup;
}
//shows locale setup for language selection
void COsdLangSetup::showLanguageSetup(CMenuWidget *osdl_setup)
{
	struct dirent **namelist;
	int n;
	//		printf("scanning locale dir now....(perhaps)\n");
	char *pfad[] = {(char *) DATADIR "/neutrino/locale",(char *) "/var/tuxbox/config/locale"};
	
	osdl_setup->addIntroItems();

	for (int p = 0; p < 2; p++) 
	{
		n = scandir(pfad[p], &namelist, 0, alphasort);
		if (n < 0) 
		{
			perror("loading locales: scandir");
		} 
		else 
		{
			for (int count=0; count<n; count++) 
			{
				char * locale = strdup(namelist[count]->d_name);
				char * pos = strstr(locale, ".locale");
				if (pos != NULL) 
				{
					char iname[50];
					*pos = '\0';
					sprintf(iname, "%s", locale);
					CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, this, iname);
					oj->addOption(locale);
					osdl_setup->addItem( oj );
				} else
					free(locale);
				free(namelist[count]);
			}
			free(namelist);
		}
	}
}