The Gnome Chemistry Utils  0.13.7
grid.h
Go to the documentation of this file.
00001 /*
00002  * Gnome Crystal
00003  * grid.h
00004  *
00005  * Copyright (C) 2010-2012 Jean Bréfort <jean.brefort@normalesup.org>
00006  *
00007  * This program is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as
00009  * published by the Free Software Foundation; either version 3 of the
00010  * License, or (at your option) any later version.
00011  *
00012  * This program is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
00020  * USA
00021  */
00022 
00023 #ifndef GCR_GRID_H
00024 #define GCR_GRID_H
00025 
00033 #include <gtk/gtk.h>
00034 
00035 G_BEGIN_DECLS
00036 
00038 #define GCR_TYPE_GRID   (gcr_grid_get_type ())
00039 
00044 #define GCR_GRID(obj)   (G_TYPE_CHECK_INSTANCE_CAST((obj), GCR_TYPE_GRID, GcrGrid))
00045 
00048 #define GCR_IS_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCR_TYPE_GRID))
00049 
00058 typedef struct _GcrGrid GcrGrid;
00059 
00060 GType      gcr_grid_get_type (void);
00061 
00072 GtkWidget *gcr_grid_new (char const *col_title, GType col_type,...);
00073 
00083 int gcr_grid_get_int (GcrGrid *grid, unsigned row, unsigned column);
00084 
00094 unsigned gcr_grid_get_uint (GcrGrid *grid, unsigned row, unsigned column);
00095 
00105 double gcr_grid_get_double (GcrGrid *grid, unsigned row, unsigned column);
00106 
00116 char const *gcr_grid_get_string (GcrGrid *grid, unsigned row, unsigned column);
00117 
00127 bool gcr_grid_get_boolean (GcrGrid *grid, unsigned row, unsigned column);
00128 
00138 void gcr_grid_set_int (GcrGrid *grid, unsigned row, unsigned column, int value);
00139 
00149 void gcr_grid_set_uint (GcrGrid *grid, unsigned row, unsigned column, unsigned value);
00150 
00160 void gcr_grid_set_double (GcrGrid *grid, unsigned row, unsigned column, double value);
00161 
00171 void gcr_grid_set_string (GcrGrid *grid, unsigned row, unsigned column, char const *value);
00172 
00182 void gcr_grid_set_boolean (GcrGrid *grid, unsigned row, unsigned column, bool value);
00183 
00191 unsigned gcr_grid_append_row (GcrGrid *grid,...);
00192 
00199 void gcr_grid_delete_row (GcrGrid *grid, unsigned row);
00200 
00206 void gcr_grid_delete_selected_rows (GcrGrid *grid);
00207 
00213 void gcr_grid_delete_all (GcrGrid *grid);
00214 
00220 void gcr_grid_select_all (GcrGrid *grid);
00221 
00230 void gcr_grid_customize_column (GcrGrid *grid, unsigned column, unsigned chars, bool editable);
00231 
00238 void gcr_grid_set_allow_multiple_selection (GcrGrid *grid, bool allow);
00239 
00247 void gcr_grid_add_row_to_selection (GcrGrid *grid, unsigned row);
00248 
00255 void gcr_grid_unselect_row (GcrGrid *grid, unsigned row);
00256 
00257 
00264 typedef void (*GridCb) (unsigned i, void *user_data);
00265 
00273 void gcr_grid_for_each_selected (GcrGrid *grid, GridCb cb, void *user_data);
00274 G_END_DECLS
00275 
00276 #endif  //      GCR_GRID_H