mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Bill Gribble's mdi patch.
* src/gnome/dialog-options.c: don't destroy options dialog twice. * src/gnome/window-main.c: hopefully last MDI fixes; rearrange menu and replace "New Window" with "Move to New Window." git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3993 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
6e3ebb1a30
commit
819699c541
@ -1,3 +1,10 @@
|
||||
2001-04-18 Bill Gribble <grib@billgribble.com>
|
||||
|
||||
* src/gnome/dialog-options.c: don't destroy options dialog twice.
|
||||
|
||||
* src/gnome/window-main.c: hopefully last MDI fixes; rearrange
|
||||
menu and replace "New Window" with "Move to New Window."
|
||||
|
||||
2001-04-18 Dave Peticolas <dave@krondo.com>
|
||||
|
||||
* src/gnc-ui-util.c (gnc_ui_account_get_balance): use current
|
||||
|
@ -1909,6 +1909,12 @@ gnc_options_dialog_help_stub_cb(GtkWidget * w, gpointer data) {
|
||||
static int
|
||||
gnc_options_dialog_close_stub_cb(GtkWidget * w, gpointer data) {
|
||||
GNCOptionWin * window = data;
|
||||
|
||||
gtk_signal_disconnect_by_func(GTK_OBJECT(window->container),
|
||||
GTK_SIGNAL_FUNC
|
||||
(gnc_options_dialog_close_stub_cb),
|
||||
data);
|
||||
|
||||
if(window->close_cb) {
|
||||
(window->close_cb)(window, window->close_cb_data);
|
||||
return TRUE;
|
||||
@ -1985,6 +1991,10 @@ gnc_options_dialog_new(gboolean make_toplevel) {
|
||||
GTK_SIGNAL_FUNC(gnc_options_dialog_close_stub_cb),
|
||||
retval);
|
||||
|
||||
gtk_signal_connect(GTK_OBJECT(retval->container), "destroy",
|
||||
GTK_SIGNAL_FUNC(gnc_options_dialog_close_stub_cb),
|
||||
retval);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(buttonbox), ok_button, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(buttonbox), apply_button, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(buttonbox), help_button, TRUE, TRUE, 0);
|
||||
|
@ -74,19 +74,6 @@ gnc_main_window_destroy_cb(GtkObject * w) {
|
||||
}
|
||||
|
||||
|
||||
/********************************************************************
|
||||
* gnc_main_window_remove_view_cb()
|
||||
* we only have one view per child, so destroy the child
|
||||
********************************************************************/
|
||||
|
||||
static gint
|
||||
gnc_main_window_remove_view_cb(GnomeMDI * mdi, GnomeMDIChild * child,
|
||||
gpointer data) {
|
||||
GNCMainInfo * mainwin = data;
|
||||
gtk_object_destroy(GTK_OBJECT(child));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* gnc_main_window_app_destroyed_cb()
|
||||
* called when a top-level GnomeApp is destroyed.
|
||||
@ -96,6 +83,7 @@ static void
|
||||
gnc_main_window_app_destroyed_cb(GnomeApp * app, gpointer user_data) {
|
||||
GNCMainInfo * mainwin = user_data;
|
||||
GNCMainChildInfo * mc = NULL;
|
||||
GnomeMDI * mdi = mainwin->mdi;
|
||||
GtkWidget *toolbar;
|
||||
GList * child;
|
||||
|
||||
@ -243,11 +231,15 @@ static void
|
||||
gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
||||
gpointer data) {
|
||||
GNCMainInfo * mainwin = data;
|
||||
GNCMainChildInfo * childwin =
|
||||
gtk_object_get_user_data(GTK_OBJECT(mdi->active_child));
|
||||
GNCMainChildInfo * childwin = NULL;
|
||||
GnomeUIInfo * hintinfo;
|
||||
GtkWidget * oldbar;
|
||||
GnomeApp * new_app = gnome_mdi_get_app_from_view(childwin->contents);
|
||||
GnomeApp * new_app = NULL;
|
||||
|
||||
if(mdi && mdi->active_child) {
|
||||
childwin = gtk_object_get_user_data(GTK_OBJECT(mdi->active_child));
|
||||
new_app = gnome_mdi_get_app_from_view(childwin->contents);
|
||||
}
|
||||
|
||||
if(childwin && childwin->toolbar) {
|
||||
if(childwin->app && (childwin->app == new_app)) {
|
||||
@ -325,19 +317,6 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
||||
}
|
||||
|
||||
|
||||
/********************************************************************
|
||||
* gnc_main_window_view_changed_cb()
|
||||
* called when the view changes.
|
||||
********************************************************************/
|
||||
|
||||
static void
|
||||
gnc_main_window_view_changed_cb(GnomeMDI * mdi, GnomeApp * app,
|
||||
gpointer data) {
|
||||
GNCMainInfo * mainwin = data;
|
||||
/* don't do anything ATM */
|
||||
}
|
||||
|
||||
|
||||
/********************************************************************
|
||||
* gnc_main_window_configure_toolbar_cb
|
||||
* called when the toolbar button style changes
|
||||
@ -443,9 +422,6 @@ gnc_main_window_new(void) {
|
||||
gtk_signal_connect(GTK_OBJECT(retval->mdi), "destroy",
|
||||
GTK_SIGNAL_FUNC(gnc_main_window_destroy_cb),
|
||||
retval);
|
||||
gtk_signal_connect(GTK_OBJECT(retval->mdi), "remove_view",
|
||||
GTK_SIGNAL_FUNC(gnc_main_window_remove_view_cb),
|
||||
retval);
|
||||
gtk_signal_connect(GTK_OBJECT(retval->mdi), "app_created",
|
||||
GTK_SIGNAL_FUNC(gnc_main_window_app_created_cb),
|
||||
retval);
|
||||
@ -455,10 +431,6 @@ gnc_main_window_new(void) {
|
||||
gtk_signal_connect(GTK_OBJECT(retval->mdi), "child_changed",
|
||||
GTK_SIGNAL_FUNC(gnc_main_window_child_changed_cb),
|
||||
retval);
|
||||
gtk_signal_connect(GTK_OBJECT(retval->mdi), "view_changed",
|
||||
GTK_SIGNAL_FUNC(gnc_main_window_view_changed_cb),
|
||||
retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -574,13 +546,13 @@ gnc_main_window_file_new_window_cb(GtkWidget * widget, GnomeMDI * mdi) {
|
||||
char * location;
|
||||
char * label;
|
||||
|
||||
if(mdi->active_child) {
|
||||
if(mdi->active_child && mdi->active_view) {
|
||||
if(!strcmp(mdi->active_child->name, _("Accounts"))) {
|
||||
gnc_main_window_open_accounts(TRUE);
|
||||
}
|
||||
else {
|
||||
GnomeMDIChild * child =
|
||||
gnc_main_window_create_child(mdi->active_child->name);
|
||||
GnomeMDIChild * child = mdi->active_child;
|
||||
gnome_mdi_remove_view(mdi, mdi->active_view, FALSE);
|
||||
gnome_mdi_add_toplevel_view(mdi, child);
|
||||
}
|
||||
}
|
||||
@ -735,13 +707,6 @@ gnc_main_window_create_menus(GNCMainInfo * maininfo) {
|
||||
'i', GDK_CONTROL_MASK, NULL
|
||||
},
|
||||
GNOMEUIINFO_SEPARATOR,
|
||||
{
|
||||
GNOME_APP_UI_ITEM,
|
||||
N_("New _Window"),
|
||||
N_("Open a new top-level GnuCash window"),
|
||||
gnc_main_window_file_new_window_cb, NULL, NULL,
|
||||
GNOME_APP_PIXMAP_NONE, NULL, 0, 0, NULL
|
||||
},
|
||||
{
|
||||
GNOME_APP_UI_ITEM,
|
||||
N_("New _Account Tree"),
|
||||
@ -750,6 +715,13 @@ gnc_main_window_create_menus(GNCMainInfo * maininfo) {
|
||||
GNOME_APP_PIXMAP_NONE, NULL, 0, 0, NULL
|
||||
},
|
||||
GNOMEUIINFO_SEPARATOR,
|
||||
{
|
||||
GNOME_APP_UI_ITEM,
|
||||
N_("Move to New Window"),
|
||||
N_("Open a new top-level GnuCash window for the current view"),
|
||||
gnc_main_window_file_new_window_cb, NULL, NULL,
|
||||
GNOME_APP_PIXMAP_NONE, NULL, 0, 0, NULL
|
||||
},
|
||||
{
|
||||
GNOME_APP_UI_ITEM,
|
||||
N_("Close _Window"),
|
||||
|
Loading…
Reference in New Issue
Block a user