");
for (Theme = (The_Theme_t) 0;
Theme < The_NUM_THEMES;
Theme++)
{
fprintf (Gbl.F.Out,"
",
Theme == Gbl.Prefs.Theme ? "PREF_ON" :
"PREF_OFF");
Frm_StartForm (ActChgThe);
Par_PutHiddenParamString ("Theme",The_ThemeId[Theme]);
snprintf (Icon,sizeof (Icon),
"%s/%s/theme_32x20.gif",
Cfg_ICON_FOLDER_THEMES,
The_ThemeId[Theme]);
Ico_PutPrefIconLink (Icon,The_ThemeNames[Theme]);
Frm_EndForm ();
fprintf (Gbl.F.Out,"
");
}
fprintf (Gbl.F.Out,"
");
Box_EndBox ();
}
/*****************************************************************************/
/***************** Put contextual icons in theme preference ******************/
/*****************************************************************************/
static void The_PutIconsTheme (void)
{
/***** Put icon to show a figure *****/
Gbl.Figures.FigureType = Fig_THEMES;
Fig_PutIconToShowFigure ();
}
/*****************************************************************************/
/********************************* Change theme ******************************/
/*****************************************************************************/
void The_ChangeTheme (void)
{
char Path[PATH_MAX + 1 +
NAME_MAX + 1 +
NAME_MAX + 1];
/***** Get param theme *****/
Gbl.Prefs.Theme = The_GetParamTheme ();
snprintf (Path,sizeof (Path),
"%s/%s/%s",
Gbl.Prefs.URLIcons,
Cfg_ICON_FOLDER_THEMES,
The_ThemeId[Gbl.Prefs.Theme]);
Str_Copy (Gbl.Prefs.URLTheme,Path,
PATH_MAX);
/***** Store theme in database *****/
if (Gbl.Usrs.Me.Logged)
DB_QueryUPDATE ("can not update your preference about theme",
"UPDATE usr_data SET Theme='%s'"
" WHERE UsrCod=%ld",
The_ThemeId[Gbl.Prefs.Theme],Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Set preferences from current IP *****/
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/
/***************************** Get parameter theme ***************************/
/*****************************************************************************/
The_Theme_t The_GetParamTheme (void)
{
char ThemeId[The_MAX_BYTES_THEME_ID + 1];
The_Theme_t Theme;
Par_GetParToText ("Theme",ThemeId,The_MAX_BYTES_THEME_ID);
for (Theme = (The_Theme_t) 0;
Theme < The_NUM_THEMES;
Theme++)
if (!strcmp (ThemeId,The_ThemeId[Theme]))
return Theme;
return The_THEME_UNKNOWN;
}
/*****************************************************************************/
/**************************** Get theme from string **************************/
/*****************************************************************************/
The_Theme_t The_GetThemeFromStr (const char *Str)
{
The_Theme_t Theme;
for (Theme = (The_Theme_t) 0;
Theme < The_NUM_THEMES;
Theme++)
if (!strcasecmp (Str,The_ThemeId[Theme]))
return Theme;
return The_THEME_UNKNOWN;
}