Commit ec582b92 authored by Michael Meeks's avatar Michael Meeks

Lots of summary updates.

parent c8970a56
1999-07-15 Michael Meeks <michael@edenproject.org>
* src/summary.c (summary_info_add): Add duplicate entry removal.
Re-organised structures and enum for convenience.
(summary_info_as_list, append_item): Created.
(summary_item_dump): Made static.
include stdio.h
Add 'Category' and 'Manager'
* src/workbook.c (summary_cmd): Create.
Add 'Su_mmary' to file menu.
* dialogs.h: Added summary_update.
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Add dialog-summary.c
* dialog-summary.c: Created.
* summary.glade: Created.
1999-07-13 Jody Goldberg <jgoldberg@home.com>
* src/fn-lookup.c (gnumeric_lookup) : Support default args for
......
......@@ -9,6 +9,9 @@ Jody:
* Added HYPERLINK stub, fixed OFFSET.
* Bug fixes for Excel import.
Michael:
* Implemented Summary Information
--------------------------------------------------------------------------
Gnumeric 0.30
......
1999-07-15 Michael Meeks <michael@edenproject.org>
* src/summary.c (summary_info_add): Add duplicate entry removal.
Re-organised structures and enum for convenience.
(summary_info_as_list, append_item): Created.
(summary_item_dump): Made static.
include stdio.h
Add 'Category' and 'Manager'
* src/workbook.c (summary_cmd): Create.
Add 'Su_mmary' to file menu.
* dialogs.h: Added summary_update.
* src/Makefile.am (GNUMERIC_BASE_SOURCES): Add dialog-summary.c
* dialog-summary.c: Created.
* summary.glade: Created.
1999-07-13 Jody Goldberg <jgoldberg@home.com>
* src/fn-lookup.c (gnumeric_lookup) : Support default args for
......
......@@ -18,8 +18,8 @@ Michael
* Lookup Harvest and see if we can help with doc summary info for
searches.
* Split panes.
* Use the document summary information
* Use same XML as Office for elegance (?)
* Write SummaryInformation, expand GUI ...
* Use same XML as Office 2000 for elegance (?)
* Get font / layout sizes correct for new Print-stuff.
* Investigate VB streams, and their lengths.
* glib
......
......@@ -73,6 +73,7 @@ GNUMERIC_BASE_SOURCES = \
dialog-delete-cells.c \
dialog-paste-special.c \
dialog-printer-setup.c \
dialog-summary.c \
dialog-solver.c \
dialog-zoom.c \
dialogs.h \
......
#include <config.h>
#include <gnome.h>
#include <glade/glade.h>
#include "gnumeric.h"
#include "gnumeric-util.h"
#include "gnumeric-sheet.h"
#include "dialogs.h"
#define SUMMARY_DEBUG 0
static void
summary_get (GladeXML *gui, SummaryInfo *sin)
{
int lp;
for (lp = 0; lp < SUMMARY_I_MAX; lp++) {
SummaryItem *sit;
gchar *name = summary_item_name[lp];
GtkWidget *w = glade_xml_get_widget (gui, name);
if (!w)
#if SUMMARY_DEBUG > 0
printf ("Error missing builtin summary name '%s'\n", name);
#else
;
#endif
else { /* FIXME: OK so far, but what if it isn't editable ? */
gchar *txt;
if (lp == SUMMARY_I_COMMENTS)
txt = gtk_editable_get_chars (GTK_EDITABLE (w),
0, gtk_text_get_length (GTK_TEXT (w)));
else
txt = gtk_entry_get_text (GTK_ENTRY (w));
sit = summary_item_new_string (name, txt);
summary_info_add (sin, sit);
}
}
}
static void
summary_put (GladeXML *gui, SummaryInfo *sin)
{
GList *l, *m;
m = l = summary_info_as_list (sin);
while (l) {
SummaryItem *sit = l->data;
GtkWidget *w ;
if (sit && sit->type == SUMMARY_STRING &&
(w = glade_xml_get_widget (gui, sit->name))) {
gchar *txt = sit->v.txt;
if (g_strcasecmp (sit->name, summary_item_name [SUMMARY_I_COMMENTS]) == 0) {
gint p = 0;
gtk_editable_insert_text (GTK_EDITABLE (w), txt, strlen (txt), &p);
} else
gtk_entry_set_text (GTK_ENTRY (w), txt);
}
l = g_list_next (l);
}
g_list_free (m);
}
void
dialog_summary_update (GtkWidget *w, SummaryInfo *sin)
{
GladeXML *gui = glade_xml_new (GNUMERIC_GLADEDIR "/summary.glade", NULL);
GtkWidget *dia;
gint v;
if (!gui) {
printf ("Could not find summary.glade\n");
return;
}
dia = glade_xml_get_widget (gui, "SummaryInformation");
if (!dia) {
printf ("Corrupt file summary.glade\n");
return;
}
summary_put (gui, sin);
v = gnome_dialog_run (GNOME_DIALOG (dia));
if (v == 0)
summary_get (gui, sin);
if (v != -1)
gtk_object_destroy (GTK_OBJECT (dia));
gtk_object_unref (GTK_OBJECT (gui));
#if SUMMARY_DEBUG > 0
printf ("After update:\n");
summary_info_dump (sin);
#endif
}
......@@ -92,6 +92,7 @@ char *dialog_function_wizard (Workbook *wb, FunctionDefinition *fd);
void dialog_goal_seek (Workbook *wb, Sheet *sheet);
void dialog_solver (Workbook *wb, Sheet *sheet);
void dialog_printer_setup (Workbook *wb);
void dialog_summary_update (GtkWidget *w, SummaryInfo *sin);
FunctionDefinition *dialog_function_select (Workbook *wb);
......
#include <config.h>
#include <gnome.h>
#include <glade/glade.h>
#include "gnumeric.h"
#include "gnumeric-util.h"
#include "gnumeric-sheet.h"
#include "dialogs.h"
#define SUMMARY_DEBUG 0
static void
summary_get (GladeXML *gui, SummaryInfo *sin)
{
int lp;
for (lp = 0; lp < SUMMARY_I_MAX; lp++) {
SummaryItem *sit;
gchar *name = summary_item_name[lp];
GtkWidget *w = glade_xml_get_widget (gui, name);
if (!w)
#if SUMMARY_DEBUG > 0
printf ("Error missing builtin summary name '%s'\n", name);
#else
;
#endif
else { /* FIXME: OK so far, but what if it isn't editable ? */
gchar *txt;
if (lp == SUMMARY_I_COMMENTS)
txt = gtk_editable_get_chars (GTK_EDITABLE (w),
0, gtk_text_get_length (GTK_TEXT (w)));
else
txt = gtk_entry_get_text (GTK_ENTRY (w));
sit = summary_item_new_string (name, txt);
summary_info_add (sin, sit);
}
}
}
static void
summary_put (GladeXML *gui, SummaryInfo *sin)
{
GList *l, *m;
m = l = summary_info_as_list (sin);
while (l) {
SummaryItem *sit = l->data;
GtkWidget *w ;
if (sit && sit->type == SUMMARY_STRING &&
(w = glade_xml_get_widget (gui, sit->name))) {
gchar *txt = sit->v.txt;
if (g_strcasecmp (sit->name, summary_item_name [SUMMARY_I_COMMENTS]) == 0) {
gint p = 0;
gtk_editable_insert_text (GTK_EDITABLE (w), txt, strlen (txt), &p);
} else
gtk_entry_set_text (GTK_ENTRY (w), txt);
}
l = g_list_next (l);
}
g_list_free (m);
}
void
dialog_summary_update (GtkWidget *w, SummaryInfo *sin)
{
GladeXML *gui = glade_xml_new (GNUMERIC_GLADEDIR "/summary.glade", NULL);
GtkWidget *dia;
gint v;
if (!gui) {
printf ("Could not find summary.glade\n");
return;
}
dia = glade_xml_get_widget (gui, "SummaryInformation");
if (!dia) {
printf ("Corrupt file summary.glade\n");
return;
}
summary_put (gui, sin);
v = gnome_dialog_run (GNOME_DIALOG (dia));
if (v == 0)
summary_get (gui, sin);
if (v != -1)
gtk_object_destroy (GTK_OBJECT (dia));
gtk_object_unref (GTK_OBJECT (gui));
#if SUMMARY_DEBUG > 0
printf ("After update:\n");
summary_info_dump (sin);
#endif
}
......@@ -92,6 +92,7 @@ char *dialog_function_wizard (Workbook *wb, FunctionDefinition *fd);
void dialog_goal_seek (Workbook *wb, Sheet *sheet);
void dialog_solver (Workbook *wb, Sheet *sheet);
void dialog_printer_setup (Workbook *wb);
void dialog_summary_update (GtkWidget *w, SummaryInfo *sin);
FunctionDefinition *dialog_function_select (Workbook *wb);
......
<?xml version="1.0"?>
<GTK-Interface>
<project>
<name>Summary</name>
<program_name>summary</program_name>
<directory></directory>
<source_directory>src</source_directory>
<pixmaps_directory>pixmaps</pixmaps_directory>
<language>C</language>
<gnome_support>True</gnome_support>
<gettext_support>True</gettext_support>
<use_widget_names>False</use_widget_names>
<output_main_file>False</output_main_file>
<output_support_files>True</output_support_files>
<output_build_files>True</output_build_files>
<backup_source_files>True</backup_source_files>
<main_source_file>gladesource.c</main_source_file>
<main_header_file>gladesource.h</main_header_file>
<handler_source_file>gladesig.c</handler_source_file>
<handler_header_file>gladesig.h</handler_header_file>
<support_source_file>support.c</support_source_file>
<support_header_file>support.h</support_header_file>
<translatable_strings_file></translatable_strings_file>
</project>
<widget>
<class>GnomeDialog</class>
<name>SummaryInformation</name>
<auto_close>False</auto_close>
<hide_on_close>False</hide_on_close>
<allow_shrink>False</allow_shrink>
<allow_grow>False</allow_grow>
<auto_shrink>False</auto_shrink>
<widget>
<class>GtkVBox</class>
<child_name>GnomeDialog:vbox</child_name>
<name>dialog-vbox1</name>
<child>
<padding>4</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<homogeneous>False</homogeneous>
<spacing>8</spacing>
<widget>
<class>GtkTable</class>
<name>table1</name>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<rows>7</rows>
<columns>2</columns>
<homogeneous>False</homogeneous>
<row_spacing>0</row_spacing>
<column_spacing>0</column_spacing>
<widget>
<class>GtkLabel</class>
<name>label1</name>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>1</top_attach>
<bottom_attach>2</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>False</xfill>
<yfill>False</yfill>
</child>
<label>Title</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
<widget>
<class>GtkLabel</class>
<name>label2</name>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>2</top_attach>
<bottom_attach>3</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>False</xfill>
<yfill>False</yfill>
</child>
<label>Author</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
<widget>
<class>GtkLabel</class>
<name>label3</name>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>3</top_attach>
<bottom_attach>4</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>False</xfill>
<yfill>False</yfill>
</child>
<label>Category</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
<widget>
<class>GtkLabel</class>
<name>label4</name>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>4</top_attach>
<bottom_attach>5</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>False</xfill>
<yfill>False</yfill>
</child>
<label>Keywords</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
<widget>
<class>GtkLabel</class>
<name>label5</name>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>5</top_attach>
<bottom_attach>6</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>False</xfill>
<yfill>False</yfill>
</child>
<label>Manager</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
<widget>
<class>GtkText</class>
<name>Comments</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>6</top_attach>
<bottom_attach>7</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>True</yfill>
</child>
<can_focus>True</can_focus>
<editable>True</editable>
<text></text>
</widget>
<widget>
<class>GtkEntry</class>
<name>Title</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>1</top_attach>
<bottom_attach>2</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text></text>
</widget>
<widget>
<class>GtkEntry</class>
<name>Author</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>2</top_attach>
<bottom_attach>3</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text></text>
</widget>
<widget>
<class>GtkEntry</class>
<name>Category</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>3</top_attach>
<bottom_attach>4</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text></text>
</widget>
<widget>
<class>GtkEntry</class>
<name>Keywords</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>4</top_attach>
<bottom_attach>5</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text></text>
</widget>
<widget>
<class>GtkEntry</class>
<name>Manager</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>5</top_attach>
<bottom_attach>6</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text></text>
</widget>
<widget>
<class>GtkLabel</class>
<name>title</name>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>False</xfill>
<yfill>False</yfill>
</child>
<label>Document Summary Information
</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>