X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable-item.c;h=c9fd0a62a75f8c275de8b46d13ad68389419b5e1;hb=8a4ffde673c1bdfc687ff2a504036313f3595157;hp=b709273f9e6a7ec9a159baad759885926337eb28;hpb=dfd1972f7bcb550a4fc3b05dbe7e71d12334b0a7;p=pspp diff --git a/src/output/table-item.c b/src/output/table-item.c index b709273f9e..c9fd0a62a7 100644 --- a/src/output/table-item.c +++ b/src/output/table-item.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009, 2011, 2014 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,27 +16,28 @@ #include -#include +#include "output/table-provider.h" #include -#include -#include -#include -#include -#include +#include "libpspp/assertion.h" +#include "libpspp/cast.h" +#include "output/driver.h" +#include "output/output-item-provider.h" +#include "output/table-item.h" #include "gl/xalloc.h" /* Initializes ITEM as a table item for rendering TABLE. The new table item - initially has the specified CAPTION, which may be NULL if no caption is yet - available. The caller retains ownership of CAPTION. */ + initially has the specified TITLE and CAPTION, which may each be NULL. The + caller retains ownership of TITLE and CAPTION. */ struct table_item * -table_item_create (struct table *table, const char *caption) +table_item_create (struct table *table, const char *title, const char *caption) { struct table_item *item = xmalloc (sizeof *item); output_item_init (&item->output_item, &table_item_class); item->table = table; + item->title = title != NULL ? xstrdup (title) : NULL; item->caption = caption != NULL ? xstrdup (caption) : NULL; return item; } @@ -49,6 +50,26 @@ table_item_get_table (const struct table_item *table_item) return table_item->table; } +/* Returns ITEM's title, which is a null pointer if no title has been + set. */ +const char * +table_item_get_title (const struct table_item *item) +{ + return item->title; +} + +/* Sets ITEM's title to TITLE, replacing any previous title. Specify NULL for + TITLE to clear any title from ITEM. The caller retains ownership of TITLE. + + This function may only be used on a table_item that is unshared. */ +void +table_item_set_title (struct table_item *item, const char *title) +{ + assert (!table_item_is_shared (item)); + free (item->title); + item->title = title != NULL ? xstrdup (title) : NULL; +} + /* Returns ITEM's caption, which is a null pointer if no caption has been set. */ const char * @@ -82,8 +103,10 @@ static void table_item_destroy (struct output_item *output_item) { struct table_item *item = to_table_item (output_item); + free (item->title); free (item->caption); table_unref (item->table); + free (item); } const struct output_item_class table_item_class =