GnuCash  5.6-150-g038405b370+
gnc-main-window.h
Go to the documentation of this file.
1 /*
2  * gnc-main-window.h -- GtkWindow which represents the
3  * GnuCash main window.
4  *
5  * Copyright (C) 2003 Jan Arne Petersen <jpetersen@uni-bonn.de>
6  * Copyright (C) 2003,2005 David Hampton <hampton@employees.org>
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 gnu@gnu.org
24  */
25 
36 #ifndef __GNC_MAIN_WINDOW_H
37 #define __GNC_MAIN_WINDOW_H
38 
39 #include <gtk/gtk.h>
40 #include "gnc-plugin-page.h"
41 
42 #ifdef __cplusplus
43 extern "C"
44 {
45 #endif
46 
47 /* type macros */
48 #define GNC_TYPE_MAIN_WINDOW (gnc_main_window_get_type ())
49 #define GNC_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_MAIN_WINDOW, GncMainWindow))
50 #define GNC_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_MAIN_WINDOW, GncMainWindowClass))
51 #define GNC_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_MAIN_WINDOW))
52 #define GNC_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_MAIN_WINDOW))
53 #define GNC_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_MAIN_WINDOW, GncMainWindowClass))
54 
55 #define PLUGIN_PAGE_IMMUTABLE "page-immutable"
56 
57 /* typedefs & structures */
58 
59 typedef struct
60 {
61  const gchar *actions;
62  const gchar *update_type;
64 
66 typedef struct GncMainWindow
67 {
68  GtkApplicationWindow gtk_application_window;
69  gboolean window_quitting;
70  gboolean just_plugin_prefs;
72 
74 typedef struct
75 {
76  GtkApplicationWindowClass gtk_application_window;
78  /* callbacks */
79  void (*page_added) (GncMainWindow *window,
80  GncPluginPage *page);
81  void (*page_changed) (GncMainWindow *window,
82  GncPluginPage *page);
83  void (*menu_changed) (GncMainWindow *window,
84  GncPluginPage *page);
86 
87 typedef struct
88 {
89  GncMainWindow *window;
90  gpointer data;
92 
93 typedef void (*GncMainWindowFunc) (GncMainWindow *window, GncPluginPage *page);
94 typedef void (*GncMainWindowPageFunc) (GncPluginPage *page, gpointer user_data);
95 
96 /* function prototypes */
97 
102 GType gnc_main_window_get_type (void);
103 
104 
110 
111 
118 
119 
133  GncPluginPage *page);
134 
135 
144 
145 
153 void gnc_main_window_foreach_page (GncMainWindowPageFunc fn,
154  gpointer user_data);
155 
156 
172 
178 void
180  const gchar *name_in);
181 
187 void
189  const gchar *long_name_in);
190 
196 void
198  const gchar *color_in);
199 
206 void
208  gboolean read_only);
209 
225  const gchar *group_name,
226  GSimpleActionGroup *group);
227 
228 
254  const gchar *group_name,
255  GActionEntry *entries,
256  guint n_entries,
257  const gchar **ui_updates,
258  const gchar *ui_filename,
259  gpointer user_data);
260 
261 
274  const gchar *group_name);
275 
288  const gchar **action_names,
289  gboolean vis);
290 
302  const gchar *action_name);
303 
315  const gchar *action_name);
316 
332  const gchar *action_name,
333  const gchar *label,
334  const gchar *tooltip);
335 
344 
351 typedef struct
352 {
354  const char *action_name;
356  const char *short_label;
358 
359 
368  GncToolBarShortNames *toolbar_labels);
369 
370 
384 GSimpleActionGroup *gnc_main_window_get_action_group (GncMainWindow *window,
385  const gchar *group_name);
386 
387 
395 
396 
414 gboolean gnc_main_window_button_press_cb (GtkWidget *whatever,
415  GdkEventButton *event,
416  GncPluginPage *page);
417 
418 
432 gboolean gnc_main_window_popup_menu_cb (GtkWidget *widget,
433  GncPluginPage *page);
434 
435 
440 void gnc_main_window_restore_all_windows(const GKeyFile *keyfile);
441 
451 
456 void gnc_main_window_save_all_windows(GKeyFile *keyfile);
457 
461 
462 
473 
474 
483 gboolean gnc_main_window_all_finish_pending (void);
484 
493 void gnc_main_window_all_action_set_sensitive (const gchar *action_name, gboolean sensitive);
494 
506  const gchar *action_name);
507 
519  const gchar *group_name,
520  const gchar *action_name);
521 
528 GMenuModel *gnc_main_window_get_menu_model (GncMainWindow *window);
529 
540  GncPluginPage *page,
541  const gchar **ui_updates);
542 
547 
561 GtkWidget *gnc_book_options_dialog_cb (gboolean modal, gchar *title,
562  GtkWindow *parent);
563 
576 
577 #ifdef __cplusplus
578 }
579 #endif
580 #endif /* __GNC_MAIN_WINDOW_H */
581 
Holds all of the options for a book, report, or stylesheet, organized by GncOptionSections.
void gnc_main_window_restore_all_windows(const GKeyFile *keyfile)
Restore the persistent state of all windows.
void gnc_main_window_update_menu_and_toolbar(GncMainWindow *window, GncPluginPage *page, const gchar **ui_updates)
Update the main window menu with the placeholders listed in ui_updates and load the page specific too...
The instance data structure for a content plugin.
gboolean gnc_main_window_button_press_cb(GtkWidget *whatever, GdkEventButton *event, GncPluginPage *page)
Callback function invoked when the user clicks in the content of any Gnucash window.
void gnc_main_window_set_vis_of_items_by_action(GncMainWindow *window, const gchar **action_names, gboolean vis)
Show or hide menu and toolbar items based on a NULL terminated list of action names.
void gnc_main_window_menu_add_accelerator_keys(GncMainWindow *window)
Scan the main window menu and add accelerator keys to main window accelerator group.
GMenuModel * gnc_main_window_get_menu_model(GncMainWindow *window)
Return the GMenuModel for the main window menu bar.
void gnc_main_window_init_short_names(GncMainWindow *window, GncToolBarShortNames *toolbar_labels)
Update the labels of the toolbar items with short names.
GtkWidget * gnc_main_window_menu_find_menu_item(GncMainWindow *window, const gchar *action_name)
Find the menu item with the given action name for the window specified.
gboolean gnc_main_window_is_restoring_pages(GncMainWindow *window)
Check if the main window is restoring the plugin pages.
GtkWidget * gnc_book_options_dialog_cb(gboolean modal, gchar *title, GtkWindow *parent)
Opens the Book Options dialog.
void gnc_main_window_merge_actions(GncMainWindow *window, const gchar *group_name, GActionEntry *actions, guint n_actions, const gchar **ui_updates, const gchar *ui_filename, gpointer user_data)
Add a set of actions to the specified window.
void gnc_main_window_foreach_page(GncMainWindowPageFunc fn, gpointer user_data)
Iterator function to walk all pages in all windows, calling the specified function for each page...
gboolean gnc_main_window_update_menu_for_action(GncMainWindow *window, const gchar *action_name, const gchar *label, const gchar *tooltip)
Find the GMenuModel item given the action name for the window specified.
void gnc_main_window_unmerge_actions(GncMainWindow *window, const gchar *group_name)
Remove a set of actions from the specified window.
void gnc_main_window_show_all_windows(void)
Shows all main windows.
void gnc_main_window_display_page(GncPluginPage *page)
Bring the window containing the specified page to the top of the window stack, then switch the notebo...
void gnc_main_window_save_all_windows(GKeyFile *keyfile)
Save the persistent state of all windows.
GncPluginPage * gnc_main_window_get_current_page(GncMainWindow *window)
Retrieve a pointer to the page that is currently at the front of the specified window.
void gnc_main_window_open_page(GncMainWindow *window, GncPluginPage *page)
Display a data plugin page in a window.
void main_window_update_page_long_name(GncPluginPage *page, const gchar *long_name_in)
Update the long name of the page in the main window.
GAction * gnc_main_window_find_action_in_group(GncMainWindow *window, const gchar *group_name, const gchar *action_name)
Find the GAction in a specific action group for window.
void gnc_main_window_all_action_set_sensitive(const gchar *action_name, gboolean sensitive)
Change the sensitivity of a command in all windows.
void main_window_update_page_color(GncPluginPage *page, const gchar *color_in)
Update the color on the page tabs in the main window.
gboolean just_plugin_prefs
Just remove preferences only from plugins.
GAction * gnc_main_window_find_action(GncMainWindow *window, const gchar *action_name)
Find the GAction in the main window.
GType gnc_main_window_get_type(void)
Get the type of a gnc main window.
GtkApplicationWindowClass gtk_application_window
The parent class for a main window.
const char * short_label
The alternate toolbar label to use.
gboolean gnc_main_window_popup_menu_cb(GtkWidget *widget, GncPluginPage *page)
Callback function invoked when the user requests that Gnucash popup the contextual menu via the keybo...
gboolean gnc_book_options_dialog_apply_helper(GncOptionDB *options)
Processes selected options in the Book Options dialog: checks book_currency and use_split_action_for_...
Functions for adding plugins to a GnuCash window.
gboolean window_quitting
Set to TRUE when quitting from this window.
gboolean gnc_main_window_finish_pending(GncMainWindow *window)
Tell a window to finish any outstanding activities.
void main_window_update_page_set_read_only_icon(GncPluginPage *page, gboolean read_only)
Update the icon on the page tabs in the main window.
A structure for defining alternate action names for use in the toolbar.
GncMainWindow * gnc_main_window_new(void)
Create a new gnc main window plugin.
void gnc_main_window_close_page(GncPluginPage *page)
Remove a data plugin page from a window and display the previous page.
GSimpleActionGroup * gnc_main_window_get_action_group(GncMainWindow *window, const gchar *group_name)
Retrieve a specific set of user interface actions from a window.
The instance data structure for a main window object.
void gnc_main_window_restore_default_state(GncMainWindow *window)
Restore the persistent state of one window to a sane default.
The class data structure for a main window object.
gboolean gnc_main_window_all_finish_pending(void)
Tell all pages in all windows to finish any outstanding activities.
void gnc_main_window_manual_merge_actions(GncMainWindow *window, const gchar *group_name, GSimpleActionGroup *group)
Manually add a set of actions to the specified window.
void main_window_update_page_name(GncPluginPage *page, const gchar *name_in)
Update the name of the page in the main window.
GtkWidget * gnc_main_window_toolbar_find_tool_item(GncMainWindow *window, const gchar *action_name)
Find the toolbar item with the given action name for the window specified.
const char * action_name
The name of the action.
GtkApplicationWindow gtk_application_window
The parent object for a main window.
void gnc_main_window_set_progressbar_window(GncMainWindow *window)
Set the window where all progressbar updates should occur.