Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
GNOME
gnumeric
Commits
49b033cc
Commit
49b033cc
authored
Jul 02, 1998
by
Arturo Espinosa
Browse files
TODO updates, framework updated -mig
parent
6ef7285c
Changes
4
Hide whitespace changes
Inline
Side-by-side
TODO
View file @
49b033cc
GNOME Spread Sheet task list
* Parser
The parser should understand the Excel syntax for expressions. This
is the API we need:
GList *evaluate (Sheet *sheet,
char *expression,
Type *result_type,
ValueType *val,
char **error_string);
Input values:
Sheet Is the Sheet the cell is part of.
expression Is the expression to be evaluated
Return value:
GList * A list of any cells referenced.
Output values (pointed destination holds result)
result_type Is set us the type of the expression, check
the header files for details.
val The val union set properly to the computed expression
if no error was set.
error_string if error_string is NULL, then no error was found,
otherwise it points to the error string that gets
displayed by the spreadsheet.
The expressions parsed should be compatible with what Excel accepts.
* Information formatting
Given a structure like this:
Given the Cell structure in cell.h:
if the Cell->content_type is either VALUE_INTEGER or VALUE_FLOAT,
produce a formatted string based Excel-compatible format.
I should mention again this: The format that the routine takes
should be compatible with the Excel format.
Desired API:
char *format_number (Value value, GdkColor *computed_color)
Input values:
value The value that is either a VALUE_INTEGER or
a VALUE_FLOAT
struct {
int type; /* string or number */
union {
char *string_value;
double number_value;
}
}
Returned value:
char* The formatted string.
And an Excel-like format, render the value with the specified
format specifier.
Other Output values:
computed_color This is a GdkColor set to the color computed
by the format_number routine (yes, the format
can include colors for certain conditions).
* Engine
...
...
src/cell.h
View file @
49b033cc
#ifndef GNUMERIC_CELL_H
#define GNUMERIC_CELL_H
typedef
unsigned
char
ColType
;
typedef
unsigned
short
RowType
;
typedef
enum
{
VALUE_STRING
,
VALUE_INTEGER
,
VALUE_FLOAT
}
ValueType
;
/*
* We use the GNU Multi-precission library for storing integers
* and floating point numbers
*/
typedef
struct
{
ValueType
type
;
union
{
char
*
string
;
/* string */
mpz_t
integer
;
/* integer number */
mpf_t
fp
;
/* floating point */
}
v
;
}
Value
;
typedef
{
int
ref_count
;
GdkColor
color
;
}
CellColor
;
typedef
struct
{
int
column
;
int
row
;
ColType
col
;
RowType
row
;
/* Text as entered by the user */
char
*
entered_text
;
/* Type of the content and the actual parsed content */
Value
value
;
Style
style
;
/* Rendered versions of the cell */
char
*
text
;
/* Text displayed */
int
width
;
/* Width of text */
int
height
;
/* Height of text */
/* computed versions of the cell contents */
char
*
text
;
/* Text displayed */
GdkColor
color
;
/* color for the displayed text */
int
width
;
/* Width of text */
int
height
;
/* Height of text */
}
Cell
;
#define CELL_IS_FORMULA(cell) (cell->entered_text [0] == '=')
#endif
/* GNUMERIC_CELL_H */
src/sheet.h
0 → 100644
View file @
49b033cc
#ifndef GNUMERIC_SHEET_H
#define GNUMERIC_SHEET_H
typedef
GList
ColStyleList
;
struct
Workbook
;
typedef
struct
{
RowType
row
;
int
height
;
Style
*
style
;
/* if existant, this row style */
}
RowInfo
;
typedef
struct
{
ColType
col
;
int
width
;
Style
style
;
/* if existant, this column style */
}
ColInfo
;
typedef
struct
{
struct
Workbook
*
parent_workbook
;
char
*
name
;
Style
style
;
GList
*
cols_info
;
GList
*
rows_info
;
void
*
contents
;
}
Sheet
;
typedef
struct
{
Style
style
;
GHashTable
*
sheets
;
/* keeps a list of the sheets on this workbook */
}
Workbook
;
#endif
src/style.h
View file @
49b033cc
...
...
@@ -47,7 +47,7 @@ typedef enum {
HALIGN_GENERAL
=
1
,
HALIGN_LEFT
=
2
,
HALIGN_RIGHT
=
4
,
HALIGN_CENTER
=
8
HALIGN_CENTER
=
8
,
HALIGN_FILL
=
0x10
,
HALIGN_JUSTIFY
=
0x20
}
StyleHAlignFlags
;
...
...
@@ -77,25 +77,4 @@ typedef struct {
unsigned
int
orientation
:
4
;
}
Style
;
typedef
struct
{
int
row
;
int
height
;
Style
style
;
}
RowStyle
;
typedef
struct
{
int
col
;
int
width
;
Style
style
;
}
ColStyle
;
typedef
struct
{
int
sheet
;
Style
style
;
}
SheetStyle
;
typedef
struct
{
Style
style
;
}
WorkbookStyle
;
#endif
/* GNUMERIC_STYLE_H */
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment