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>
|
2001-04-17 Rob Browning <rlb@cs.utexas.edu>
|
||||||
|
|
||||||
* src/scm/utilities.scm (string-split): used to be string-split-on
|
* 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,
|
gnc_main_window_remove_view_cb(GnomeMDI * mdi, GnomeMDIChild * child,
|
||||||
gpointer data) {
|
gpointer data) {
|
||||||
GNCMainInfo * mainwin = data;
|
GNCMainInfo * mainwin = data;
|
||||||
if(mainwin->last_active == child) {
|
|
||||||
mainwin->last_active = NULL;
|
|
||||||
}
|
|
||||||
gtk_object_destroy(GTK_OBJECT(child));
|
gtk_object_destroy(GTK_OBJECT(child));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -228,10 +225,6 @@ gnc_main_window_child_remove_cb(GnomeMDI * mdi, GnomeMDIChild * child,
|
|||||||
gpointer data) {
|
gpointer data) {
|
||||||
GNCMainInfo * mainwin = data;
|
GNCMainInfo * mainwin = data;
|
||||||
|
|
||||||
if(mainwin->last_active == child) {
|
|
||||||
mainwin->last_active = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,27 +240,25 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
|||||||
GNCMainInfo * mainwin = data;
|
GNCMainInfo * mainwin = data;
|
||||||
GNCMainChildInfo * childwin =
|
GNCMainChildInfo * childwin =
|
||||||
gtk_object_get_user_data(GTK_OBJECT(mdi->active_child));
|
gtk_object_get_user_data(GTK_OBJECT(mdi->active_child));
|
||||||
GNCMainChildInfo * oldchildwin;
|
|
||||||
GnomeMDIChild * oldchild = mainwin->last_active;
|
|
||||||
GnomeUIInfo * hintinfo;
|
GnomeUIInfo * hintinfo;
|
||||||
|
GtkWidget * oldbar;
|
||||||
GnomeApp * new_app = gnome_mdi_get_app_from_view(childwin->contents);
|
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 && childwin->toolbar) {
|
||||||
if(childwin->app && (childwin->app == new_app)) {
|
if(childwin->app && (childwin->app == new_app)) {
|
||||||
gtk_widget_show(GTK_WIDGET(childwin->toolbar)->parent);
|
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) {
|
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) */
|
* changed) */
|
||||||
if(GTK_WIDGET(childwin->toolbar)->parent) {
|
if(GTK_WIDGET(childwin->toolbar)->parent) {
|
||||||
gtk_widget_ref(GTK_WIDGET(childwin->toolbar));
|
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());
|
gnc_get_toolbar_style());
|
||||||
}
|
}
|
||||||
else {
|
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;
|
childwin->app = new_app;
|
||||||
gnome_app_add_toolbar(GNOME_APP(childwin->app),
|
gnome_app_add_toolbar(GNOME_APP(childwin->app),
|
||||||
GTK_TOOLBAR(childwin->toolbar),
|
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),
|
gtk_toolbar_set_style(GTK_TOOLBAR(childwin->toolbar),
|
||||||
gnc_get_toolbar_style());
|
gnc_get_toolbar_style());
|
||||||
}
|
}
|
||||||
|
gtk_object_set_user_data(GTK_OBJECT(new_app), childwin->toolbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set the window title */
|
/* set the window title */
|
||||||
@ -301,7 +298,6 @@ gnc_main_window_child_changed_cb(GnomeMDI * mdi, GnomeMDIChild * not_used,
|
|||||||
if(mdi->active_child) {
|
if(mdi->active_child) {
|
||||||
/* the arg to this callback is SUPPOSED to be the last active child,
|
/* the arg to this callback is SUPPOSED to be the last active child,
|
||||||
* but it gets to be NULL under some circumstances */
|
* but it gets to be NULL under some circumstances */
|
||||||
mainwin->last_active = mdi->active_child;
|
|
||||||
hintinfo = gnome_mdi_get_menubar_info(new_app);
|
hintinfo = gnome_mdi_get_menubar_info(new_app);
|
||||||
if(hintinfo) {
|
if(hintinfo) {
|
||||||
gnome_app_install_menu_hints(new_app, hintinfo);
|
gnome_app_install_menu_hints(new_app, hintinfo);
|
||||||
@ -407,7 +403,6 @@ gnc_main_window_new(void) {
|
|||||||
retval->component_id =
|
retval->component_id =
|
||||||
gnc_register_gui_component (WINDOW_MAIN_CM_CLASS, NULL, NULL,
|
gnc_register_gui_component (WINDOW_MAIN_CM_CLASS, NULL, NULL,
|
||||||
retval);
|
retval);
|
||||||
retval->last_active = NULL;
|
|
||||||
|
|
||||||
/* these menu and toolbar options are the ones that are always
|
/* these menu and toolbar options are the ones that are always
|
||||||
* available */
|
* available */
|
||||||
@ -561,12 +556,18 @@ gnc_main_window_file_new_file_cb(GtkWidget * widget) {
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
gnc_main_window_file_new_window_cb(GtkWidget * widget, GnomeMDI * mdi) {
|
gnc_main_window_file_new_window_cb(GtkWidget * widget, GnomeMDI * mdi) {
|
||||||
|
URLType type;
|
||||||
|
char * location;
|
||||||
|
char * label;
|
||||||
|
|
||||||
if(mdi->active_child) {
|
if(mdi->active_child) {
|
||||||
if(!strcmp(mdi->active_child->name, _("Accounts"))) {
|
if(!strcmp(mdi->active_child->name, _("Accounts"))) {
|
||||||
gnc_main_window_open_accounts(TRUE);
|
gnc_main_window_open_accounts(TRUE);
|
||||||
}
|
}
|
||||||
else {
|
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);
|
gtk_widget_destroy(GTK_WIDGET(inf->toolbar)->parent);
|
||||||
inf->toolbar = NULL;
|
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);
|
gnome_mdi_remove_child(mdi, mdi->active_child, FALSE);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -28,8 +28,7 @@
|
|||||||
#include <guile/gh.h>
|
#include <guile/gh.h>
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
GnomeMDI * mdi;
|
GnomeMDI * mdi;
|
||||||
GnomeMDIChild * last_active;
|
|
||||||
int component_id;
|
int component_id;
|
||||||
SCM toolbar_change_callback_id;
|
SCM toolbar_change_callback_id;
|
||||||
SCM mdi_change_callback_id;
|
SCM mdi_change_callback_id;
|
||||||
|
Loading…
Reference in New Issue
Block a user