00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00036 #ifndef __GNC_PLUGIN_PAGE_H
00037 #define __GNC_PLUGIN_PAGE_H
00038
00039 #include <glib.h>
00040 #include "qof.h"
00041
00042 G_BEGIN_DECLS
00043
00044 #define KEY_SUMMARYBAR_POSITION "summarybar_position"
00045
00046
00047 #define GNC_TYPE_PLUGIN_PAGE (gnc_plugin_page_get_type ())
00048 #define GNC_PLUGIN_PAGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_PLUGIN_PAGE, GncPluginPage))
00049 #define GNC_PLUGIN_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_PAGE, GncPluginPageClass))
00050 #define GNC_IS_PLUGIN_PAGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_PLUGIN_PAGE))
00051 #define GNC_IS_PLUGIN_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_PAGE))
00052 #define GNC_PLUGIN_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_PLUGIN_PAGE, GncPluginPageClass))
00053
00054
00055
00057 typedef struct GncPluginPage
00058 {
00059 GObject gobject;
00061 GtkWidget *window;
00066 GtkWidget *notebook_page;
00070 GtkWidget *summarybar;
00075 } GncPluginPage;
00076
00077
00079 typedef struct
00080 {
00081 GObjectClass gobject;
00082
00085 const gchar *tab_icon;
00087 const gchar *plugin_name;
00088
00089
00090 void (* inserted) (GncPluginPage *plugin_page);
00091 void (* removed) (GncPluginPage *plugin_page);
00092 void (* selected) (GncPluginPage *plugin_page);
00093 void (* unselected) (GncPluginPage *plugin_page);
00094
00095
00096
00106 GtkWidget *(* create_widget) (GncPluginPage *plugin_page);
00112 void (* destroy_widget) (GncPluginPage *plugin_page);
00113
00124 void (* save_page) (GncPluginPage *page, GKeyFile *file,
00125 const gchar *group);
00126
00144 GncPluginPage * (* recreate_page) (GtkWidget *window, GKeyFile *file,
00145 const gchar *group);
00146
00156 void (* window_changed) (GncPluginPage *plugin_page, GtkWidget *window);
00157
00164 void (* page_name_changed) (GncPluginPage *plugin_page,
00165 const gchar *name);
00166
00175 void (* update_edit_menu_actions) (GncPluginPage *plugin_page, gboolean hide);
00176
00186 gboolean (* finish_pending) (GncPluginPage *plugin_page);
00187 } GncPluginPageClass;
00188
00189
00194 GType gnc_plugin_page_get_type (void);
00195
00196
00207 GtkWidget *gnc_plugin_page_create_widget (GncPluginPage *plugin_page);
00208
00209
00216 void gnc_plugin_page_destroy_widget (GncPluginPage *plugin_page);
00217
00218
00225 void gnc_plugin_page_show_summarybar (GncPluginPage *page, gboolean visible);
00226
00227
00239 void gnc_plugin_page_save_page (GncPluginPage *page,
00240 GKeyFile *key_file,
00241 const gchar *group_name);
00242
00243
00256 GncPluginPage *gnc_plugin_page_recreate_page (GtkWidget *window,
00257 const gchar *page_type,
00258 GKeyFile *key_file,
00259 const gchar *group_name);
00260
00261
00269 void gnc_plugin_page_merge_actions (GncPluginPage *plugin_page,
00270 GtkUIManager *merge);
00271
00272
00280 void gnc_plugin_page_unmerge_actions (GncPluginPage *plugin_page,
00281 GtkUIManager *merge);
00282
00283
00291 const gchar *gnc_plugin_page_get_plugin_name (GncPluginPage *plugin_page);
00292
00293
00300 void gnc_plugin_page_add_book (GncPluginPage *page, QofBook *book);
00301
00302
00314 gboolean gnc_plugin_page_has_book (GncPluginPage *page, QofBook *book);
00315
00316
00323 gboolean gnc_plugin_page_has_books (GncPluginPage *page);
00324
00325
00333 GtkWidget *gnc_plugin_page_get_window (GncPluginPage *page);
00334
00335
00344 const gchar *gnc_plugin_page_get_page_name (GncPluginPage *page);
00345
00346
00354 void gnc_plugin_page_set_page_name (GncPluginPage *page, const char *name);
00355
00356
00366 const gchar *gnc_plugin_page_get_page_long_name (GncPluginPage *page);
00367
00368
00376 void gnc_plugin_page_set_page_long_name (GncPluginPage *page, const char *name);
00377
00378
00387 const gchar *gnc_plugin_page_get_page_color (GncPluginPage *page);
00388
00389
00398 void gnc_plugin_page_set_page_color (GncPluginPage *page, const char *color);
00399
00400
00408 const gchar *gnc_plugin_page_get_uri (GncPluginPage *page);
00409
00410
00417 void gnc_plugin_page_set_uri (GncPluginPage *page, const char *name);
00418
00419
00427 const gchar *gnc_plugin_page_get_statusbar_text (GncPluginPage *page);
00428
00429
00436 void gnc_plugin_page_set_statusbar_text (GncPluginPage *page,
00437 const char *name);
00438
00439
00446 gboolean gnc_plugin_page_get_use_new_window (GncPluginPage *page);
00447
00448
00458 void gnc_plugin_page_set_use_new_window (GncPluginPage *page,
00459 gboolean use_new);
00460
00461
00469 const char *gnc_plugin_page_get_ui_description (GncPluginPage *page);
00470
00471
00482 void gnc_plugin_page_set_ui_description (GncPluginPage *page,
00483 const char *ui_filename);
00484
00485
00491 GtkUIManager *gnc_plugin_page_get_ui_merge (GncPluginPage *page);
00492
00493
00500 GtkActionGroup *gnc_plugin_page_get_action_group (GncPluginPage *page);
00501
00502
00514 GtkActionGroup * gnc_plugin_page_create_action_group (GncPluginPage *page,
00515 const gchar *group_name);
00516
00525 GtkAction *gnc_plugin_page_get_action (GncPluginPage *page, const gchar *name);
00526
00527
00528 void gnc_plugin_page_inserted (GncPluginPage *plugin_page);
00529 void gnc_plugin_page_removed (GncPluginPage *plugin_page);
00530 void gnc_plugin_page_selected (GncPluginPage *plugin_page);
00531 void gnc_plugin_page_unselected (GncPluginPage *plugin_page);
00532
00539 gboolean gnc_plugin_page_finish_pending (GncPluginPage *plugin_page);
00540
00541 G_END_DECLS
00542
00543 #endif
00544