From c506f3d18884847cf02483fdd01bcfc580d8bd30 Mon Sep 17 00:00:00 2001 From: Joshua Sled Date: Sat, 28 Jan 2006 23:31:30 +0000 Subject: [PATCH] Remove gnc-split-reg "create" and "capabilities" flags and dead code. 2006-01-28 Joshua Sled * src/gnome/gnc-split-reg.c: Remove a lot of dead code. (gnc_split_reg_new): Remove create-flags and disallowed-cap[abilitie]s; add simple "read-only" flag. * src/gnome/gnc-plugin-page-register.c (gnc_plugin_page_register_actions): remove stock-missing icon for "edit exchange rate" action. (GncPluginPageRegisterPrivate, gnc_plugin_page_register_init) (gnc_plugin_page_register_create_widget): Replace "disallow cap[abilitie]s" with specific read-only flag. * src/gnome/dialog-scheduledxaction.c (schedXact_editor_create_ledger): * src/gnome/dialog-sxsincelast.c (create_to_create_ledger) (create_autoCreate_ledger, create_created_ledger): Set read-only flag on register. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13014 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 18 ++ src/gnome/dialog-scheduledxaction.c | 3 +- src/gnome/dialog-sxsincelast.c | 11 +- src/gnome/gnc-plugin-page-register.c | 12 +- src/gnome/gnc-plugin-page-register.h | 5 +- src/gnome/gnc-split-reg.c | 397 +-------------------------- src/gnome/gnc-split-reg.h | 89 +----- 7 files changed, 38 insertions(+), 497 deletions(-) diff --git a/ChangeLog b/ChangeLog index 836ba75c1c..3075af2e30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2006-01-28 Joshua Sled + + * src/gnome/gnc-split-reg.c: Remove a lot of dead code. + (gnc_split_reg_new): Remove create-flags and + disallowed-cap[abilitie]s; add simple "read-only" flag. + + * src/gnome/gnc-plugin-page-register.c + (gnc_plugin_page_register_actions): remove stock-missing icon for + "edit exchange rate" action. + (GncPluginPageRegisterPrivate, gnc_plugin_page_register_init) + (gnc_plugin_page_register_create_widget): Replace "disallow + cap[abilitie]s" with specific read-only flag. + + * src/gnome/dialog-scheduledxaction.c (schedXact_editor_create_ledger): + * src/gnome/dialog-sxsincelast.c (create_to_create_ledger) + (create_autoCreate_ledger, create_created_ledger): Set read-only + flag on register. + 2006-01-28 David Hampton * src/gnome-utils/print-session.h: Add an include so gnucash diff --git a/src/gnome/dialog-scheduledxaction.c b/src/gnome/dialog-scheduledxaction.c index 81dcce6289..873207abf8 100644 --- a/src/gnome/dialog-scheduledxaction.c +++ b/src/gnome/dialog-scheduledxaction.c @@ -1576,8 +1576,7 @@ schedXact_editor_create_ledger( SchedXactionEditorDialog *sxed ) "gnc-sxed-window-ui-full.xml"); gnc_plugin_page_register_set_options (sxed->plugin_page, NULL, NULL, - NUM_LEDGER_LINES_DEFAULT, - (CAP_JUMP | CAP_SCHEDULE) ); + NUM_LEDGER_LINES_DEFAULT, FALSE ); gnc_embedded_window_open_page (sxed->embed_window, sxed->plugin_page); /* configure... */ diff --git a/src/gnome/dialog-sxsincelast.c b/src/gnome/dialog-sxsincelast.c index 786ae4df6d..b90ad3360a 100644 --- a/src/gnome/dialog-sxsincelast.c +++ b/src/gnome/dialog-sxsincelast.c @@ -3570,8 +3570,7 @@ create_autoCreate_ledger( sxSinceLastData *sxsld ) gnc_plugin_page_set_ui_description (sxsld->ac_register, "gnc-plugin-page-sxregister-ui.xml"); gnc_plugin_page_register_set_options (sxsld->ac_register, - NULL, NULL, 4, - CAP_SCHEDULE); + NULL, NULL, 4, FALSE); gnc_embedded_window_open_page (sxsld->ac_window, sxsld->ac_register); /* Now configure the register */ @@ -3613,8 +3612,7 @@ create_created_ledger( sxSinceLastData *sxsld ) gnc_plugin_page_set_ui_description (sxsld->created_register, "gnc-plugin-page-sxregister-ui.xml"); gnc_plugin_page_register_set_options (sxsld->created_register, - NULL, NULL, 4, - CAP_SCHEDULE); + NULL, NULL, 4, FALSE); gnc_embedded_window_open_page (sxsld->created_window, sxsld->created_register); /* Now configure the register */ @@ -3722,9 +3720,8 @@ create_to_create_ledger( sxSinceLastData *sxsld ) sxsld->to_create_register = gnc_plugin_page_register_new_ledger(sxsld->to_create_ledger); gnc_plugin_page_set_ui_description (sxsld->to_create_register, "gnc-sxed-to-create-window-ui.xml"); - gnc_plugin_page_register_set_options (sxsld->to_create_register, - NULL, NULL, 4, - CAP_READ_ONLY); + gnc_plugin_page_register_set_options(sxsld->to_create_register, + NULL, NULL, 4, TRUE); gnc_embedded_window_open_page (sxsld->to_create_window, sxsld->to_create_register); /* Now configure the register */ diff --git a/src/gnome/gnc-plugin-page-register.c b/src/gnome/gnc-plugin-page-register.c index f42e9aa50e..23a1fe76a9 100644 --- a/src/gnome/gnc-plugin-page-register.c +++ b/src/gnome/gnc-plugin-page-register.c @@ -229,7 +229,7 @@ static GtkActionEntry gnc_plugin_page_register_actions [] = { "BlankTransactionAction", GTK_STOCK_GOTO_BOTTOM, N_("_Blank Transaction"), NULL, N_("Move to the blank transaction at the bottom of the register"), G_CALLBACK (gnc_plugin_page_register_cmd_blank_transaction) }, - { "EditExchangeRateAction", GTK_STOCK_MISSING_IMAGE, N_("Edit E_xchange Rate"), NULL, + { "EditExchangeRateAction", NULL, N_("Edit E_xchange Rate"), NULL, N_("Exit the exchange rate for the current transaction"), G_CALLBACK (gnc_plugin_page_register_cmd_exchange_rate) }, { "JumpTransactionAction", GTK_STOCK_JUMP_TO, N_("_Jump"), NULL, @@ -347,7 +347,7 @@ typedef struct GncPluginPageRegisterPrivate const char *lines_opt_section; const char *lines_opt_name; gint lines_default; - gint disallowCaps; + gboolean read_only; struct { GtkWidget *dialog; @@ -539,7 +539,7 @@ gnc_plugin_page_register_init (GncPluginPageRegister *plugin_page) priv->lines_opt_section = DEFAULT_LINES_OPTION_SECTION; priv->lines_opt_name = DEFAULT_LINES_OPTION_NAME; priv->lines_default = DEFAULT_LINES_AMOUNT; - priv->disallowCaps = 0; + priv->read_only = FALSE; priv->fd.cleared_match = CLEARED_ALL; } @@ -653,7 +653,7 @@ gnc_plugin_page_register_create_widget (GncPluginPage *plugin_page) gnc_window = GNC_WINDOW(GNC_PLUGIN_PAGE(page)->window); gsr = gnc_split_reg_new(priv->ledger, gnc_window_get_gtk_window(gnc_window), - numRows, 0, priv->disallowCaps); + numRows, priv->read_only); priv->gsr = (GNCSplitReg *)gsr; gtk_widget_show (gsr); gtk_box_pack_start (GTK_BOX (priv->widget), gsr, TRUE, TRUE, 0); @@ -2570,7 +2570,7 @@ gnc_plugin_page_register_set_options (GncPluginPage *plugin_page, const char *lines_opt_section, const char *lines_opt_name, gint lines_default, - gint disallowCaps) + gboolean read_only) { GncPluginPageRegister *page; GncPluginPageRegisterPrivate *priv; @@ -2582,7 +2582,7 @@ gnc_plugin_page_register_set_options (GncPluginPage *plugin_page, priv->lines_opt_section = lines_opt_section; priv->lines_opt_name = lines_opt_name; priv->lines_default = lines_default; - priv->disallowCaps = disallowCaps; + priv->read_only = read_only; } GNCSplitReg * diff --git a/src/gnome/gnc-plugin-page-register.h b/src/gnome/gnc-plugin-page-register.h index 5bd6a9b1b4..0f21be3677 100644 --- a/src/gnome/gnc-plugin-page-register.h +++ b/src/gnome/gnc-plugin-page-register.h @@ -118,15 +118,14 @@ GncPluginPage *gnc_plugin_page_register_new_gl (void); * @param lines_default The number of lines to use if the specified * options cannot be found or has never been set. * - * @param disallowCaps Capabilities to disable on this register. - * These include "read only", "jump", "schedule", et. al. + * @param read_only True if the register should be read-only. */ void gnc_plugin_page_register_set_options (GncPluginPage *plugin_page, const char *lines_opt_page, const char *lines_opt_name, gint lines_default, - gint disallowCaps); + gboolean read_only); /** Get the GNCSplitReg data structure associated with this register page. diff --git a/src/gnome/gnc-split-reg.c b/src/gnome/gnc-split-reg.c index 4ebb277f5c..c8c34dbff2 100644 --- a/src/gnome/gnc-split-reg.c +++ b/src/gnome/gnc-split-reg.c @@ -58,28 +58,7 @@ #include #include "dialog-utils.h" -static QofLogModule log_module = GNC_MOD_SX; - -/** - * TODO list: - * - * X alpha-necessary - * X fill out gnc-split-reg.h interface - * X calendar/date-picker - * . beta-necessary - * X date-inclusion on jumping - * . pass in, use number-of-lines - * . title-renaming in read-only case. - * X size-allocation - * X default schedule/recur handling for from-SX items. - * X handle destruction/cleanup more cleanly - * X conditional creation - * X handle widget-visibility callbacks - * X fix regWindow{Simple,Ledger,Account} - * X fix jumping-to-split - * X fix window-raising - **/ - +// static QofLogModule log_module = GNC_MOD_SX; /***** PROTOTYPES ***************************************************/ void gnc_split_reg_raise( GNCSplitReg *gsr ); @@ -92,14 +71,9 @@ static void gnc_split_reg_determine_read_only( GNCSplitReg *gsr ); static GNCPlaceholderType gnc_split_reg_get_placeholder( GNCSplitReg *gsr ); static gncUIWidget gnc_split_reg_get_parent( GNCLedgerDisplay *ledger ); -static void gsr_create_menus( GNCSplitReg *gsr ); -static void gsr_setup_menu_widgets( GNCSplitReg *gsr, GladeXML *xml ); -static void gsr_create_toolbar( GNCSplitReg *gsr ); static void gsr_create_table( GNCSplitReg *gsr ); static void gsr_setup_table( GNCSplitReg *gsr ); static void gsr_setup_status_widgets( GNCSplitReg *gsr ); -static GtkWidget* gsr_create_popup_menu( GNCSplitReg *gsr ); - static void gsr_update_summary_label( GtkWidget *label, xaccGetBalanceFn getter, @@ -339,16 +313,14 @@ GtkWidget* gnc_split_reg_new( GNCLedgerDisplay *ld, GtkWindow *parent, gint numberOfLines, - gint createFlags, - gint disallowCaps ) + gboolean read_only ) { GNCSplitReg *gsrToRet; gsrToRet = g_object_new( gnc_split_reg_get_type(), NULL ); - gsrToRet->disallowedCaps = disallowCaps; gsrToRet->numRows = numberOfLines; - gsrToRet->createFlags = createFlags; + gsrToRet->read_only = read_only; gsrToRet->ledger = ld; gsrToRet->window = GTK_WIDGET(parent); @@ -364,24 +336,10 @@ gnc_split_reg_init( GNCSplitReg *gsr ) gsr->sort_type = BY_STANDARD; gsr->width = -1; gsr->height = -1; - gsr->disallowedCaps = 0; gsr->numRows = gnc_gconf_get_float(GCONF_GENERAL_REGISTER, KEY_NUMBER_OF_ROWS, NULL); gsr->read_only = FALSE; - /* IMPORTANT: If we set this to anything other than GTK_RESIZE_QUEUE, we - * enter into a very bad back-and-forth between the sheet and a containing - * GnomeDruid [in certain conditions and circumstances not detailed here], - * resulting in either a single iteration of the Druid resizing or infinite - * iterations of the Druid resizing without bound. Contact - * jsled@asynchronous.org for details. -- 2002.04.15 - */ - /* This function call causes several problems in gnome2 port. I do - * not see any problems with the code when it is removed. - * hampton@employees.org -- 2003-10-06 - */ - //gtk_container_set_resize_mode( GTK_CONTAINER(gsr), GTK_RESIZE_QUEUE ); - g_signal_connect( gsr, "destroy", G_CALLBACK (gnc_split_reg_destroy_cb), gsr ); } @@ -393,23 +351,10 @@ gnc_split_reg_init2( GNCSplitReg *gsr ) gnc_split_reg_determine_read_only( gsr ); - if ( gsr->createFlags & CREATE_MENUS ) { - gsr_create_menus( gsr ); - } - - if ( gsr->createFlags & CREATE_TOOLBAR ) { - gsr_create_toolbar( gsr ); - } - - if ( gsr->createFlags & CREATE_SUMMARYBAR ) { - gsr_create_summary_bar( gsr ); - } - gsr_setup_status_widgets( gsr ); /* ordering is important here... setup_status before create_table */ gsr_create_table( gsr ); gsr_setup_table( gsr ); - } static @@ -418,13 +363,6 @@ gsr_setup_table( GNCSplitReg *gsr ) { SplitRegister *sr; - if ( gsr->createFlags & CREATE_POPUP ) { - if ( !gsr->popup_menu ) { - gsr->popup_menu = gsr_create_popup_menu (gsr); - } - gnucash_register_attach_popup( gsr->reg, gsr->popup_menu, gsr ); - } - sr = gnc_ledger_display_get_split_register( gsr->ledger ); gnc_split_register_show_present_divider( sr, TRUE ); /* events should be sufficient to redraw this */ @@ -432,91 +370,6 @@ gsr_setup_table( GNCSplitReg *gsr ) gnc_split_reg_refresh_toolbar( gsr ); } - -static -void -gsr_create_menus( GNCSplitReg *gsr ) -{ - GladeXML *xml; - GtkWidget *mbar, *mi; - xml = gnc_glade_xml_new( "register.glade", "register_menubar" ); - glade_xml_signal_autoconnect_full( xml, - gnc_glade_autoconnect_full_func, - gsr ); - - mbar = glade_xml_get_widget( xml, "register_menubar" ); - gtk_widget_hide( mbar ); - - gsr->edit_menu = glade_xml_get_widget( xml, "menu_edit_menu" ); - g_object_ref( gsr->edit_menu ); - mi = glade_xml_get_widget( xml, "menu_edit" ); - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( mi ) ); - - gsr->view_menu = glade_xml_get_widget( xml, "menu_view_menu" ); - g_object_ref( gsr->view_menu ); - mi = glade_xml_get_widget( xml, "menu_view" ); - gtk_menu_item_remove_submenu( GTK_MENU_ITEM(mi) ); - - gsr->style_submenu = glade_xml_get_widget( xml, "menu_style_menu" ); - gsr->sort_submenu = glade_xml_get_widget( xml, "menu_sort_order_menu" ); - - gsr->action_menu = glade_xml_get_widget( xml, "menu_actions_menu" ); - g_object_ref( gsr->action_menu ); - mi = glade_xml_get_widget( xml, "menu_actions" ); - gtk_menu_item_remove_submenu( GTK_MENU_ITEM(mi) ); - - gsr->double_line_check = - glade_xml_get_widget (xml, "menu_style_double_line"); - gsr->split_menu_check = - glade_xml_get_widget (xml, "menu_splits"); - - gsr_setup_menu_widgets( gsr, xml ); - - /* we've ref'd the objects we need to. */ - gtk_widget_destroy( mbar ); -} - -static -void -gsr_create_toolbar( GNCSplitReg *gsr ) -{ -#if 0 - GladeXML *xml; - GtkWidget *widget; - SCM id; - - xml = gnc_glade_xml_new( "register.glade", "toolbar" ); - glade_xml_signal_autoconnect_full( xml, - gnc_glade_autoconnect_full_func, - gsr ); - - gsr->toolbar = glade_xml_get_widget( xml, "toolbar" ); - gsr->split_button = glade_xml_get_widget( xml, "toolbar_split" ); - - if ( gsr->disallowedCaps & CAP_DELETE ) { - widget = glade_xml_get_widget( xml, "toolbar_delete" ); - gtk_widget_set_sensitive( widget, FALSE ); - } - - if ( gsr->disallowedCaps & CAP_JUMP ) { - widget = glade_xml_get_widget( xml, "toolbar_jump" ); - gtk_widget_set_sensitive( widget, FALSE ); - } - - if ( gsr->disallowedCaps & CAP_SCHEDULE ) { - widget = glade_xml_get_widget( xml, "toolbar_schedule" ); - gtk_widget_set_sensitive( widget, FALSE ); - } - - if (gsr->read_only) { - widget = glade_xml_get_widget (xml, "toolbar_delete"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "toolbar_duplicate"); - gtk_widget_set_sensitive(widget, FALSE); - } -#endif -} - static void gsr_create_table( GNCSplitReg *gsr ) @@ -553,27 +406,12 @@ gsr_setup_status_widgets( GNCSplitReg *gsr ) { SplitRegister *sr; gboolean use_double_line; - GtkCheckMenuItem *check; sr = gnc_ledger_display_get_split_register( gsr->ledger ); use_double_line = gnc_ledger_display_default_double_line( gsr->ledger ); /* be sure to initialize the gui elements associated with the cursor */ gnc_split_register_config( sr, sr->type, sr->style, use_double_line ); - - if ( ! (gsr->createFlags & CREATE_MENUS) ) { - return; - } - - check = GTK_CHECK_MENU_ITEM( gsr->double_line_check ); - - g_signal_handlers_block_by_func( check, - gnc_split_reg_double_line_cb, gsr ); - - gtk_check_menu_item_set_active(check, use_double_line); - - g_signal_handlers_unblock_by_func( check, - gnc_split_reg_double_line_cb, gsr ); } void @@ -1998,136 +1836,6 @@ gsr_create_summary_bar( GNCSplitReg *gsr ) return gsr->summarybar; } -static -void -gsr_setup_menu_widgets(GNCSplitReg *gsr, GladeXML *xml) -{ - /* Make sure the right style radio item is active */ - SplitRegister *reg; - GtkWidget *widget; - char *widget_name; - - if ( gsr->disallowedCaps & CAP_DELETE ) { - widget = glade_xml_get_widget( xml, "menu_delete" ); - gtk_widget_set_sensitive( widget, FALSE ); - } - - if ( gsr->disallowedCaps & CAP_JUMP ) { - widget = glade_xml_get_widget( xml, "menu_jump" ); - gtk_widget_set_sensitive( widget, FALSE ); - } - - if ( gsr->disallowedCaps & CAP_SCHEDULE ) { - widget = glade_xml_get_widget( xml, "menu_schedule" ); - gtk_widget_set_sensitive( widget, FALSE ); - } - - - if (gsr->read_only) { - widget = glade_xml_get_widget (xml, "menu_paste"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "menu_cut_trans"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "menu_paste_trans"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "menu_delete"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "menu_duplicate"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "menu_reinitialize"); - gtk_widget_set_sensitive(widget, FALSE); - widget = glade_xml_get_widget (xml, "menu_exchange"); - gtk_widget_set_sensitive(widget, FALSE); - } - - reg = gnc_ledger_display_get_split_register( gsr->ledger ); - - switch (reg->style) - { - default: - case REG_STYLE_LEDGER: - widget_name = "menu_style_basic_ledger"; - break; - case REG_STYLE_AUTO_LEDGER: - widget_name = "menu_style_auto_split_ledger"; - break; - case REG_STYLE_JOURNAL: - widget_name = "menu_style_transaction_journal"; - break; - } - - /* registers with more than one account can only use journal mode */ - if (reg->type >= NUM_SINGLE_REGISTER_TYPES) - { - widget = glade_xml_get_widget(xml, "menu_style_basic_ledger"); - gtk_widget_set_sensitive (widget, FALSE); - - widget = glade_xml_get_widget(xml, "menu_style_auto_split_ledger"); - gtk_widget_set_sensitive (widget, FALSE); - } - - widget = glade_xml_get_widget(xml, widget_name); - g_signal_handlers_block_matched(widget, G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, gsr); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE); - g_signal_handlers_unblock_matched(widget, G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, gsr); -} - -static -GtkWidget * -gsr_create_popup_menu( GNCSplitReg *gsr ) -{ - GtkWidget *popup, *menuitem; - GladeXML *xml; - - xml = gnc_glade_xml_new( "register.glade", "register_popup" ); - popup = glade_xml_get_widget( xml, "register_popup" ); - glade_xml_signal_autoconnect_full( xml, - gnc_glade_autoconnect_full_func, - gsr ); - - /* Glade insists on making this a tearoff menu. */ - if (gnc_gconf_menus_have_tearoff()) { - GtkMenuShell *ms = GTK_MENU_SHELL(popup); - GtkWidget *tearoff; - - tearoff = g_list_nth_data(ms->children, 0); - ms->children = g_list_remove(ms->children, tearoff); - gtk_widget_destroy(tearoff); - } - - gsr->split_popup_check = glade_xml_get_widget( xml, "popup_splits" ); - - if ( gsr->disallowedCaps & CAP_DELETE ) { - menuitem = glade_xml_get_widget( xml, "sr_popup_delete" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - } - - if ( gsr->disallowedCaps & CAP_JUMP ) { - menuitem = glade_xml_get_widget( xml, "sr_popup_jump" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - } - - if ( gsr->disallowedCaps & CAP_SCHEDULE ) { - menuitem = glade_xml_get_widget( xml, "sr_popup_schedule" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - } - - if (gsr->read_only) { - menuitem = glade_xml_get_widget( xml, "sr_popup_delete" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - menuitem = glade_xml_get_widget( xml, "sr_popup_duplicate" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - menuitem = glade_xml_get_widget( xml, "sr_popup_reinitialize" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - menuitem = glade_xml_get_widget( xml, "sr_popup_exchange" ); - gtk_widget_set_sensitive( menuitem, FALSE ); - } - - return popup; -} - /** * Opens up a register window for a group of Accounts. * @param gsr the register window instance @@ -2216,15 +1924,7 @@ gnc_split_reg_determine_read_only( GNCSplitReg *gsr ) dialog_args *args = g_malloc(sizeof(dialog_args)); SplitRegister *reg; - gsr->read_only = FALSE; - - if ( gsr->disallowedCaps & CAP_READ_ONLY ) { - - /* FIXME: this is not ideal, as whatever window-title solution we come up - * with should be used in this case as well. */ - gsr->read_only = TRUE; - - } else { + if ( !gsr->read_only ) { switch (gnc_split_reg_get_placeholder(gsr)) { case PLACEHOLDER_NONE: @@ -2315,48 +2015,6 @@ gnc_split_reg_set_sort_type( GNCSplitReg *gsr, SortType t ) gnc_split_reg_sort( gsr, t ); } -GtkWidget* -gnc_split_reg_get_edit_menu( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->edit_menu; -} - -GtkWidget* -gnc_split_reg_get_view_menu( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->view_menu; -} - -GtkWidget* -gnc_split_reg_get_style_menu( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->style_submenu; -} - -GtkWidget* -gnc_split_reg_get_sort_menu( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->sort_submenu; -} - -GtkWidget* -gnc_split_reg_get_action_menu( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->action_menu; -} - -GtkWidget* -gnc_split_reg_get_toolbar( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->toolbar; -} - GtkWidget* gnc_split_reg_get_summarybar( GNCSplitReg *gsr ) { @@ -2364,53 +2022,6 @@ gnc_split_reg_get_summarybar( GNCSplitReg *gsr ) return gsr->summarybar; } -GtkWidget* -gnc_split_reg_get_popup( GNCSplitReg *gsr ) -{ - if ( !gsr ) return NULL; - return gsr->popup_menu; -} - -void -gnc_split_reg_set_split_state( GNCSplitReg *gsr, gboolean split ) -{ - g_assert( gsr ); - /* FIXME */ - PERR( "Unimplemented" ); -} - -void -gnc_split_reg_set_double_line( GNCSplitReg *gsr, gboolean doubleLine ) -{ - g_assert( gsr ); - /* FIXME */ - PERR( "unimplemented" ); -} - -void -gnc_split_reg_use_extended_popup( GNCSplitReg *gsr ) -{ - GtkWidget *popup, *tmpMenu, *tmpMI; - - g_assert( gsr ); - - popup = gsr->popup_menu; - - gtk_menu_shell_append( GTK_MENU_SHELL(popup), gtk_menu_item_new() ); - - tmpMenu = gnc_split_reg_get_edit_menu( gsr ); - tmpMI = gtk_menu_item_new_with_label( N_("Edit") ); - gtk_menu_item_set_submenu( GTK_MENU_ITEM(tmpMI), tmpMenu ); - gtk_menu_shell_append( GTK_MENU_SHELL(popup), tmpMI ); - - tmpMenu = gnc_split_reg_get_view_menu( gsr ); - tmpMI = gtk_menu_item_new_with_label( N_("View") ); - gtk_menu_item_set_submenu( GTK_MENU_ITEM(tmpMI), tmpMenu ); - gtk_menu_shell_append( GTK_MENU_SHELL(popup), tmpMI ); - - gtk_widget_show_all( popup ); -} - gboolean gnc_split_reg_get_read_only( GNCSplitReg *gsr ) { diff --git a/src/gnome/gnc-split-reg.h b/src/gnome/gnc-split-reg.h index 92b5597664..51bfef25b0 100644 --- a/src/gnome/gnc-split-reg.h +++ b/src/gnome/gnc-split-reg.h @@ -5,7 +5,7 @@ * Copyright (C) 1998 Rob Browning * * Copyright (C) 1999-2000 Dave Peticolas * * Copyright (C) 2001 Gnumatic, Inc. * - * Copyright (C) 2002 Joshua Sled * + * Copyright (C) 2002,2006 Joshua Sled * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -26,44 +26,6 @@ \********************************************************************/ -/** - * Another take at the gnc-reg-widget. - * 2002.10.27 -- jsled - * - * To be explained: - * . inserting controls - * . menus, toolbar - * . gtk_{menu,toolbar}_{append,prepend,insert} is good; callers need to know indexes - * . gint gnc_reg_widget_get_toolbar_index( GNCRegWidget, GNC_REG_WIDGET_ITEM ) - * . gint gnc_reg_widget_get_menu_index ( GNCRegWidget, GNC_REG_WIDGET_ITEM ) - * . gint gnc_reg_widget_get_popup_index ( GNCRegWidget, GNC_REG_WIDGET_ITEM ) - * - * . created status-display widgets [checkboxes in menus, &c.] - * . i/f to changing? - * . gnc_reg_widget_set_split_state( GNCRegWidget, gboolean split ) - * . gnc_reg_widget_set_double_line( GNCRegWidget, gboolean doubleLine ) - * - * Questionable Features: - * . File - * . new account - * . print - * . print check - * . save (as)... - * . close - * . exit - * . view - * . date range - * . edit - * . find - * . actions - * . transfer - * . reconcile - * . stock split - * . check and repair - * . reports - * . tools - **/ - #ifndef GNC_SPLIT_REG_H #define GNC_SPLIT_REG_H @@ -120,8 +82,6 @@ struct _GNCSplitReg { GnucashRegister *reg; gint numRows; - gint createFlags; - gint disallowedCaps; guint sort_type; @@ -196,23 +156,6 @@ DEFINE_ENUM(SortType, ENUM_LIST_SORTTYPE) AS_STRING_DEC(SortType, ENUM_LIST_SORTTYPE) FROM_STRING_DEC(SortType, ENUM_LIST_SORTTYPE) -/** - * Flags for creation-time selection of what subwidgets are to be created. - **/ -#define CREATE_TOOLBAR (1 << 0) -#define CREATE_MENUS (1 << 1) -#define CREATE_POPUP (1 << 2) -#define CREATE_SUMMARYBAR (1 << 3) - -/** - * Flags for various capabilities of the GNCSplitReg; these are used to - * disable specific functionality. - **/ -#define CAP_READ_ONLY (1 << 0) /**< A read-only register. **/ -#define CAP_DELETE (1 << 1) /**< Deleting items. **/ -#define CAP_JUMP (1 << 2) /**< Jumping to the related transaction. **/ -#define CAP_SCHEDULE (1 << 3) /**< Scheduling transactions. **/ - /** * GTK-related; gets an identifier for the class of GNCSplitRegs. **/ @@ -223,15 +166,12 @@ guint gnc_split_reg_get_type(void); * @param ld The GNCLedgerDisplay to use for display. * @param parent The containing window. * @param numberOfLines The initial number of lines for the register. - * @param createFlags A set of flags for the sub-widgets to create. - * @param disallowCaps A set of flags for capabilities which should be - * disallowed. + * @param read_only If the contained register should be setup read-only. **/ GtkWidget* gnc_split_reg_new( GNCLedgerDisplay *ld, GtkWindow *parent, gint numberOfLines, - gint createFlags, - gint disallowCaps ); + gboolean read_only ); /** * Returns the GnucashRegister in effect for this GNCSplitReg. @@ -254,22 +194,10 @@ void gnc_split_reg_set_sort_type( GNCSplitReg *gsr, SortType t ); **/ void gnc_split_reg_change_style (GNCSplitReg *gsr, SplitRegisterStyle style); -/** - * Retreives the various menus created by the GNCSplitReg. Callers may want - * to put these in a more traditional menu bar, for instance. - **/ -GtkWidget *gnc_split_reg_get_edit_menu ( GNCSplitReg *gsr ); -GtkWidget *gnc_split_reg_get_view_menu ( GNCSplitReg *gsr ); -GtkWidget *gnc_split_reg_get_style_menu ( GNCSplitReg *gsr ); -GtkWidget *gnc_split_reg_get_sort_menu ( GNCSplitReg *gsr ); -GtkWidget *gnc_split_reg_get_action_menu ( GNCSplitReg *gsr ); - /** * Can return NULL if the indicated subwidget was not created. **/ -GtkWidget *gnc_split_reg_get_toolbar ( GNCSplitReg *gsr ); GtkWidget *gnc_split_reg_get_summarybar( GNCSplitReg *gsr ); -GtkWidget *gnc_split_reg_get_popup ( GNCSplitReg *gsr ); /** * These will manipulate the in-GNCSplitReg state-reflecting widgets as @@ -278,17 +206,6 @@ GtkWidget *gnc_split_reg_get_popup ( GNCSplitReg *gsr ); void gnc_split_reg_set_split_state( GNCSplitReg *gsr, gboolean split ); void gnc_split_reg_set_double_line( GNCSplitReg *gsr, gboolean doubleLine ); -/** - * Convenience function for callers. Sets up the popup menu to contain the - * GNCSplitReg-provided menuswhat would normally be the menu-bar. Callers - * may not have a menu bar themselves, but wish to provide full - * functionality via the popup menu. - * - * The menu-bar items will be at the bottom of the popup menu, seperated. - * The menu-bar items will not be created if they were not originally created. - **/ -void gnc_split_reg_use_extended_popup( GNCSplitReg *gsr ); - /** * Check if its OK to close this register window. Gives the register * a chance to abort the close if there are roblems, e.g. an open