/* * Preferences & Persistent Attributes in Gnumeric * */ /* Task */ To have persistent workbook attributes, such as grid line color, default style for empty cells, and the host of of excel options, for which I have already generated a list. In addition some application wide preferences like user defined plugin directories also need to be done. Workbook attributes should have the ability to undone and redone. /* Plan */ The application wide preferences will be done via the usual gnome-config system. A preferences struct available globally can store various values. Workbook and sheet attributes will be handled by GtkArgs. Each object can provide an array of GtkArgs (via internal use of gtk_object_getv) which can then be written out as part of a xmlDocNode in a standard way. The format will be: Workbook::show_horizontal_scrollbar 4 FALSE Workbook::show_vertical_scrollbar 4 FALSE Workbook::show_notebook_tabs 4 FALSE Name is the GtkArg name, type is GtkArg type (for easy mapping). Complex types (ie other objects) can be handled be multiple tags, perhaps using a "name" attribute. When the attributes are read back in they are turned into a GList of GtkArgs. Workbook and sheet objects will have functions to take this list and internally set the args. Undo/Redo will be done by using utility function calls of the workbook and sheet objects that get and set individual attributes interface for all attributes. The command struct will use a simple structure to store the previous arg. The workbook and sheet objects will also provide dialogs to set these attributes. /* * Gnumeric Preferences * * Additional preferences not found in the excel list. * */ Application * Show history list (boolean) - if true, additional attribute: number of files (int) * Default plugin directories (file names) /* * Excel Preferences * * A list of all preferences found in Excel 97, broken down by * object type. * */ Application * Show formula bar (boolean) * Show status bar (boolean) * Comment display: none, indicator, indicator and comment (choice) * Calculations: automatic, auto except tables, manual (choice) - manual has a boolean attribute for calcing before save - the are buttons to calc the sheet and calc now * Iteration (boolean) - not sure what this is doing exactly * Maximum iterations (integer value) - not sure what this is doing exactly (related to iteration) * Minimum change (real value) - not sure what this is doing exactly (related to iteration) * Edit directly in cell (boolean) - if true, cursor in cell else cursor in entry box * Allow cell drag and drop (boolean) - additional attribute if true, Alert before overwriting (boolean) * Move selection after enter (boolean) - additional attribute if true, Direction of movement: up, down, left, right (choice) * Fixed number of decimals places (boolean) - additional attribute if true, Number of decimal places (integer value) * Cut, copy, and sort objects with cells (boolean) * Ask to update automatic links (boolean) * Provide feedback with Animation (boolean) - not exactly sure what this does * Enable AutoComplete for cell values (boolean) * R1C1 Reference Style (boolean) - indicate row and column by offset - references are relative * Ignore other applications (boolean) - don't know what this does * Macro virus protection (boolean) - prompts to disable vb macros * Recently used file list (boolean) - additional attribute if true, number of files (integer) * Prompt for workbook properties (boolean) - prompts for summary info when saving if true * Provide feedback with sound (boolean) * Zoom on roll with Intellimouse (boolean) * Sheets in new workbook (integer) * Standard font (font) * Font size (integer) * Default file location (string) * Alternate startup file location (string) * User name (string) * Save Excel files as (string) - various formats * Microsoft Excel menu or help key (string) * Key binding: Excel menus, Lotus 1-2-3 help (choice) - binds the functionality to the key from the above attribute * Transition navigation keys (boolean) - don't know what this does * Transition formula evaluation - don't know what this does * Transition formula entry - don't know what this does - above three seem related to Lotus key bindings * Custom lists - allow user to make lists for autofill Workbook * Object display: show all, show placeholders, hide all (choice) * Horizontal scrollbar (boolean) * Vertical scrollbar (boolean) * Sheet tabs (boolean) * Update remote references during calc (boolean) * Keep only as much precision as displayed (boolean) * Use 1904 date system (boolean) - converts dates when selected/unselected - stores dates relative to 1904 when true * Accept labels in formulae (boolean) - converts labels to cell references * Save external link values (boolean) - I think this keeps the last known external link value with the workbook instead of only relying on the reference * Standard colours - sets palette for text and fill * Chart fill - standard chart fill colours * Chart lines - standard chart lines colours Sheet * Grid lines (boolean) * Grid line colour (colour or auto/default) * Row and column headers (boolean) * Page break indicators (boolean) * Show formulae (boolean) * Show zero values (boolean) * Show outline symbols (boolean) Chart * Plot empty cells as: Not plotted, Zero, Interpolated (choice) * Plot visible cells only (boolean) * Chart sizes with window frame (boolean) - don't know how to activate this option * Show names (boolean) - chart tips * Show values (boolean) - chart tips