1 /* Generated by GOB (v2.0.20)   (do not edit directly) */
2 
3 #include <glib.h>
4 #include <glib-object.h>
5 #ifndef __GGOBI_DATA_H__
6 #define __GGOBI_DATA_H__
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif /* __cplusplus */
11 
12 
13 
14 
15 #include "defines.h"
16 #include "brushing.h"
17 #include "vartable.h"
18 #include "fileio.h"
19 
20 #include <gtk/gtk.h>
21 
22 typedef struct _Subset {
23   gint random_n;
24   gint string_pos;
25  /*-- adjustments from which to get values for blocksize, everyn --*/
26   GtkAdjustment *bstart_adj, *bsize_adj;
27   GtkAdjustment *estart_adj, *estep_adj;
28 } Subset;
29 
30 
31 typedef struct _Jitterd {
32   gfloat factor;
33   gboolean type;
34   gboolean convex;
35   gfloat *jitfacv;
36 } Jitterd;
37 
38 typedef struct _Varpanel_cboxd {
39   GtkWidget *ebox;   /*-- child1 of pane widget --*/
40   GtkWidget *swin;   /*-- child of ebox --*/
41   GtkWidget *vbox;   /*-- child of swin --*/
42   GSList *box;       /*-- single column of hboxes --*/
43 } Varpanel_cboxd;
44 
45 typedef struct _Varpanel_circd {
46   GtkWidget *ebox;        /*-- child2 of pane widget --*/
47   GtkWidget *vbox;        /*-- child of ebox --*/
48   GtkWidget *swin, *hbox; /*-- children of vbox --*/
49   GtkWidget *table;       /*-- sole child of swin; now a vbox --*/
50   GtkWidget *manip_btn, *freeze_btn; /*-- children of hbox --*/
51 
52   GdkCursor *cursor;
53   gint jcursor;
54 
55  /*-- components and properties of the table --*/
56   GSList *vb, *da, *label;
57   GSList *da_pix;         /*-- backing pixmaps --*/
58   gint nvars;
59 } Varpanel_circd;
60 
61 typedef struct _Varpaneld {
62   GtkWidget *hpane;  /*-- child of the ebox --*/
63 } Varpaneld;
64 
65 /*-------------------- transformation --------------------------------*/
66 
67 /* sphering transformation */
68 typedef struct _Sphere_d {
69   vector_i vars;        /*-- vars available to be sphered --*/
70   vector_i vars_sphered;/*-- vars that have been sphered --*/
71   gint npcs;      /*-- the first npcs vars of vars will be sphered --*/
72   vector_i pcvars;/*-- vars into which sphered data is written --*/
73 
74   vector_f eigenval;
75   array_d eigenvec;
76   array_f vc;
77   vector_f tform_mean;
78   vector_f tform_stddev;
79 
80   gboolean vars_stdized;
81 } Sphere_d;
82 
83 
84 typedef struct _EdgeData {
85   gint n;
86   SymbolicEndpoints *sym_endpoints;
87   GList *endpointList;
88     /* a list of endpointsd elements corresponding to the resolved
89        record ids relative to a given datad. This is akin to a table
90        indexed by datad elements. */
91 
92   gint nxed_by_brush;
93   vector_b xed_by_brush;
94 } EdgeData;
95 
96 typedef struct _BrushBins {
97   gint nbins;
98   bin_struct **binarray;
99   icoords bin0, bin1;
100 } BrushBins;
101 
102 
103 
104 
105 /*
106  * Type checking and casting macros
107  */
108 #define GGOBI_TYPE_DATA	(ggobi_data_get_type())
109 #define GGOBI_DATA(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), ggobi_data_get_type(), GGobiData)
110 #define GGOBI_DATA_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), ggobi_data_get_type(), GGobiData const)
111 #define GGOBI_DATA_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), ggobi_data_get_type(), GGobiDataClass)
112 #define GGOBI_IS_DATA(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), ggobi_data_get_type ())
113 
114 #define GGOBI_DATA_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), ggobi_data_get_type(), GGobiDataClass)
115 
116 /*
117  * Main object structure
118  */
119 #ifndef __TYPEDEF_GGOBI_DATA__
120 #define __TYPEDEF_GGOBI_DATA__
121 typedef struct _GGobiData GGobiData;
122 #endif
123 struct _GGobiData {
124 	GObject __parent__;
125 	/*< public >*/
126 	const gchar * name;
127 	const gchar * nickname;
128 	InputDescription * input;
129 	guint nrows;
130 	gint ncols;
131 	gboolean missings;
132 	struct _ggobid * gg;
133 	GArray * rowlab;
134 	GHashTable * idTable;
135 	char ** rowIds;
136 	vartabled * linkvar_vt;
137 	Subset subset;
138 	Jitterd jitter;
139 	Varpanel_cboxd vcbox_ui;
140 	Varpanel_circd vcirc_ui;
141 	Varpaneld varpanel_ui;
142 	Sphere_d sphere;
143 	EdgeData edge;
144 	BrushBins brush;
145 	GSList * vartable;
146 	GtkWidget * vartable_tree_view[all_vartypes];
147 	GtkTreeModel * vartable_tree_model;
148 	array_f raw;
149 	array_f tform;
150 	array_g world;
151 	array_g jitdata;
152 	array_s missing;
153 	gboolean missings_show_p;
154 	vector_i rows_in_plot;
155 	gint nrows_in_plot;
156 	vector_b sampled;
157 	vector_b excluded;
158 	symbol_cell symbol_table[NGLYPHTYPES][NGLYPHSIZES][MAXNCOLORS];
159 	GtkWidget * cluster_table;
160 	gint nclusters;
161 	clusterd * clusv;
162 	clusteruid * clusvui;
163 	vector_i clusterid;
164 	gint npts_under_brush;
165 	vector_b pts_under_brush;
166 	vector_s color;
167 	vector_s color_now;
168 	vector_s color_prev;
169 	vector_b hidden;
170 	vector_b hidden_now;
171 	vector_b hidden_prev;
172 	vector_g glyph;
173 	vector_g glyph_now;
174 	vector_g glyph_prev;
175 	gint nearest_point;
176 	gint nearest_point_prev;
177 	GSList * sticky_ids;
178 	GSList * movepts_history;
179 };
180 
181 /*
182  * Class definition
183  */
184 typedef struct _GGobiDataClass GGobiDataClass;
185 struct _GGobiDataClass {
186 	GObjectClass __parent__;
187 	/*signal*/void (* rows_in_plot_changed) (GGobiData * self, int arg1, int arg2, ggobid * arg3);
188 	/*signal*/void (* col_name_changed) (GGobiData * self, int j);
189 };
190 
191 
192 /*
193  * Public methods
194  */
195 GType	ggobi_data_get_type	(void) G_GNUC_CONST;
196 #line 182 "data.gob"
197 guint 	ggobi_data_get_nrows	(GGobiData * self);
198 #line 199 "ggobi-data.h"
199 #line 182 "data.gob"
200 void 	ggobi_data_set_nrows	(GGobiData * self,
201 					guint val);
202 #line 203 "ggobi-data.h"
203 #line 186 "data.gob"
204 guint 	ggobi_data_get_ncols	(GGobiData * self);
205 #line 206 "ggobi-data.h"
206 #line 186 "data.gob"
207 void 	ggobi_data_set_ncols	(GGobiData * self,
208 					guint val);
209 #line 210 "ggobi-data.h"
210 #line 193 "data.gob"
211 void 	ggobi_data_col_name_changed	(GGobiData * self,
212 					int j);
213 #line 214 "ggobi-data.h"
214 #line 235 "data.gob"
215 GGobiData * 	ggobi_data_new	(guint nrows,
216 					guint ncols);
217 #line 218 "ggobi-data.h"
218 #line 248 "data.gob"
219 gchar * 	ggobi_data_get_name	(GGobiData * self);
220 #line 221 "ggobi-data.h"
221 #line 254 "data.gob"
222 void 	ggobi_data_set_name	(GGobiData * self,
223 					gchar * name,
224 					gchar * nickname);
225 #line 226 "ggobi-data.h"
226 #line 264 "data.gob"
227 guint 	ggobi_data_get_n_cols	(GGobiData * self);
228 #line 229 "ggobi-data.h"
229 #line 269 "data.gob"
230 guint 	ggobi_data_get_n_rows	(GGobiData * self);
231 #line 232 "ggobi-data.h"
232 #line 275 "data.gob"
233 gchar * 	ggobi_data_get_col_name	(GGobiData * self,
234 					guint j);
235 #line 236 "ggobi-data.h"
236 #line 282 "data.gob"
237 void 	ggobi_data_set_col_name	(GGobiData * self,
238 					guint j,
239 					gchar * value);
240 #line 241 "ggobi-data.h"
241 #line 309 "data.gob"
242 gchar * 	ggobi_data_get_transformed_col_name	(GGobiData * self,
243 					guint j);
244 #line 245 "ggobi-data.h"
245 #line 316 "data.gob"
246 void 	ggobi_data_set_transformed_col_name	(GGobiData * self,
247 					guint j,
248 					gchar * value);
249 #line 250 "ggobi-data.h"
250 #line 330 "data.gob"
251 void 	ggobi_data_set_missing	(GGobiData * self,
252 					guint i,
253 					guint j);
254 #line 255 "ggobi-data.h"
255 #line 338 "data.gob"
256 gboolean 	ggobi_data_is_missing	(GGobiData * self,
257 					guint i,
258 					guint j);
259 #line 260 "ggobi-data.h"
260 #line 344 "data.gob"
261 gboolean 	ggobi_data_has_missings	(GGobiData * self);
262 #line 263 "ggobi-data.h"
263 #line 351 "data.gob"
264 guint 	ggobi_data_get_col_n_missing	(GGobiData * self,
265 					guint j);
266 #line 267 "ggobi-data.h"
267 #line 362 "data.gob"
268 void 	ggobi_data_set_raw_values	(GGobiData * self,
269 					guint j,
270 					gdouble * values);
271 #line 272 "ggobi-data.h"
272 #line 371 "data.gob"
273 void 	ggobi_data_set_raw_value	(GGobiData * self,
274 					guint i,
275 					guint j,
276 					gdouble value);
277 #line 278 "ggobi-data.h"
278 #line 419 "data.gob"
279 gchar * 	ggobi_data_get_string_value	(GGobiData * self,
280 					guint i,
281 					guint j,
282 					gboolean transformed);
283 #line 284 "ggobi-data.h"
284 #line 445 "data.gob"
285 gboolean 	ggobi_data_has_edges	(GGobiData * self);
286 #line 287 "ggobi-data.h"
287 #line 451 "data.gob"
288 gboolean 	ggobi_data_has_variables	(GGobiData * self);
289 #line 290 "ggobi-data.h"
290 
291 /*
292  * Signal connection wrapper macros
293  */
294 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
295 #define ggobi_data_connect__rows_in_plot_changed(object,func,data)	g_signal_connect(GGOBI_DATA(__extension__ ({GGobiData *___object = (object); ___object; })),"rows_in_plot_changed",(GCallback) __extension__ ({void (* ___rows_in_plot_changed) (GGobiData * ___fake___self, int ___fake___arg1, int ___fake___arg2, ggobid * ___fake___arg3, gpointer ___data ) = (func); ___rows_in_plot_changed; }), (data))
296 #define ggobi_data_connect_after__rows_in_plot_changed(object,func,data)	g_signal_connect_after(GGOBI_DATA(__extension__ ({GGobiData *___object = (object); ___object; })),"rows_in_plot_changed",(GCallback) __extension__ ({void (* ___rows_in_plot_changed) (GGobiData * ___fake___self, int ___fake___arg1, int ___fake___arg2, ggobid * ___fake___arg3, gpointer ___data ) = (func); ___rows_in_plot_changed; }), (data))
297 #define ggobi_data_connect_data__rows_in_plot_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GGOBI_DATA(__extension__ ({GGobiData *___object = (object); ___object; })),"rows_in_plot_changed",(GCallback) __extension__ ({void (* ___rows_in_plot_changed) (GGobiData * ___fake___self, int ___fake___arg1, int ___fake___arg2, ggobid * ___fake___arg3, gpointer ___data ) = (func); ___rows_in_plot_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
298 #define ggobi_data_connect__col_name_changed(object,func,data)	g_signal_connect(GGOBI_DATA(__extension__ ({GGobiData *___object = (object); ___object; })),"col_name_changed",(GCallback) __extension__ ({void (* ___col_name_changed) (GGobiData * ___fake___self, int ___fake___j, gpointer ___data ) = (func); ___col_name_changed; }), (data))
299 #define ggobi_data_connect_after__col_name_changed(object,func,data)	g_signal_connect_after(GGOBI_DATA(__extension__ ({GGobiData *___object = (object); ___object; })),"col_name_changed",(GCallback) __extension__ ({void (* ___col_name_changed) (GGobiData * ___fake___self, int ___fake___j, gpointer ___data ) = (func); ___col_name_changed; }), (data))
300 #define ggobi_data_connect_data__col_name_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GGOBI_DATA(__extension__ ({GGobiData *___object = (object); ___object; })),"col_name_changed",(GCallback) __extension__ ({void (* ___col_name_changed) (GGobiData * ___fake___self, int ___fake___j, gpointer ___data ) = (func); ___col_name_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
301 #else /* __GNUC__ && !__STRICT_ANSI__ */
302 #define ggobi_data_connect__rows_in_plot_changed(object,func,data)	g_signal_connect(GGOBI_DATA(object),"rows_in_plot_changed",(GCallback)(func),(data))
303 #define ggobi_data_connect_after__rows_in_plot_changed(object,func,data)	g_signal_connect_after(GGOBI_DATA(object),"rows_in_plot_changed",(GCallback)(func),(data))
304 #define ggobi_data_connect_data__rows_in_plot_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GGOBI_DATA(object),"rows_in_plot_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
305 #define ggobi_data_connect__col_name_changed(object,func,data)	g_signal_connect(GGOBI_DATA(object),"col_name_changed",(GCallback)(func),(data))
306 #define ggobi_data_connect_after__col_name_changed(object,func,data)	g_signal_connect_after(GGOBI_DATA(object),"col_name_changed",(GCallback)(func),(data))
307 #define ggobi_data_connect_data__col_name_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GGOBI_DATA(object),"col_name_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
308 #endif /* __GNUC__ && !__STRICT_ANSI__ */
309 
310 
311 /*
312  * Argument wrapping macros
313  */
314 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
315 #define GGOBI_DATA_PROP_NROWS(arg)    	"nrows", __extension__ ({guint z = (arg); z;})
316 #define GGOBI_DATA_GET_PROP_NROWS(arg)	"nrows", __extension__ ({guint *z = (arg); z;})
317 #define GGOBI_DATA_PROP_NCOLS(arg)    	"ncols", __extension__ ({guint z = (arg); z;})
318 #define GGOBI_DATA_GET_PROP_NCOLS(arg)	"ncols", __extension__ ({guint *z = (arg); z;})
319 #else /* __GNUC__ && !__STRICT_ANSI__ */
320 #define GGOBI_DATA_PROP_NROWS(arg)    	"nrows",(guint )(arg)
321 #define GGOBI_DATA_GET_PROP_NROWS(arg)	"nrows",(guint *)(arg)
322 #define GGOBI_DATA_PROP_NCOLS(arg)    	"ncols",(guint )(arg)
323 #define GGOBI_DATA_GET_PROP_NCOLS(arg)	"ncols",(guint *)(arg)
324 #endif /* __GNUC__ && !__STRICT_ANSI__ */
325 
326 
327 
328 
329 void freeLevelHashEntry(gpointer key, gpointer value, gpointer data);
330 
331 /*-- used as an attribute of variable notebooks --*/
332 typedef enum {no_edgesets, edgesets_only, all_datatypes} datatyped;
333 
334 extern endpointsd *resolveEdgePoints(GGobiData *e, GGobiData *d);
335 void unresolveAllEdgePoints(GGobiData *e);
336 
337 void datad_record_ids_set(GGobiData *d, gchar **ids, gboolean duplicate);
338 void ggobi_data_set_row_labels(GGobiData *d, gchar **labels);
339 
340 
341 #ifdef __cplusplus
342 }
343 #endif /* __cplusplus */
344 
345 #endif
346