GnuCash  5.6-150-g038405b370+
gnucash-style.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_STYLE_H
22 #define GNUCASH_STYLE_H
23 
24 #include "gnucash-sheet.h"
32 typedef struct
33 {
34  gint pixel_height;
35  gint pixel_width;
36 
37  gint origin_x;
38  gint origin_y;
39 
40  gboolean can_span_over;
42 
43 typedef struct
44 {
45  gint nrows;
46  gint ncols;
47 
48  /* totals, in pixels */
49  gint height;
50  gint width;
51 
52  /* per cell parameters */
53  GTable *cell_dimensions;
54 
55  gint refcount;
57 
59 {
60  CellBlock * cursor;
61 
62  gint nrows;
63  gint ncols;
64 
65  BlockDimensions *dimensions;
66 
67  gint refcount;
68 };
69 
70 
71 gboolean gnucash_style_init (void);
72 
73 void gnucash_sheet_style_init(void);
74 
75 gint gnucash_style_col_is_resizable (SheetBlockStyle *style, int col);
76 
77 CellDimensions * gnucash_style_get_cell_dimensions (SheetBlockStyle *style,
78  int row, int col);
79 
80 void gnucash_sheet_set_col_width (GnucashSheet *sheet, int col, int width);
81 
82 gint gnucash_style_row_width(SheetBlockStyle *style, int row);
83 
84 void gnucash_sheet_styles_set_dimensions (GnucashSheet *sheet, int width);
85 
86 void gnucash_sheet_style_destroy (GnucashSheet *sheet, SheetBlockStyle *style);
87 
88 void gnucash_sheet_clear_styles (GnucashSheet *sheet);
89 void gnucash_sheet_create_styles (GnucashSheet *sheet);
90 
91 void gnucash_sheet_compile_styles (GnucashSheet *sheet);
92 
93 void gnucash_sheet_styles_recompile (GnucashSheet *sheet);
94 
95 SheetBlockStyle *gnucash_sheet_get_style (GnucashSheet *sheet,
96  VirtualCellLocation vcell_loc);
97 
98 SheetBlockStyle *
99 gnucash_sheet_get_style_from_table (GnucashSheet *sheet,
100  VirtualCellLocation vcell_loc);
101 
102 SheetBlockStyle *
103 gnucash_sheet_get_style_from_cursor (GnucashSheet *sheet,
104  const char *cursor_name);
105 
106 void gnucash_sheet_style_get_cell_pixel_rel_coords (SheetBlockStyle *style,
107  gint cell_row,
108  gint cell_col,
109  gint *x, gint *y,
110  gint *w, gint *h);
111 
112 void gnucash_sheet_style_ref (GnucashSheet *sheet, SheetBlockStyle *style);
113 void gnucash_sheet_style_unref (GnucashSheet *sheet, SheetBlockStyle *style);
114 
115 void gnucash_sheet_get_borders (GnucashSheet *sheet, VirtualLocation virt_loc,
116  PhysicalCellBorders *borders);
117 
118 typedef GHashTable *GNCHeaderWidths;
119 
120 GNCHeaderWidths gnc_header_widths_new (void);
121 void gnc_header_widths_destroy (GNCHeaderWidths widths);
122 void gnc_header_widths_set_width (GNCHeaderWidths widths,
123  const char *cell_name,
124  int width);
125 int gnc_header_widths_get_width (GNCHeaderWidths widths,
126  const char *cell_name);
127 
128 void gnucash_sheet_get_header_widths (GnucashSheet *sheet,
129  GNCHeaderWidths widths);
130 void gnucash_sheet_set_header_widths (GnucashSheet *sheet,
131  GNCHeaderWidths widths);
133 #endif
Definition: gtable.c:28
Public declarations of GnucashRegister class.