GnuCash  2.6.99
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
gnc-plugin-page.h
Go to the documentation of this file.
1 /*
2  * gnc-plugin-page.h -- A page, which can be added to the
3  * GnuCash main window.
4  *
5  * Copyright (C) 2003 Jan Arne Petersen <[email protected]>
6  * Copyright (C) 2003,2005 David Hampton <[email protected]>
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, contact:
20  *
21  * Free Software Foundation Voice: +1-617-542-5942
22  * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
23  * Boston, MA 02110-1301, USA [email protected]
24  */
25 
36 #ifndef __GNC_PLUGIN_PAGE_H
37 #define __GNC_PLUGIN_PAGE_H
38 
39 #include <glib.h>
40 #include "qof.h"
41 
42 G_BEGIN_DECLS
43 
44 #define GNC_PREF_SUMMARYBAR_POSITION_TOP "summarybar-position-top"
45 #define GNC_PREF_SUMMARYBAR_POSITION_BOTTOM "summarybar-position-bottom"
46 
47 /* type macros */
48 #define GNC_TYPE_PLUGIN_PAGE (gnc_plugin_page_get_type ())
49 #define GNC_PLUGIN_PAGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_PLUGIN_PAGE, GncPluginPage))
50 #define GNC_PLUGIN_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_PAGE, GncPluginPageClass))
51 #define GNC_IS_PLUGIN_PAGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_PLUGIN_PAGE))
52 #define GNC_IS_PLUGIN_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_PAGE))
53 #define GNC_PLUGIN_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_PLUGIN_PAGE, GncPluginPageClass))
54 
55 /* typedefs & structures */
56 
58 typedef struct GncPluginPage
59 {
60  GObject gobject;
62  GtkWidget *window;
67  GtkWidget *notebook_page;
71  GtkWidget *summarybar;
77 
78 
80 typedef struct
81 {
82  GObjectClass gobject;
83 
86  const gchar *tab_icon;
88  const gchar *plugin_name;
89 
90  /* Signals */
91  void (* inserted) (GncPluginPage *plugin_page);
92  void (* removed) (GncPluginPage *plugin_page);
93  void (* selected) (GncPluginPage *plugin_page);
94  void (* unselected) (GncPluginPage *plugin_page);
95 
96  /* Virtual Table */
97 
107  GtkWidget *(* create_widget) (GncPluginPage *plugin_page);
113  void (* destroy_widget) (GncPluginPage *plugin_page);
114 
125  void (* save_page) (GncPluginPage *page, GKeyFile *file,
126  const gchar *group);
127 
145  GncPluginPage * (* recreate_page) (GtkWidget *window, GKeyFile *file,
146  const gchar *group);
147 
157  void (* window_changed) (GncPluginPage *plugin_page, GtkWidget *window);
158 
165  void (* page_name_changed) (GncPluginPage *plugin_page,
166  const gchar *name);
167 
176  void (* update_edit_menu_actions) (GncPluginPage *plugin_page, gboolean hide);
177 
187  gboolean (* finish_pending) (GncPluginPage *plugin_page);
189 
190 
195 GType gnc_plugin_page_get_type (void);
196 
197 
208 GtkWidget *gnc_plugin_page_create_widget (GncPluginPage *plugin_page);
209 
210 
218 
219 
226 void gnc_plugin_page_show_summarybar (GncPluginPage *page, gboolean visible);
227 
228 
241  GKeyFile *key_file,
242  const gchar *group_name);
243 
244 
257 GncPluginPage *gnc_plugin_page_recreate_page (GtkWidget *window,
258  const gchar *page_type,
259  GKeyFile *key_file,
260  const gchar *group_name);
261 
262 
271  GtkUIManager *merge);
272 
273 
282  GtkUIManager *merge);
283 
284 
292 const gchar *gnc_plugin_page_get_plugin_name (GncPluginPage *plugin_page);
293 
294 
302 
303 
315 gboolean gnc_plugin_page_has_book (GncPluginPage *page, QofBook *book);
316 
317 
325 
326 
334 GtkWidget *gnc_plugin_page_get_window (GncPluginPage *page);
335 
336 
345 const gchar *gnc_plugin_page_get_page_name (GncPluginPage *page);
346 
347 
355 void gnc_plugin_page_set_page_name (GncPluginPage *page, const char *name);
356 
357 
368 
369 
377 void gnc_plugin_page_set_page_long_name (GncPluginPage *page, const char *name);
378 
379 
388 const gchar *gnc_plugin_page_get_page_color (GncPluginPage *page);
389 
390 
399 void gnc_plugin_page_set_page_color (GncPluginPage *page, const char *color);
400 
401 
409 const gchar *gnc_plugin_page_get_uri (GncPluginPage *page);
410 
411 
418 void gnc_plugin_page_set_uri (GncPluginPage *page, const char *name);
419 
420 
429 
430 
438  const char *name);
439 
440 
448 
449 
460  gboolean use_new);
461 
462 
471 
472 
484  const char *ui_filename);
485 
486 
492 GtkUIManager *gnc_plugin_page_get_ui_merge (GncPluginPage *page);
493 
494 
501 GtkActionGroup *gnc_plugin_page_get_action_group (GncPluginPage *page);
502 
503 
515 GtkActionGroup * gnc_plugin_page_create_action_group (GncPluginPage *page,
516  const gchar *group_name);
517 
526 GtkAction *gnc_plugin_page_get_action (GncPluginPage *page, const gchar *name);
527 
528 /* Signals */
529 void gnc_plugin_page_inserted (GncPluginPage *plugin_page);
530 void gnc_plugin_page_removed (GncPluginPage *plugin_page);
531 void gnc_plugin_page_selected (GncPluginPage *plugin_page);
532 void gnc_plugin_page_unselected (GncPluginPage *plugin_page);
533 
540 gboolean gnc_plugin_page_finish_pending (GncPluginPage *plugin_page);
541 
542 G_END_DECLS
543 
544 #endif /* __GNC_PLUGIN_PAGE_H */
545 
gboolean gnc_plugin_page_finish_pending(GncPluginPage *page)
GtkWidget * gnc_plugin_page_get_window(GncPluginPage *page)
gboolean gnc_plugin_page_has_books(GncPluginPage *page)
gboolean gnc_plugin_page_get_use_new_window(GncPluginPage *page)
const gchar * tab_icon
GType gnc_plugin_page_get_type(void)
void gnc_plugin_page_destroy_widget(GncPluginPage *plugin_page)
void gnc_plugin_page_set_statusbar_text(GncPluginPage *page, const char *name)
const gchar * gnc_plugin_page_get_page_long_name(GncPluginPage *page)
void gnc_plugin_page_set_uri(GncPluginPage *page, const char *name)
void gnc_plugin_page_set_ui_description(GncPluginPage *page, const char *ui_filename)
const gchar * gnc_plugin_page_get_page_name(GncPluginPage *page)
void gnc_plugin_page_merge_actions(GncPluginPage *page, GtkUIManager *ui_merge)
GtkWidget * window
const gchar * gnc_plugin_page_get_page_color(GncPluginPage *page)
void gnc_plugin_page_set_page_long_name(GncPluginPage *page, const char *name)
const gchar * gnc_plugin_page_get_ui_description(GncPluginPage *page)
GtkActionGroup * gnc_plugin_page_get_action_group(GncPluginPage *page)
struct GncPluginPage GncPluginPage
void gnc_plugin_page_unmerge_actions(GncPluginPage *page, GtkUIManager *ui_merge)
GtkWidget * gnc_plugin_page_create_widget(GncPluginPage *plugin_page)
const gchar * gnc_plugin_page_get_uri(GncPluginPage *page)
void gnc_plugin_page_set_use_new_window(GncPluginPage *page, gboolean use_new)
gboolean gnc_plugin_page_has_book(GncPluginPage *page, QofBook *book)
const gchar * plugin_name
const gchar * gnc_plugin_page_get_statusbar_text(GncPluginPage *page)
void gnc_plugin_page_save_page(GncPluginPage *page, GKeyFile *key_file, const gchar *group_name)
GtkAction * gnc_plugin_page_get_action(GncPluginPage *page, const gchar *name)
void gnc_plugin_page_set_page_color(GncPluginPage *page, const char *color)
void gnc_plugin_page_set_page_name(GncPluginPage *page, const char *name)
void gnc_plugin_page_add_book(GncPluginPage *page, QofBook *book)
GtkActionGroup * gnc_plugin_page_create_action_group(GncPluginPage *page, const gchar *group_name)
GtkUIManager * gnc_plugin_page_get_ui_merge(GncPluginPage *page)
GtkWidget * notebook_page
GncPluginPage * gnc_plugin_page_recreate_page(GtkWidget *window, const gchar *page_type, GKeyFile *key_file, const gchar *page_group)
void gnc_plugin_page_show_summarybar(GncPluginPage *page, gboolean visible)
GtkWidget * summarybar
const gchar * gnc_plugin_page_get_plugin_name(GncPluginPage *plugin_page)