mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
2001-04-17 Bill Gribble <grib@billgribble.com>
* src/gnome/window-main.c: More changes for MDI. I think we finally have toolbars handled right. Also new windows for account trees. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3989 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
1a63b7f75d
commit
e9e797da33
@ -1,3 +1,9 @@
|
||||
2001-04-17 Bill Gribble <grib@billgribble.com>
|
||||
|
||||
* src/gnome/window-main.c: More changes for MDI. I think we
|
||||
finally have toolbars handled right. Also new windows for account
|
||||
trees.
|
||||
|
||||
2001-04-17 Rob Browning <rlb@cs.utexas.edu>
|
||||
|
||||
* src/scm/utilities.scm (string-split): used to be string-split-on
|
||||
|
@ -83,9 +83,6 @@ static gint
|
||||
gnc_main_window_remove_view_cb(GnomeMDI * mdi, GnomeMDIChild * child,
|
||||
gpointer data) {
|
||||
GNCMainInfo * mainwin = data;
|
||||
if(mainwin->last_active == child) {
|
||||
mainwin->last_active = NULL;
|
||||
}
|
||||
gtk_object_destroy(GTK_OBJECT(child));
|
||||
return TRUE;
|
||||
}
|
||||
@ -228,10 +225,6 @@ gnc_main_window_child_remove_cb(GnomeMDI * mdi, GnomeMDIChild * child,
|
||||
gpointer data) {
|
||||
GNCMainInfo * mainwin = data;
|
||||
|
||||
if(mainwin->last_active == child) {
|
||||
mainwin->last_active = NULL;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -247,27 +240,25 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
||||
GNCMainInfo * mainwin = data;
|
||||
GNCMainChildInfo * childwin =
|
||||
gtk_object_get_user_data(GTK_OBJECT(mdi->active_child));
|
||||
GNCMainChildInfo * oldchildwin;
|
||||
GnomeMDIChild * oldchild = mainwin->last_active;
|
||||
GnomeUIInfo * hintinfo;
|
||||
GtkWidget * oldbar;
|
||||
GnomeApp * new_app = gnome_mdi_get_app_from_view(childwin->contents);
|
||||
|
||||
/* hide the old toolbar, if needed */
|
||||
if(oldchild) {
|
||||
oldchildwin = gtk_object_get_user_data(GTK_OBJECT(oldchild));
|
||||
if(oldchildwin && oldchildwin->toolbar &&
|
||||
(oldchildwin->app == new_app)) {
|
||||
gtk_widget_hide(GTK_WIDGET(oldchildwin->toolbar)->parent);
|
||||
}
|
||||
}
|
||||
|
||||
/* show the new one */
|
||||
if(childwin && childwin->toolbar) {
|
||||
if(childwin->app && (childwin->app == new_app)) {
|
||||
oldbar = gtk_object_get_user_data(GTK_OBJECT(new_app));
|
||||
if(oldbar && (oldbar != childwin->toolbar)) {
|
||||
gtk_widget_hide(GTK_WIDGET(oldbar)->parent);
|
||||
gtk_widget_show(GTK_WIDGET(childwin->toolbar)->parent);
|
||||
}
|
||||
}
|
||||
else if(childwin->app) {
|
||||
/* we need to move the toolbar to a new APP (mdi mode probably
|
||||
oldbar = gtk_object_get_user_data(GTK_OBJECT(new_app));
|
||||
if(oldbar && (oldbar != childwin->toolbar)) {
|
||||
gtk_widget_hide(GTK_WIDGET(oldbar)->parent);
|
||||
}
|
||||
|
||||
/* we need to move the toolbar to a new App (mdi mode probably
|
||||
* changed) */
|
||||
if(GTK_WIDGET(childwin->toolbar)->parent) {
|
||||
gtk_widget_ref(GTK_WIDGET(childwin->toolbar));
|
||||
@ -284,6 +275,11 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
||||
gnc_get_toolbar_style());
|
||||
}
|
||||
else {
|
||||
oldbar = gtk_object_get_user_data(GTK_OBJECT(new_app));
|
||||
if(oldbar && (oldbar != childwin->toolbar)) {
|
||||
gtk_widget_hide(GTK_WIDGET(oldbar)->parent);
|
||||
}
|
||||
|
||||
childwin->app = new_app;
|
||||
gnome_app_add_toolbar(GNOME_APP(childwin->app),
|
||||
GTK_TOOLBAR(childwin->toolbar),
|
||||
@ -292,6 +288,7 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
||||
gtk_toolbar_set_style(GTK_TOOLBAR(childwin->toolbar),
|
||||
gnc_get_toolbar_style());
|
||||
}
|
||||
gtk_object_set_user_data(GTK_OBJECT(new_app), childwin->toolbar);
|
||||
}
|
||||
|
||||
/* set the window title */
|
||||
@ -301,7 +298,6 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
||||
if(mdi->active_child) {
|
||||
/* the arg to this callback is SUPPOSED to be the last active child,
|
||||
* but it gets to be NULL under some circumstances */
|
||||
mainwin->last_active = mdi->active_child;
|
||||
hintinfo = gnome_mdi_get_menubar_info(new_app);
|
||||
if(hintinfo) {
|
||||
gnome_app_install_menu_hints(new_app, hintinfo);
|
||||
@ -407,7 +403,6 @@ gnc_main_window_new(void) {
|
||||
retval->component_id =
|
||||
gnc_register_gui_component (WINDOW_MAIN_CM_CLASS, NULL, NULL,
|
||||
retval);
|
||||
retval->last_active = NULL;
|
||||
|
||||
/* these menu and toolbar options are the ones that are always
|
||||
* available */
|
||||
@ -561,12 +556,18 @@ gnc_main_window_file_new_file_cb(GtkWidget * widget) {
|
||||
|
||||
static void
|
||||
gnc_main_window_file_new_window_cb(GtkWidget * widget, GnomeMDI * mdi) {
|
||||
URLType type;
|
||||
char * location;
|
||||
char * label;
|
||||
|
||||
if(mdi->active_child) {
|
||||
if(!strcmp(mdi->active_child->name, _("Accounts"))) {
|
||||
gnc_main_window_open_accounts(TRUE);
|
||||
}
|
||||
else {
|
||||
gnc_main_window_open_report_url(mdi->active_child->name, TRUE);
|
||||
GnomeMDIChild * child =
|
||||
gnc_main_window_create_child(mdi->active_child->name);
|
||||
gnome_mdi_add_toplevel_view(mdi, child);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -609,9 +610,6 @@ gnc_main_window_file_close_cb(GtkWidget * widget, GnomeMDI * mdi) {
|
||||
gtk_widget_destroy(GTK_WIDGET(inf->toolbar)->parent);
|
||||
inf->toolbar = NULL;
|
||||
}
|
||||
if(gnc_ui_get_data()->last_active == mdi->active_child) {
|
||||
gnc_ui_get_data()->last_active = NULL;
|
||||
}
|
||||
gnome_mdi_remove_child(mdi, mdi->active_child, FALSE);
|
||||
}
|
||||
else {
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
typedef struct {
|
||||
GnomeMDI * mdi;
|
||||
GnomeMDIChild * last_active;
|
||||
int component_id;
|
||||
SCM toolbar_change_callback_id;
|
||||
SCM mdi_change_callback_id;
|
||||
|
Loading…
Reference in New Issue
Block a user