1.12.42
[gnumeric.git] / src / tools / scenarios.h
blobfb03b248039d56e60a37a3ec022641251aa1db62
1 #ifndef __SCENARIOS_H__
2 #define __SCENARIOS_H__
4 #include <gnumeric.h>
5 #include <glib-object.h>
7 /* ------------------------------------------------------------------------- */
9 typedef struct {
10 GnmDependent dep;
11 GnmValue *value;
12 } GnmScenarioItem;
14 GType gnm_scenario_item_get_type (void);
15 GnmScenarioItem *gnm_scenario_item_new (Sheet *sheet);
16 void gnm_scenario_item_free (GnmScenarioItem *sci);
17 void gnm_scenario_item_set_range (GnmScenarioItem *sci,
18 const GnmSheetRange *sr);
19 void gnm_scenario_item_set_value (GnmScenarioItem *sci,
20 const GnmValue *v);
21 gboolean gnm_scenario_item_valid (const GnmScenarioItem *sci,
22 GnmSheetRange *sr);
24 /* ------------------------------------------------------------------------- */
26 #define GNM_SCENARIO_TYPE (gnm_scenario_get_type ())
27 #define GNM_SCENARIO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNM_SCENARIO_TYPE, GnmScenario))
28 #define GNM_SCENARIO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNM_SCENARIO_TYPE, GnmScenarioClass))
29 #define GNM_IS_SCENARIO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNM_SCENARIO_TYPE))
31 struct GnmScenario_ {
32 GObject parent;
34 Sheet *sheet;
35 char *name;
36 char *comment;
38 GSList *items;
41 typedef struct {
42 GObjectClass parent_class;
43 } GnmScenarioClass;
45 GType gnm_scenario_get_type (void);
47 GnmScenario *gnm_scenario_new (char const *name, Sheet *sheet);
49 GnmScenario *gnm_scenario_dup (GnmScenario *sc, Sheet *new_sheet);
51 void gnm_scenario_set_comment (GnmScenario *sc, const char *comment);
53 void gnm_scenario_add_area (GnmScenario *sc, const GnmSheetRange *sr);
55 GOUndo *gnm_scenario_apply (GnmScenario *sc);
57 char *gnm_scenario_get_range_str (const GnmScenario *sc);
59 /* ------------------------------------------------------------------------- */
61 #endif