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 ); }
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 }
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 */ }
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; }