32 #include "gnc-splash.h"
37 gnc_window_get_type (
void)
39 static GType gnc_window_type = 0;
41 if (gnc_window_type == 0)
43 static const GTypeInfo our_info =
56 gnc_window_type = g_type_register_static (G_TYPE_INTERFACE,
59 g_type_interface_add_prerequisite (gnc_window_type, G_TYPE_OBJECT);
62 return gnc_window_type;
70 gnc_window_get_gtk_window (GncWindow *window)
72 g_return_val_if_fail(GNC_WINDOW (window), NULL);
75 g_return_val_if_fail(GNC_WINDOW_GET_IFACE (window)->get_gtk_window, NULL);
77 return GNC_WINDOW_GET_IFACE (window)->get_gtk_window (window);
81 gnc_window_get_statusbar (GncWindow *window)
83 g_return_val_if_fail(GNC_WINDOW (window), NULL);
86 g_return_val_if_fail(GNC_WINDOW_GET_IFACE (window)->get_statusbar, NULL);
88 return GNC_WINDOW_GET_IFACE (window)->get_statusbar (window);
92 gnc_window_get_progressbar (GncWindow *window)
94 g_return_val_if_fail(GNC_WINDOW (window), NULL);
97 if (GNC_WINDOW_GET_IFACE (window)->get_progressbar == NULL)
100 return GNC_WINDOW_GET_IFACE (window)->get_progressbar (window);
108 gnc_window_update_status (GncWindow *window,
GncPluginPage *page)
110 GtkWidget *statusbar;
111 const gchar *message;
113 g_return_if_fail(GNC_WINDOW (window));
115 statusbar = gnc_window_get_statusbar (window);
117 gtk_statusbar_pop(GTK_STATUSBAR(statusbar), 0);
118 gtk_statusbar_push(GTK_STATUSBAR(statusbar), 0, message ? message :
"");
122 gnc_window_set_status (GncWindow *window,
GncPluginPage *page,
123 const gchar *message)
125 g_return_if_fail(GNC_WINDOW (window));
126 g_return_if_fail(GNC_PLUGIN_PAGE (page));
129 gnc_window_update_status (window, page);
141 static GncWindow *progress_bar_hack_window = NULL;
147 gnc_window_set_progressbar_window (GncWindow *window)
151 g_return_if_fail(GNC_WINDOW (window));
154 progress_bar_hack_window = window;
159 gnc_window_get_progressbar_window (
void)
161 return progress_bar_hack_window;
166 gnc_window_show_progress (
const char *message,
double percentage)
169 GtkWidget *progressbar;
171 window = progress_bar_hack_window;
175 progressbar = gnc_window_get_progressbar (window);
176 if (progressbar == NULL)
178 DEBUG(
"no progressbar in hack-window" );
182 gnc_update_splash_screen(message, percentage);
186 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar),
" ");
187 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), 0.0);
188 if (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL)
189 GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, TRUE);
194 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), message);
195 if ((percentage == 0) &&
196 (GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive != NULL))
197 GNC_WINDOW_GET_IFACE(window)->ui_set_sensitive(window, FALSE);
198 if (percentage <= 100)
200 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar),
205 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progressbar));
210 while (gtk_events_pending ())
211 gtk_main_iteration ();
void gnc_plugin_page_set_statusbar_text(GncPluginPage *page, const char *name)
#define DEBUG(format, args...)
Functions that are supported by all types of windows.
Functions for adding plugins to a GnuCash window.
const gchar * gnc_plugin_page_get_statusbar_text(GncPluginPage *page)
All type declarations for the whole Gnucash engine.
const gchar * QofLogModule