The Gnome Chemistry Utils 0.13.5
grid.h
Go to the documentation of this file.
00001 /*
00002  * Gnome Crystal
00003  * grid.h
00004  *
00005  * Copyright (C) 2010-2011 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 2 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 
00030 #include <gtk/gtk.h>
00031 
00032 G_BEGIN_DECLS
00033 
00034 #define GCR_TYPE_GRID   (gcr_grid_get_type ())
00035 #define GCR_GRID(obj)   (G_TYPE_CHECK_INSTANCE_CAST((obj), GCR_TYPE_GRID, GcrGrid))
00036 #define GCR_IS_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCR_TYPE_GRID))
00037 
00038 typedef struct _GcrGrid GcrGrid;
00039 
00040 GType      gcr_grid_get_type (void);
00041 
00042 GtkWidget *gcr_grid_new (char const *col_title, GType col_type,...);
00043 int gcr_grid_get_int (GcrGrid *grid, unsigned row, unsigned column);
00044 unsigned gcr_grid_get_uint (GcrGrid *grid, unsigned row, unsigned column);
00045 double gcr_grid_get_double (GcrGrid *grid, unsigned row, unsigned column);
00046 char const *gcr_grid_get_string (GcrGrid *grid, unsigned row, unsigned column);
00047 bool gcr_grid_get_boolean (GcrGrid *grid, unsigned row, unsigned column);
00048 void gcr_grid_set_int (GcrGrid *grid, unsigned row, unsigned column, int value);
00049 void gcr_grid_set_uint (GcrGrid *grid, unsigned row, unsigned column, unsigned value);
00050 void gcr_grid_set_double (GcrGrid *grid, unsigned row, unsigned column, double value);
00051 void gcr_grid_set_string (GcrGrid *grid, unsigned row, unsigned column, char const *value);
00052 void gcr_grid_set_boolean (GcrGrid *grid, unsigned row, unsigned column, bool value);
00053 unsigned gcr_grid_append_row (GcrGrid *grid,...);
00054 void gcr_grid_delete_row (GcrGrid *grid, unsigned row);
00055 void gcr_grid_delete_selected_rows (GcrGrid *grid);
00056 void gcr_grid_delete_all (GcrGrid *grid);
00057 void gcr_grid_select_all (GcrGrid *grid);
00058 void gcr_grid_customize_column (GcrGrid *grid, unsigned column, unsigned chars, bool editable);
00059 void gcr_grid_set_allow_multiple_selection (GcrGrid *grid, bool allow);
00060 void gcr_grid_add_row_to_selection (GcrGrid *grid, unsigned row);
00061 void gcr_grid_unselect_row (GcrGrid *grid, unsigned row);
00062 
00063 typedef void (*GridCb) (unsigned i, void *user_data);
00064 void gcr_grid_for_each_selected (GcrGrid *grid, GridCb cb, void *user_data);
00065 G_END_DECLS
00066 
00067 #endif  //      GCR_GRID_H