Ejemplo n.º 1
0
/**
 * Set sensitiveness of all menu items that work on the selected scheduled.

 * \param sensitive	Sensitiveness (FALSE for unsensitive, TRUE for
 *			sensitive).
 *
 * \return		FALSE
 */
gboolean gsb_menu_set_menus_select_scheduled_sensitive ( gboolean sensitive )
{
    devel_debug ( sensitive ? "item sensitive" : "item unsensitive" );

    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/EditTransaction", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/RemoveTransaction", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/CloneTransaction", sensitive );

    return FALSE;
}
Ejemplo n.º 2
0
/**
 * Initialise la barre de menus en fonction de la présence ou non d'un fichier de comptes
 *
 * \param sensitif
 *
 * \return
 * */
void gsb_menu_set_menus_with_file_sensitive ( gboolean sensitive )
{
    gchar * items[] = {
        "/menubar/FileMenu/Save",
        "/menubar/FileMenu/SaveAs",
        "/menubar/FileMenu/DebugFile",
        "/menubar/FileMenu/Obfuscate",
        "/menubar/FileMenu/DebugMode",
        "/menubar/FileMenu/ExportFile",
        "/menubar/FileMenu/CreateArchive",
        "/menubar/FileMenu/ExportArchive",
        "/menubar/FileMenu/Close",
        "/menubar/EditMenu/NewTransaction",
        "/menubar/EditMenu/RemoveTransaction",
        "/menubar/EditMenu/TemplateTransaction",
        "/menubar/EditMenu/CloneTransaction",
        "/menubar/EditMenu/EditTransaction",
        "/menubar/EditMenu/ConvertToScheduled",
        "/menubar/EditMenu/MoveToAnotherAccount",
        "/menubar/EditMenu/Preferences",
        "/menubar/EditMenu/RemoveAccount",
        "/menubar/EditMenu/NewAccount",
        "/menubar/ViewMenu/ShowTransactionForm",
        "/menubar/ViewMenu/ShowReconciled",
        "/menubar/ViewMenu/ShowArchived",
        "/menubar/ViewMenu/ShowClosed",
        "/menubar/ViewMenu/ShowOneLine",
        "/menubar/ViewMenu/ShowTwoLines",
        "/menubar/ViewMenu/ShowThreeLines",
        "/menubar/ViewMenu/ShowFourLines",
        "/menubar/ViewMenu/InitwidthCol",
        NULL
    };
    gchar ** tmp = items;

    devel_debug_int (sensitive);

    while ( *tmp )
    {
        gsb_gui_sensitive_menu_item ( *tmp, sensitive );
        tmp++;
    }

    /* As this function may only be called when a new account is
     * created and the like, it is unlikely that we want to sensitive
     * transaction-related menus. */
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/NewTransaction", FALSE );
    gsb_menu_set_menus_select_transaction_sensitive ( FALSE );
}
Ejemplo n.º 3
0
/**
 * set or unset the modified flag (run structure)
 * and sensitive or not the menu to save the file
 *
 * \param modif TRUE to set the modified flag, FALSE to unset
 *
 * \return
 */
void gsb_file_set_modified ( gboolean modified )
{
/*     devel_debug_int (modified);  */

    /* If no file is loaded, do not change menu items. */
    if ( ! gsb_data_account_get_accounts_amount () )
        return;

    if ( modified )
    {
        if ( ! run.file_modification )
        {
            run.file_modification = time ( NULL );
            gsb_gui_sensitive_menu_item ( "/menubar/FileMenu/Save", TRUE );
        }
    }
    else
    {
        run.file_modification = 0;
        gsb_gui_sensitive_menu_item ( "/menubar/FileMenu/Save", FALSE );
    }
}
Ejemplo n.º 4
0
/**
 * Set sensitiveness of all menu items that work on the selected transaction.

 * \param sensitive	Sensitiveness (FALSE for unsensitive, TRUE for
 *			sensitive).
 *
 * \return		FALSE
 */
