1 /* GAIL - The GNOME Accessibility Implementation Library 2 * Copyright 2001 Sun Microsystems Inc. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 #ifndef __GAIL_CELL_H__ 21 #define __GAIL_CELL_H__ 22 23 #include <atk/atk.h> 24 25 G_BEGIN_DECLS 26 27 #define GAIL_TYPE_CELL (gail_cell_get_type ()) 28 #define GAIL_CELL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CELL, GailCell)) 29 #define GAIL_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CELL, GailCellClass)) 30 #define GAIL_IS_CELL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CELL)) 31 #define GAIL_IS_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CELL)) 32 #define GAIL_CELL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CELL, GailCellClass)) 33 34 typedef struct _GailCell GailCell; 35 typedef struct _GailCellClass GailCellClass; 36 typedef struct _ActionInfo ActionInfo; 37 typedef void (*ACTION_FUNC) (GailCell *cell); 38 39 struct _GailCell 40 { 41 AtkObject parent; 42 43 GtkWidget *widget; 44 /* 45 * This cached value is used only by atk_object_get_index_in_parent() 46 * which updates the value when it is stale. 47 */ 48 gint index; 49 AtkStateSet *state_set; 50 GList *action_list; 51 void (*refresh_index) (GailCell *cell); 52 gint action_idle_handler; 53 ACTION_FUNC action_func; 54 }; 55 56 GType gail_cell_get_type (void); 57 58 struct _GailCellClass 59 { 60 AtkObjectClass parent_class; 61 }; 62 63 struct _ActionInfo { 64 gchar *name; 65 gchar *description; 66 gchar *keybinding; 67 ACTION_FUNC do_action_func; 68 }; 69 70 void gail_cell_initialise (GailCell *cell, 71 GtkWidget *widget, 72 AtkObject *parent, 73 gint index); 74 75 gboolean gail_cell_add_state (GailCell *cell, 76 AtkStateType state_type, 77 gboolean emit_signal); 78 79 gboolean gail_cell_remove_state (GailCell *cell, 80 AtkStateType state_type, 81 gboolean emit_signal); 82 83 #ifndef GTK_DISABLE_DEPRECATED 84 void gail_cell_type_add_action_interface 85 (GType type); 86 #endif 87 88 gboolean gail_cell_add_action (GailCell *cell, 89 const gchar *action_name, 90 const gchar *action_description, 91 const gchar *action_keybinding, 92 ACTION_FUNC action_func); 93 94 gboolean gail_cell_remove_action (GailCell *cell, 95 gint action_id); 96 97 gboolean gail_cell_remove_action_by_name (GailCell *cell, 98 const gchar *action_name); 99 100 G_END_DECLS 101 102 #endif /* __GAIL_CELL_H__ */ 103