X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Foutput%2Fmanager.h;h=8ed104bad417aa67e481c84e65d006b0ad230828;hb=20f2c8b593eba29c2cca67569a5ef5bb68189c54;hp=7ebe541b248008b779496ffebbcf17a092e57b59;hpb=4d58a563b1d21eb1aaa8b6ab28003cc0d7fd6c10;p=pspp diff --git a/src/output/manager.h b/src/output/manager.h index 7ebe541b24..8ed104bad4 100644 --- a/src/output/manager.h +++ b/src/output/manager.h @@ -46,9 +46,15 @@ struct som_entity { const struct som_table_class *class; /* Table class. */ enum som_type type; /* Table or Chart */ - void *ext; /* Owned by */ + void *ext; /* Owned by table or chart class. */ + int table_num; /* Table number. */ + int subtable_num; /* Sub-table number. */ + char *command_name; /* Command that yielded this output. */ }; +struct som_entity *som_entity_clone (struct som_entity *); +void som_entity_destroy (struct som_entity *); + /* Group styles. */ enum { @@ -59,8 +65,8 @@ enum /* Cumulation types. */ enum { - SOM_ROWS, SOM_ROW = SOM_ROWS, /* Rows. */ - SOM_COLUMNS, SOM_COLUMN = SOM_COLUMNS /* Columns. */ + SOM_ROWS, /* Rows. */ + SOM_COLUMNS /* Columns. */ }; /* Flags. */ @@ -75,34 +81,29 @@ enum struct outp_driver; struct som_table_class { - /* Set table, driver. */ - void (*table) (struct som_entity *); - void (*driver) (struct outp_driver *); - - /* Query columns and rows. */ - void (*count) (int *n_columns, int *n_rows); - void (*area) (int *horiz, int *vert); - void (*columns) (int *style); - void (*headers) (int *l, int *r, int *t, int *b); - void (*cumulate) (int cumtype, int start, int *end, int max, int *actual); - void (*flags) (unsigned *); - bool (*fits_width) (int width); - bool (*fits_length) (int length); - - /* Set columns and rows. */ - void (*set_headers) (int l, int r, int t, int b); - - /* Rendering. */ - void (*title) (int x, int y); - void (*render) (int x1, int y1, int x2, int y2); + /* Operations on tables. */ + void (*count) (struct som_entity *, int *n_columns, int *n_rows); + void (*columns) (struct som_entity *, int *style); + void (*headers) (struct som_entity *, int *l, int *r, int *t, int *b); + void (*flags) (struct som_entity *, unsigned *); + + /* Creating and freeing driver-specific table rendering data. */ + void *(*render_init) (struct som_entity *, struct outp_driver *, + int l, int r, int t, int b); + void (*render_free) (void *); + + /* Rendering operations. */ + void (*area) (void *, int *horiz, int *vert); + void (*cumulate) (void *, int cumtype, int start, int *end, + int max, int *actual); + void (*title) (void *, int x, int y, int table_num, int subtable_num, + const char *command_name); + void (*render) (void *, int x1, int y1, int x2, int y2); }; -/* Table indexes. */ -extern int table_num; -extern int subtable_num; - /* Submission. */ void som_new_series (void); +void som_set_command_name (const char *); void som_submit (struct som_entity *t); /* Miscellaneous. */