define('SMOPT_GRP_MAILBOX', 1);
define('SMOPT_GRP_MESSAGE', 2);
-/* Define the optpage load function for the display options page. */
+// load icon themes if in use
+global $use_icons;
+if ($use_icons) {
+ global $icon_themes;
+ $dirName = SM_PATH . 'images/themes';
+ $d = dir($dirName);
+ while($dir = $d->read()) {
+ if ($dir != "." && $dir != "..") {
+ if (is_dir($dirName."/".$dir) && file_exists("$dirName/$dir/theme.php"))
+ include("$dirName/$dir/theme.php");
+ }
+ }
+}
+
+/**
+ * This function builds an array with all the information about
+ * the options available to the user, and returns it. The options
+ * are grouped by the groups in which they are displayed.
+ * For each option, the following information is stored:
+ * - name: the internal (variable) name
+ * - caption: the description of the option in the UI
+ * - type: one of SMOPT_TYPE_*
+ * - refresh: one of SMOPT_REFRESH_*
+ * - size: one of SMOPT_SIZE_*
+ * - save: the name of a function to call when saving this option
+ * @return array all option information
+ */
function load_optpage_data_display() {
global $theme, $language, $languages, $js_autodetect_results,
$compose_new_win, $default_use_mdn, $squirrelmail_language, $allow_thread_sort,
- $optmode, $show_alternative_names, $available_languages;
+ $optmode, $show_alternative_names, $available_languages, $use_icons;
/* Build a simple array into which we will build options. */
$optgrps = array();
'refresh' => SMOPT_REFRESH_NONE
);
+ if ($use_icons) {
+ global $icon_themes, $icon_theme;
+ $temp = array();
+ for ($count = 0; $count < sizeof($icon_themes); $count++) {
+ $temp[$count] = $icon_themes[$count]['NAME'];
+ if ($icon_theme == $icon_themes[$count]['PATH'])
+ $value = $count;
+ }
+ $optvals[SMOPT_GRP_MAILBOX][] = array(
+ 'name' => 'icon_theme',
+ 'caption' => _("Message Flags Icon Theme"),
+ 'type' => SMOPT_TYPE_STRLIST,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ 'posvals' => $temp,
+ 'initial_value' => $value,
+ 'save' => 'icon_theme_save'
+ );
+ }
+
$optvals[SMOPT_GRP_MAILBOX][] = array(
'name' => 'page_selector',
'caption' => _("Enable Page Selector"),
$optvals[SMOPT_GRP_MESSAGE][] = array(
'name' => 'editor_size',
- 'caption' => _("Size of Editor Window"),
+ 'caption' => _("Width of Editor Window"),
+ 'type' => SMOPT_TYPE_INTEGER,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ 'size' => SMOPT_SIZE_TINY
+ );
+
+ $optvals[SMOPT_GRP_MESSAGE][] = array(
+ 'name' => 'editor_height',
+ 'caption' => _("Height of Editor Window"),
'type' => SMOPT_TYPE_INTEGER,
'refresh' => SMOPT_REFRESH_NONE,
'size' => SMOPT_SIZE_TINY
'type' => SMOPT_TYPE_BOOLEAN,
'refresh' => SMOPT_REFRESH_ALL
);
+ $optvals[SMOPT_GRP_MESSAGE][] = array(
+ 'name' => 'delete_prev_next_display',
+ 'caption' => _("Show 'Delete & Prev/Next' Links"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'refresh' => SMOPT_REFRESH_ALL
+ );
+
}
/* Assemble all this together and return it as our result. */
$result = array(
/** Define any specialized save functions for this option page. ***/
/******************************************************************/
+/**
+ * This function saves a new theme setting.
+ * It updates the theme array.
+ */
function save_option_theme($option) {
global $theme;
save_option($option);
}
+/**
+ * This function saves the javascript detection option.
+ */
function save_option_javascript_autodetect($option) {
global $data_dir, $username, $new_javascript_setting;
}
}
+/**
+ * This function saves the user's icon theme setting
+ */
+function icon_theme_save($option) {
+
+ global $icon_themes, $data_dir, $username;
+
+
+ // Don't assume the new value is there, double check
+ // and only save if found
+ //
+ if (isset($icon_themes[$option->new_value]['PATH']))
+ setPref($data_dir, $username, 'icon_theme', $icon_themes[$option->new_value]['PATH']);
+ else
+ setPref($data_dir, $username, 'icon_theme', 'none');
+
+}
+
?>