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:
Dave Peticolas 2001-04-18 21:31:36 +00:00
parent 6e3ebb1a30
commit 819699c541
3 changed files with 35 additions and 46 deletions

View File

@ -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

View File

@ -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);

View File

@ -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"),