output: Give the overview pane in the GUI output a reasonable initial width.
[pspp] / src / output / table.h
index 1ce69ab4dd5bebf53676df8b8b4fb5073b6f6b95..7f128814bb369814e27925edd5af65636f0aafb0 100644 (file)
@@ -70,11 +70,13 @@ struct tab_table;
 struct tab_rendering;
 
 typedef void tab_dim_func (struct tab_rendering *, void *aux);
+typedef void tab_dim_free_func (void *aux);
 
 /* A table. */
 struct tab_table
   {
     struct pool *container;
+    int ref_cnt;                /* Reference count. */
 
     /* Contents. */
     int col_style;             /* Columns: One of TAB_COL_*. */
@@ -88,7 +90,10 @@ struct tab_table
     unsigned char *ct;         /* Cell types; unsigned char[nr][nc]. */
     unsigned char *rh;         /* Horiz rules; unsigned char[nr+1][nc]. */
     unsigned char *rv;         /* Vert rules; unsigned char[nr][nc+1]. */
+
+    /* Calculating row and column dimensions. */
     tab_dim_func *dim;         /* Calculates cell widths and heights. */
+    tab_dim_free_func *dim_free; /* Frees space allocated for dim function. */
     void *dim_aux;              /* Auxiliary data for dim function. */
 
     /* Editing info. */
@@ -125,6 +130,7 @@ struct tab_rendering
 /* Tables. */
 struct tab_table *tab_create (int nc, int nr, int reallocable);
 void tab_destroy (struct tab_table *);
+void tab_ref (struct tab_table *);
 void tab_resize (struct tab_table *, int nc, int nr);
 void tab_realloc (struct tab_table *, int nc, int nr);
 void tab_headers (struct tab_table *, int l, int r, int t, int b);
@@ -138,7 +144,8 @@ void tab_submit (struct tab_table *);
 tab_dim_func tab_natural_dimensions;
 int tab_natural_width (const struct tab_rendering *, int c);
 int tab_natural_height (const struct tab_rendering *, int r);
-void tab_dim (struct tab_table *, tab_dim_func *, void *aux);
+void tab_dim (struct tab_table *,
+              tab_dim_func *, tab_dim_free_func *, void *aux);
 
 /* Rules. */
 void tab_hline (struct tab_table *, int style, int x1, int x2, int y);
@@ -191,8 +198,5 @@ void tab_next_row (struct tab_table *);
 void tab_output_text (int options, const char *string, ...)
      PRINTF_FORMAT (2, 3);
 
-/* Embedding the command name in the output. */
-void tab_set_command_name (const char *);
-
 #endif /* tab_h */