gboolean gsb_menu_set_menus_select_transaction_sensitive ( gboolean sensitive )
{
    devel_debug ( sensitive ? "item sensitive" : "item unsensitive" );

    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/EditTransaction", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/RemoveTransaction", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/TemplateTransaction", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/CloneTransaction", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/ConvertToScheduled", sensitive );
    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/MoveToAnotherAccount", sensitive );

    return FALSE;
}
Ejemplo n.º 5
0
/**
 * Initialise la barre de menus si un compte est sélectionné
 *
 * \param sensitif
 *
 * \return
 * */
void gsb_menu_set_menus_view_account_sensitive ( gboolean sensitive )
{
    gchar * items[] = {
        "/menubar/ViewMenu/ShowTransactionForm",
        "/menubar/ViewMenu/ShowReconciled",
        "/menubar/ViewMenu/ShowArchived",
        "/menubar/ViewMenu/ShowOneLine",
        "/menubar/ViewMenu/ShowTwoLines",
        "/menubar/ViewMenu/ShowThreeLines",
        "/menubar/ViewMenu/ShowFourLines",
        "/menubar/ViewMenu/InitwidthCol",
        NULL
    };
    gchar **tmp = items;

    devel_debug_int (sensitive);

    while ( *tmp )
    {
        gsb_gui_sensitive_menu_item ( *tmp, sensitive );
        tmp++;
    }
}
Ejemplo n.º 6
0
GtkWidget *init_menus ( GtkWidget *vbox )
{
    GtkWidget *menubar;
    GtkActionGroup *actions;

    /* remind of GtkActionEntry : name, stock_id, label, accelerator, tooltip, callback */
    GtkActionEntry entries[] =
    {
        /* File menu */
        {"FileMenuAction", NULL, _("_File"), NULL, NULL, NULL},
	#ifdef GTKOSXAPPLICATION
        { "NewAction", GTK_STOCK_NEW, _("_New account file..."), "<Meta>N", NULL,
         G_CALLBACK ( gsb_file_new ) },
        {"OpenAction",  GTK_STOCK_OPEN, _("_Open..."), "<Meta>O", NULL,
         G_CALLBACK ( gsb_file_open_menu ) },
        {"RecentFilesAction", NULL, _("_Recently opened files"), NULL, NULL, NULL },
        {"SaveAction", GTK_STOCK_SAVE, _("_Save"), "<Meta>S", NULL,
         G_CALLBACK ( gsb_file_save ) },
	#else
        { "NewAction", GTK_STOCK_NEW, _("_New account file..."), NULL, NULL,
         G_CALLBACK ( gsb_file_new ) },
        {"OpenAction",  GTK_STOCK_OPEN, _("_Open..."), NULL, NULL,
         G_CALLBACK ( gsb_file_open_menu ) },
        {"RecentFilesAction", NULL, _("_Recently opened files"), NULL, NULL, NULL },
        {"SaveAction", GTK_STOCK_SAVE, _("_Save"), NULL, NULL,
         G_CALLBACK ( gsb_file_save ) },
	#endif
        {"SaveAsAction", GTK_STOCK_SAVE_AS,	_("_Save as..."), NULL, NULL,
         G_CALLBACK ( gsb_file_save_as ) },
        {"ImportFileAction", GTK_STOCK_CONVERT,	_("_Import file..."), NULL, NULL,
         G_CALLBACK ( importer_fichier ) },
        { "ExportFileAction", GTK_STOCK_CONVERT, _("_Export accounts as QIF/CSV file..."), NULL, NULL,
         G_CALLBACK ( export_accounts ) },
        {"CreateArchiveAction", GTK_STOCK_CLEAR, _("Archive transactions..."), NULL, NULL,
         G_CALLBACK ( gsb_assistant_archive_run_by_menu ) },
        {"ExportArchiveAction",	GTK_STOCK_HARDDISK,	_("_Export an archive as GSB/QIF/CSV file..."), NULL, NULL,
         G_CALLBACK ( gsb_assistant_archive_export_run ) },
        {"DebugFileAction", GTK_STOCK_FIND, _("_Debug account file..."), "", NULL,
         G_CALLBACK ( gsb_debug ) },
        {"ObfuscateAction", GTK_STOCK_FIND, _("_Obfuscate account file..."), "", NULL,
         G_CALLBACK ( file_obfuscate_run ) },
        {"ObfuscateQifAction", GTK_STOCK_FIND, _("_Obfuscate QIF file..."), "", NULL,
         G_CALLBACK ( file_obfuscate_qif_run ) },
	#ifdef GTKOSXAPPLICATION
        {"CloseAction", GTK_STOCK_CLOSE, _("_Close"), "<Meta>W", NULL,
         G_CALLBACK ( gsb_file_close ) },
	#else
        {"CloseAction", GTK_STOCK_CLOSE, _("_Close"), NULL, NULL,
         G_CALLBACK ( gsb_file_close ) },
	#endif
        {"QuitAction", GTK_STOCK_QUIT, _("_Quit"), NULL, NULL,
         G_CALLBACK ( gsb_main_grisbi_close ) },

        /* Editmenu */
        {"EditMenuAction", NULL, _("_Edit"), NULL, NULL, NULL },
        {"EditTransactionAction", GTK_STOCK_EDIT, _("_Edit transaction"), "", NULL,
         G_CALLBACK ( gsb_transactions_list_edit_current_transaction ) },
        {"NewTransactionAction", GTK_STOCK_NEW, _("_New transaction"), "", NULL,
         G_CALLBACK ( new_transaction ) },
        {"RemoveTransactionAction", GTK_STOCK_DELETE, _("_Remove transaction"), "", NULL,
         G_CALLBACK ( remove_transaction ) },
        {"TemplateTransactionAction", GTK_STOCK_COPY, _("Use selected transaction as a template"), "", NULL,
         G_CALLBACK ( gsb_transactions_list_clone_template ) },
        {"CloneTransactionAction", GTK_STOCK_COPY, _("_Clone transaction"), "", NULL,
         G_CALLBACK ( clone_selected_transaction ) },
        {"ConvertToScheduledAction", GTK_STOCK_CONVERT, _("Convert to _scheduled transaction"), NULL, NULL,
         G_CALLBACK ( schedule_selected_transaction ) },
        {"MoveToAnotherAccountAction", NULL, _("_Move transaction to another account"), NULL, NULL, NULL },
        {"NewAccountAction", GTK_STOCK_NEW, _("_New account"), "", NULL,
         G_CALLBACK ( gsb_assistant_account_run ) },
        {"RemoveAccountAction", GTK_STOCK_DELETE, _("_Remove current account"), "", NULL,
         G_CALLBACK ( gsb_account_delete ) },
        {"PrefsAction", GTK_STOCK_PREFERENCES, _("_Preferences"), NULL, NULL,
         G_CALLBACK ( preferences ) },

        /* View menu */
        {"ViewMenuAction", NULL, _("_View"), NULL, NULL, NULL },
        {"InitwidthColAction", NULL, _("Reset the column width"), NULL, NULL,
         G_CALLBACK ( gsb_menu_reinit_largeur_col_menu ) },

        /* Help menu */
        {"HelpMenuAction", NULL, _("_Help"), NULL, NULL, NULL },
	#ifdef GTKOSXAPPLICATION
        {"ManualAction", GTK_STOCK_HELP, _("_Manual"), "<Meta>H", NULL,
         G_CALLBACK ( help_manual ) },
	#else
        {"ManualAction", GTK_STOCK_HELP, _("_Manual"), NULL, NULL,
         G_CALLBACK ( help_manual ) },
	#endif
        {"QuickStartAction", NULL, _("_Quick start"), NULL, NULL,
         G_CALLBACK ( help_quick_start ) },
        {"TranslationAction", NULL, _("_Translation"), NULL, NULL,
         G_CALLBACK ( help_translation ) },
        {"AboutAction", GTK_STOCK_ABOUT, _("_About Grisbi..."), NULL, NULL,
         G_CALLBACK ( a_propos ) },
        {"GrisbiWebsiteAction", NULL, _("_Grisbi website"), NULL, NULL,
         G_CALLBACK ( help_website ) },
        {"ReportBugAction", NULL, _("_Report a bug"), NULL, NULL,
         G_CALLBACK ( help_bugreport ) },
        {"TipAction", GTK_STOCK_DIALOG_INFO, _("_Tip of the day"), NULL, NULL,
         G_CALLBACK ( force_display_tip ) },
    };

    GtkRadioActionEntry radio_entries[] =
    {
        /* Name, StockID, Label, Accelerator, Tooltip, Value */
        {"ShowOneLineAction", NULL, _("Show _one line per transaction"), NULL, NULL,
         ONE_LINE_PER_TRANSACTION },
        {"ShowTwoLinesAction", NULL, _("Show _two lines per transaction"), NULL, NULL,
         TWO_LINES_PER_TRANSACTION },
        {"ShowThreeLinesAction", NULL, _("Show _three lines per transaction"), NULL, NULL,
         THREE_LINES_PER_TRANSACTION },
        {"ShowFourLinesAction", NULL, _("Show _four lines per transaction"), NULL, NULL,
         FOUR_LINES_PER_TRANSACTION },
    };

    GtkToggleActionEntry toggle_entries[] =
    {
        {"DebugModeAction", NULL, _("Debug mode"), NULL, NULL,
         G_CALLBACK ( gsb_debug_start_log ), etat.debug_mode },
        {"ShowTransactionFormAction", NULL, _("Show transaction _form"), NULL, NULL,
         G_CALLBACK ( gsb_gui_toggle_show_form ), etat.formulaire_toujours_affiche },
#ifdef GTKOSXAPPLICATION
        {"ShowReconciledAction", NULL, _("Show _reconciled"), "<Meta>R", NULL,
         G_CALLBACK ( gsb_gui_toggle_show_reconciled ), 0 },
        {"ShowArchivedAction", NULL, _("Show _lines archives"), "<Meta>L", NULL,
         G_CALLBACK ( gsb_gui_toggle_show_archived ), 0 },
#else
        {"ShowReconciledAction", NULL, _("Show _reconciled"), "<Alt>R", NULL,
         G_CALLBACK ( gsb_gui_toggle_show_reconciled ), 0 },
        {"ShowArchivedAction", NULL, _("Show _lines archives"), "<Alt>L", NULL,
         G_CALLBACK ( gsb_gui_toggle_show_archived ), 0 },
#endif
        {"ShowClosedAction", NULL, _("Show _closed accounts"), NULL, NULL,
         G_CALLBACK ( gsb_gui_toggle_show_closed_accounts ), etat.show_closed_accounts } 
    };

    ui_manager = gtk_ui_manager_new ();

    actions = gtk_action_group_new ( "Actions" );

    gtk_action_group_add_actions (actions,
                        entries,
                        G_N_ELEMENTS ( entries ),
                        (gpointer) run.window );

    gtk_action_group_add_radio_actions ( actions,
                        radio_entries, 
                        G_N_ELEMENTS ( radio_entries ), 
                        -1,
                        G_CALLBACK ( gsb_gui_toggle_line_view_mode ), 
                        NULL );

    gtk_action_group_add_toggle_actions ( actions,
                        toggle_entries, 
                        G_N_ELEMENTS ( toggle_entries ), 
                        NULL );

    gtk_ui_manager_insert_action_group ( ui_manager, actions, 0 );
    merge_id = gtk_ui_manager_add_ui_from_string ( ui_manager,
                        ui_manager_buffer, -1, NULL );

#ifndef GTKOSXAPPLICATION
    gtk_window_add_accel_group ( GTK_WINDOW ( run.window ),
                        gtk_ui_manager_get_accel_group ( ui_manager ) );
#endif /* GTKOSXAPPLICATION */

    menubar = gtk_ui_manager_get_widget ( ui_manager, "/menubar" );
    gtk_box_pack_start ( GTK_BOX ( vbox ),  menubar, FALSE, TRUE, 0 );

    gsb_gui_sensitive_menu_item ( "/menubar/EditMenu/NewTransaction", FALSE );
    gsb_menu_transaction_operations_set_sensitive ( FALSE );

    return menubar;
}