GnuCash  5.6-150-g038405b370+
gnucash-sheetP.h
Go to the documentation of this file.
1 /********************************************************************\
2  * This program is free software; you can redistribute it and/or *
3  * modify it under the terms of the GNU General Public License as *
4  * published by the Free Software Foundation; either version 2 of *
5  * the License, or (at your option) any later version. *
6  * *
7  * This program is distributed in the hope that it will be useful, *
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
10  * GNU General Public License for more details. *
11  * *
12  * You should have received a copy of the GNU General Public License*
13  * along with this program; if not, contact: *
14  * *
15  * Free Software Foundation Voice: +1-617-542-5942 *
16  * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
17  * Boston, MA 02110-1301, USA gnu@gnu.org *
18  * *
19 \********************************************************************/
20 
21 #ifndef GNUCASH_SHEETP_H
22 #define GNUCASH_SHEETP_H
23 
24 #include <gtk/gtk.h>
25 #include "gnucash-sheet.h"
26 #include "gnucash-item-edit.h"
27 #include "gnucash-cursor.h"
28 
38 {
39  GtkLayout layout;
40 
41  GtkWidget *window;
42 
43  GtkWidget *popup;
44  gpointer popup_data;
45 
46  Table *table;
47  gboolean read_only;
48 
49  GtkWidget *reg;
50 
51  gint num_virt_rows;
52  gint num_virt_cols;
53 
54  GtkWidget *header_item;
55  GnucashCursor *cursor;
56 
57  GHashTable *cursor_styles;
58 
59  /* some style information associated to a sheet */
60  GHashTable *dimensions_hash_table;
61 
62  GTable *blocks;
63 
64  GtkWidget *item_editor;
65  GtkWidget *entry;
66 
67  gboolean use_gnc_color_theme;
68  gboolean use_horizontal_lines;
69  gboolean use_vertical_lines;
70 
71  gboolean input_cancelled;
72 
73  gint num_visible_blocks;
74  gint num_visible_phys_rows;
75 
76  gint width; /* the width in pixels of the sheet */
77  gint height;
78 
79  gint window_height;
80  gint window_width;
81 
82  gint editing;
83 
84  gboolean sheet_has_focus;
85 
86  guint button; /* mouse button being held down */
87  gboolean grabbed; /* has the grab */
88  gdouble button_x, button_y;
89 
90  guint insert_signal;
91  guint delete_signal;
92 
93  GtkAdjustment *hadj, *vadj;
94  GtkWidget *hscrollbar, *vscrollbar;
95 
96  GFunc moved_cb;
97  gpointer moved_cb_data;
98 
99  GFunc open_doclink_cb;
100  gpointer open_doclink_cb_data;
101 
102  guint shift_state;
103  guint keyval_state;
104  gboolean direct_update_cell;
105  int pos, bound;
107 };
108 
109 
111 {
112  GtkLayoutClass parent_class;
113 };
114 
115 
116 GncItemEdit *gnucash_sheet_get_item_edit (GnucashSheet *sheet);
117 void gnucash_sheet_set_popup (GnucashSheet *sheet, GtkWidget *popup, gpointer data);
118 void gnucash_sheet_goto_virt_loc (GnucashSheet *sheet, VirtualLocation virt_loc);
119 void gnucash_sheet_refresh_from_prefs (GnucashSheet *sheet);
120 
121 gboolean gnucash_sheet_find_loc_by_pixel (GnucashSheet *sheet, gint x, gint y,
122  VirtualLocation *vcell_loc);
123 gboolean gnucash_sheet_draw_internal (GnucashSheet *sheet, cairo_t *cr,
124  GtkAllocation *alloc);
125 void gnucash_sheet_draw_cursor (GnucashCursor *cursor, cairo_t *cr);
126 
128 #endif
Public declarations for GnucashCursor class.
Definition: gtable.c:28
Public declarations of GnucashRegister class.
int pos
Indicates that this cell has special operation keys.
Public declarations for GncItemEdit class.