Пример #1
0
void gsb_dirs_init ( void )
{
#ifdef G_OS_WIN32
    {
        gchar *dir;

        dir = g_win32_get_package_installation_directory_of_module ( NULL );

        categories_dir = g_build_filename ( dir, "share/grisbi/categories", NULL );
        locale_dir = g_strconcat ( dir, "/share/locale", NULL );
        pixmaps_dir = g_strconcat ( dir, "/share/pixmaps/grisbi", NULL );
        plugins_dir = g_strconcat ( dir, "/lib/grisbi", NULL );
        ui_dir = g_strconcat ( dir, "/share/grisbi/ui", NULL );

        g_free ( dir );

        user_config_dir = g_build_filename ( g_get_user_config_dir (), "grisbi", NULL);
        user_data_dir = g_build_filename ( g_get_user_data_dir (), "grisbi", NULL);
        user_default_dir = g_strdup ( win32_get_my_documents_folder_path () );
    }
#else
#ifdef GTKOSXAPPLICATION
    if ( quartz_application_get_bundle_id ( ) )
    {
        gchar *res_path;

        res_path = quartz_application_get_resource_path ();
        categories_dir = g_build_filename ( res_path, "share/grisbi/categories", NULL );
        locale_dir = g_strconcat (res_path, "/share/locale", NULL );
        pixmaps_dir = g_strconcat (res_path, "/share/pixmaps/grisbi", NULL );
        plugins_dir = g_strconcat (res_path, "/lib/grisbi", NULL );
        ui_dir = g_strconcat (res_path, "/share/grisbi/ui", NULL );

        g_free ( res_path );

        user_config_dir = g_build_filename ( g_get_home_dir (),
                        "Library/Application Support/Grisbi/config", NULL );
        user_data_dir = g_build_filename ( g_get_home_dir (),
                        "Library/Application Support/Grisbi/data", NULL );
        user_default_dir = g_strdup ( g_get_home_dir() );

    }
#else
    {
        categories_dir = g_build_filename ( DATA_PATH, "categories", NULL );
        locale_dir = g_strdup ( LOCALEDIR );
        pixmaps_dir = g_strdup ( PIXMAPS_DIR );
        plugins_dir = g_strdup ( PLUGINS_DIR );
        ui_dir = g_strdup ( UI_DIR );

        user_config_dir = g_build_filename ( g_get_user_config_dir (), "grisbi", NULL);
        user_data_dir = g_build_filename ( g_get_user_data_dir (), "grisbi", NULL);
        user_default_dir = g_strdup ( g_get_home_dir() );
    }
#endif /* GTKOSXAPPLICATION */
#endif

    accelerator_filename = g_build_filename ( user_config_dir, "grisbi-accels", NULL );
}
Пример #2
0
void gsb_dirs_init ( void )
{
#ifdef GTKOSXAPPLICATION
    if ( quartz_application_get_bundle_id ( ) )
    {
        gchar *res_path;

        res_path = quartz_application_get_resource_path ();
        categories_dir = g_build_filename ( res_path, "share/grisbi/categories", NULL );
        locale_dir = g_strconcat (res_path, "/share/locale", NULL );
        pixmaps_dir = g_strconcat (res_path, "/share/pixmaps/grisbi", NULL );
        plugins_dir = g_strconcat (res_path, "/lib/grisbi", NULL );
        ui_dir = g_strconcat (res_path, "/share/grisbi/ui", NULL );

        g_free ( res_path );
    }
    else
#endif
    {
        categories_dir = g_build_filename ( DATA_PATH, "categories", NULL );
        locale_dir = g_strdup ( LOCALEDIR );
        pixmaps_dir = g_strdup ( PIXMAPS_DIR );
        plugins_dir = g_strdup ( PLUGINS_DIR );
        ui_dir = g_strdup ( UI_DIR );
    }

    /*
     * FIXME: code from gsb_file_config.h
     */
#if IS_DEVELOPMENT_VERSION == 1
    _C_GRISBIRC = g_strconcat ( PACKAGE, "dev.conf", NULL);
#else
    _C_GRISBIRC = g_strconcat ( PACKAGE, ".conf", NULL);
#endif

    _C_OLD_GRISBIRC = g_strconcat ( ".", PACKAGE, "rc", NULL);

#ifndef _WIN32

#ifdef OS_OSX
    _C_PATH_CONFIG = g_strconcat (g_get_home_dir ( ), G_DIR_SEPARATOR_S,
                        "Library/Application Support/Grisbi/config", NULL);
    _C_PATH_DATA_FILES = g_strconcat (g_get_home_dir ( ), G_DIR_SEPARATOR_S,
                        "Library/Application Support/Grisbi/data", NULL);
#else /* OS_OSX */
    _C_PATH_CONFIG = g_strconcat (g_get_user_config_dir ( ), G_DIR_SEPARATOR_S,
                        "grisbi", NULL);
    _C_PATH_DATA_FILES = g_strconcat (g_get_user_data_dir ( ), G_DIR_SEPARATOR_S,
                        "grisbi", NULL);
#endif /* OS_OSX */

#else /* _WIN32 */

/* Some old Windows version have difficulties with dat starting file names */
    _C_PATH_CONFIG = win32_get_grisbirc_folder_path( );
    _C_PATH_DATA_FILES = g_strdup ( g_get_home_dir ( ) );

#endif /* _WIN32 */

    _C_PATH_CONFIG_ACCELS = g_strconcat ( _C_PATH_CONFIG, G_DIR_SEPARATOR_S,
                        "grisbi-accels", NULL );

    /*
     * FIXME: code from utils_files.c
     */
#ifndef _WIN32
    _my_get_XDG_grisbirc_dir = g_strdup ( _C_PATH_CONFIG );
    _my_get_XDG_grisbi_data_dir = g_strdup ( _C_PATH_DATA_FILES );
    _my_get_grisbirc_dir = g_strdup ( g_get_home_dir () );
    _my_get_gsb_file_default_dir = g_strdup ( g_get_home_dir() );
#else
    _my_get_XDG_grisbirc_dir = g_strdup ( win32_get_grisbirc_folder_path() );
    _my_get_XDG_grisbi_data_dir = g_strdup ( g_get_home_dir () );
    _my_get_grisbirc_dir = g_strdup ( win32_get_grisbirc_folder_path() );
    _my_get_gsb_file_default_dir = g_strdup ( win32_get_my_documents_folder_path() );
#endif
}
Пример #3
0
void main_mac_osx ( int argc, char **argv )
{
#ifdef GTKOSXAPPLICATION
    GtkWidget *vbox;
    GtkWidget *menubar;
    GdkPixbuf *pixbuf;
    cmdline_options  opt;
    gboolean first_use = FALSE;
    gint status = CMDLINE_SYNTAX_OK;
    GtkOSXApplication *theApp;

    devel_debug ("main_mac_osx");

#if IS_DEVELOPMENT_VERSION == 1
    gsb_grisbi_print_environment_var ( );
#endif

    gtk_init ( &argc, &argv );

    /* initialisation libgoffice */
    libgoffice_init ( );
    /* Initialize plugins manager */
    go_plugins_init (NULL, NULL, NULL, NULL, TRUE, GO_TYPE_PLUGIN_LOADER_MODULE);

    /* init the app */
    theApp = g_object_new ( GTK_TYPE_OSX_APPLICATION, NULL );

    /* initialisation des différents répertoires */
    gsb_dirs_init ( );

    bindtextdomain ( PACKAGE,  gsb_dirs_get_locale_dir ( ) );
    bind_textdomain_codeset ( PACKAGE, "UTF-8" );
    textdomain ( PACKAGE );

    /* Setup locale/gettext */
    setlocale (LC_ALL, "");
    gsb_locale_init ( );

    /* on commence par détourner le signal SIGSEGV */
    gsb_grisbi_trappe_signal_sigsegv ( );

    /* parse command line parameter, exit with correct error code when needed */
    if ( !parse_options (argc, argv, &opt, &status ) )
        exit ( status );

    /* initialise les données de l'application */
    first_use = gsb_grisbi_init_app ( );

    vbox = gsb_main_create_main_window ( );
    {
        gboolean falseval = FALSE;
        gboolean trueval = TRUE;

        g_signal_connect ( theApp,
                        "NSApplicationDidBecomeActive",
                        G_CALLBACK ( grisbi_osx_app_active_cb ),
                        &trueval );
        g_signal_connect ( theApp,
                        "NSApplicationWillResignActive",
                        G_CALLBACK ( grisbi_osx_app_active_cb ),
                        &falseval);
        g_signal_connect ( theApp,
                        "NSApplicationBlockTermination",
                        G_CALLBACK ( gsb_main_grisbi_close ),
                        NULL);
        g_signal_connect ( theApp,
                        "NSApplicationWillTerminate",
                        G_CALLBACK ( main_window_destroy_event ),
                        NULL );
    }
    menubar = gsb_grisbi_create_main_menu ( vbox );
    grisbi_osx_init_menus ( main_window, menubar );
    main_window_set_size_and_position ( );

    gtk_widget_show ( run.window );

#if IS_DEVELOPMENT_VERSION == 1
    dialog_message ( "development-version", VERSION );
#endif

    gsb_grisbi_load_file_if_necessary ( &opt );

    if ( first_use && !nom_fichier_comptes )
        gsb_assistant_first_run ();
    else
        display_tip ( FALSE );

    if ( quartz_application_get_bundle_id ( ) == NULL )
    {
        pixbuf = gdk_pixbuf_new_from_file ( g_build_filename
                        (gsb_dirs_get_pixmaps_dir ( ), "grisbi-logo.png", NULL), NULL );
        if ( pixbuf )
            gtk_osxapplication_set_dock_icon_pixbuf ( theApp, pixbuf );
    }

    gtk_osxapplication_set_use_quartz_accelerators ( theApp, TRUE );

    gtk_osxapplication_ready ( theApp );

    gtk_main ();

    /* sauvegarde les raccourcis claviers */
    gtk_accel_map_save ( gsb_dirs_get_accelerator_filename () );

    g_object_unref ( theApp );

    gsb_locale_shutdown ( );
    gsb_dirs_shutdown ( );

    /* liberation libgoffice */
    libgoffice_shutdown ( );

#if GSB_GMEMPROFILE
    g_mem_profile();
#endif

    exit ( 0 );

#endif /* GTKOSXAPPLICATION */
}
Пример #4
0
void
libgoffice_init (void)
{
	if (initialized++)
		return;

#ifdef G_OS_WIN32
	{
	gchar *dir;

#define S(s)	#s
	char const *module_name =
		"libgoffice-" S(GO_VERSION_EPOCH) "-" S(GO_VERSION_MAJOR) ".dll";
#undef S
	wchar_t *wc_module_name = g_utf8_to_utf16 (module_name, -1, NULL, NULL, NULL);
	HMODULE hmodule = GetModuleHandleW (wc_module_name);
	g_free (wc_module_name);
	dir = g_win32_get_package_installation_directory_of_module (hmodule);

	libgoffice_data_dir = g_build_filename (dir,
		"share", "goffice", GOFFICE_VERSION, NULL);
	libgoffice_icon_dir = g_build_filename (dir,
		"share", "pixmaps", "goffice", GOFFICE_VERSION, NULL);
	libgoffice_locale_dir = g_build_filename (dir,
		"share", "locale", NULL);
	libgoffice_lib_dir = g_build_filename (dir,
		"lib", "goffice", GOFFICE_VERSION, NULL);
	g_free (dir);
	}
#else
#ifdef GTKOSXAPPLICATION
    if (quartz_application_get_bundle_id ())
    {
        gchar *dir;

        dir = quartz_application_get_resource_path ();
	libgoffice_data_dir = g_build_filename (dir,
		"share", "goffice", GOFFICE_VERSION, NULL);
	libgoffice_icon_dir = g_build_filename (dir,
		"share", "pixmaps", "goffice", GOFFICE_VERSION, NULL);
	libgoffice_locale_dir = g_build_filename (dir,
		"share", "locale", NULL);
	libgoffice_lib_dir = g_build_filename (dir,
		"lib", "goffice", GOFFICE_VERSION, NULL);
	g_free (dir);
    }
#endif /* GTKOSXAPPLICATION */
#endif

	bindtextdomain (GETTEXT_PACKAGE, libgoffice_locale_dir);
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
	gsf_init ();

	_go_string_init ();
	_go_conf_init ();
	_go_fonts_init ();
	_go_math_init ();
	_go_rsm_init ();
	go_register_ui_files ();

	/* keep trigger happy linkers from leaving things out */
	_go_plugin_services_init ();
	_gog_plugin_services_init ();
#ifdef GOFFICE_WITH_GTK
	_goc_plugin_services_init ();
	install_icons ();
#endif
	g_type_ensure (GO_TYPE_PLUGIN_LOADER_MODULE);
	g_type_ensure (GOG_TYPE_GRAPH);
	g_type_ensure (GOG_TYPE_CHART);
	g_type_ensure (GOG_TYPE_PLOT);
	g_type_ensure (GOG_TYPE_SERIES);
	g_type_ensure (GOG_TYPE_SERIES_ELEMENT);
	g_type_ensure (GOG_TYPE_LEGEND);
	g_type_ensure (GOG_TYPE_AXIS);
	g_type_ensure (GOG_TYPE_AXIS_LINE);
	g_type_ensure (GOG_TYPE_COLOR_SCALE);
	g_type_ensure (GOG_TYPE_LABEL);
	g_type_ensure (GOG_TYPE_GRID);
	g_type_ensure (GOG_TYPE_GRID_LINE);
#ifdef GOFFICE_WITH_LASEM
	g_type_ensure (GOG_TYPE_EQUATION);
#endif
	g_type_ensure (GOG_TYPE_ERROR_BAR);
	g_type_ensure (GOG_TYPE_REG_EQN);
	g_type_ensure (GOG_TYPE_SERIES_LABELS);
	g_type_ensure (GOG_TYPE_DATA_LABEL);
	g_type_ensure (GOG_TYPE_SERIES_LINES);
	g_type_ensure (GO_TYPE_DATA_SCALAR_VAL);
	g_type_ensure (GO_TYPE_DATA_SCALAR_STR);
	g_type_ensure (GOG_3D_BOX_TYPE);
	g_type_ensure (GO_TYPE_EMF);
	g_type_ensure (GO_TYPE_PIXBUF);
	g_type_ensure (GO_TYPE_SPECTRE);
	g_type_ensure (GO_TYPE_SVG);

	_gog_themes_init ();
	_go_number_format_init ();
	_go_currency_date_format_init ();
	_go_distributions_init ();
	initialized = TRUE;
}