/** * Main entry for program. * * @param argc Number of command line arguments * @param argv Command line arguments * @return 0 on success */ int main (int argc, char* argv[]) { char *option; int result; char *sparam1=NULL, *sparam2, *sparam3, *sparam4; char *sparam5, *sparam6, *sparam7, *sparam8, *sparam9; #ifdef _WIN32 char path[MAX_PATH]; #endif int iparam1, iparam2; long lparam1; /**************************************************************************** * Show program help ****************************************************************************/ if (get_option (argv, argc, "--help", NULL) == 0) { usage (stdout); exit (0); } /**************************************************************************** * Read command line options from file ****************************************************************************/ if (get_option (argv, argc, "-file", &option) == 0) { result = read_file_options (option); free (option); if (result == -1) fail ("Failed to read options file: %s.", option); } /**************************************************************************** * Enable logging ****************************************************************************/ if (get_option (argv, argc, "-log", &option) == 0) { logFile = fopen (option, "a"); if (logFile == NULL) fail ("Failed to write log file: %s", option); free (option); } /**************************************************************************** * Wait for process to terminate ****************************************************************************/ if (get_option (argv, argc, "-pid", &option) == 0) { iparam1 = -1; lparam1 = atoi (option); free (option); if (get_option (argv, argc, "-wait", &option) == 0) { iparam1 = atoi (option); } if (wait_for_pid (lparam1, iparam1) != 0) fail ("Timed out waiting for process to terminate."); free (option); } /**************************************************************************** * Remove directories ****************************************************************************/ if (get_option (argv, argc, "-removeDir", &option) == 0) { result = delete_directories (option, 0); if (result != 0) fail ("Failed to delete directories: %s", option); else log_message ("-removeDir %s", option); free (option); } /**************************************************************************** * Remove directories if they are empty ****************************************************************************/ if (get_option (argv, argc, "-removeEmptyDir", &option) == 0) { result = delete_directories (option, 1); if (result != 0) fail ("Failed to delete empty directories: %s", option); else log_message ("-removeEmptyDir %s", option); free (option); } /**************************************************************************** * Set registry value ****************************************************************************/ if (get_option (argv, argc, "-regSetValue", &option) == 0) { #ifdef _WIN32 sparam1 = get_argument (option); sparam2 = get_argument (NULL); sparam3 = get_argument (NULL); sparam4 = get_argument (NULL); result = set_registry_value (sparam1, sparam2, sparam3, sparam4); if (result != 0) fail ("Failed to set registry value."); else log_message ("-regSetValue %s, %s, %s, %s", sparam1, sparam2, sparam3, sparam4); free (option); #else fail ("-regSetValue is only supported on Windows."); #endif } /**************************************************************************** * Get registry value ****************************************************************************/ if (get_option (argv, argc, "-regGetValue", &option) == 0) { #ifdef _WIN32 sparam1 = get_argument (option); sparam2 = get_argument (NULL); sparam3 = get_registry_value (sparam1, sparam2); if (sparam3) puts (sparam3); else fail ("Failed to get registry value %s, %s.", sparam1, sparam2); free (option); #else fail ("-regSetValue is only supported on Windows."); #endif } /**************************************************************************** * Delete registry value ****************************************************************************/ if (get_option (argv, argc, "-regDeleteValue", &option) == 0) { #ifdef _WIN32 sparam1 = get_argument (option); sparam2 = get_argument (NULL); result = delete_registry_value (sparam1, sparam2); if (result != 0) fail ("Failed to delete registry value."); else log_message ("-regDeleteValue %s, %s", sparam1, sparam2); free (option); #else fail ("-regDeleteValue is only supported on Windows."); #endif } /**************************************************************************** * Delete registry key ****************************************************************************/ if (get_option (argv, argc, "-regDeleteKey", &option) == 0) { #ifdef _WIN32 result = delete_registry_key (option); if (result != 0) fail ("Failed to delete registry key."); else log_message ("-regDeleteKey %s", option); free (option); #else fail ("-regDeleteKey is only supported on Windows."); #endif } /**************************************************************************** * Run as administrator ****************************************************************************/ if (get_option (argv, argc, "-runAdmin", &option) == 0) { #ifdef _WIN32 sparam1 = get_argument (option); sparam2 = get_argument (NULL); result = -1; if ((sparam1 != NULL) && (sparam2 != NULL)) { replace_chars (sparam2, '\'', '"'); result = run_admin (sparam1, sparam2); } if (result != 0) fail ("Failed to run program."); else log_message ("-runAdmin %s,%s", sparam1, sparam2); free (option); #else fail ("-runAdmin is currently only supported on Windows."); #endif } /**************************************************************************** * Create short-cut ****************************************************************************/ if (get_option (argv, argc, "-createShortcut", &option) == 0) { sparam1 = get_argument (option); sparam2 = get_argument (NULL); sparam3 = get_argument (NULL); sparam4 = get_argument (NULL); sparam5 = get_argument (NULL); sparam6 = get_argument (NULL); sparam7 = get_argument (NULL); sparam8 = get_argument (NULL); sparam9 = get_argument (NULL); if (strlen (sparam6) != 0) iparam1 = atoi (sparam6); else iparam1 = 0; if (strlen (sparam9) != 0) iparam2 = atoi (sparam9); else iparam2 = 0; result = create_shortcut (sparam1, sparam2, sparam3, sparam4, sparam5, iparam1, sparam7, sparam8, iparam2); if (result != 0) fail ("Failed to create shortcut."); else log_message ("-createShortcut %s, %s, %s, %s, %s, %s, %s, %s %s", sparam1, sparam2, sparam3, sparam4, sparam5, sparam6, sparam7, sparam8, sparam9); free (option); } /**************************************************************************** * Get special folder ****************************************************************************/ if (get_option (argv, argc, "-getSpecialFolder", &option) == 0) { #ifdef _WIN32 sparam1 = get_argument (option); iparam1 = get_clsid (sparam1); result = get_special_folder (iparam1, path); free (option); if (result != 0) fail ("Failed to get special folder: %s", sparam1); else puts(path); #else fail ("-getSpecialFolder is only supported on Windows."); #endif } /**************************************************************************** * Get property ****************************************************************************/ if (get_option (argv, argc, "-getOsProperty", &option) == 0) { sparam1 = get_argument (option); print_os_property (sparam1); free (option); } if (logFile != NULL) fclose (logFile); if (fargv != NULL) free (fargv); return EXIT_SUCCESS; }
//---------------------------------------------------------------------- HRESULT create_dia_source() { HRESULT hr; // VC80/90 CRT installs msdiaNN.dll in this folder: // "C:\Program Files (x86)\Common Files\microsoft shared\VC" char common_files[QMAXPATH]; qstring vc_shared; if ( get_special_folder(CSIDL_PROGRAM_FILES_COMMON, common_files, sizeof(common_files)) ) { vc_shared = common_files; vc_shared.append("\\Microsoft Shared\\VC"); } for ( size_t i=0; i < qnumber(g_msdiav); i++ ) { // Try to create using CoCreateInstance() hr = CoCreateInstance(*g_msdiav[i], NULL, CLSCTX_INPROC_SERVER, __uuidof(IDiaDataSource), (void**)&pSource); // Try to create with CoCreateInstanceNoReg() if ( FAILED(hr) ) { // Search for this interface in DIA dlls char path[QMAXPATH]; if ( !search_path(g_diadlls[i], path, sizeof(path), false) && (vc_shared.empty() || SearchPathA(vc_shared.c_str(), g_diadlls[i], NULL, qnumber(path), path, NULL) == 0) ) continue; for ( size_t j=0; j < qnumber(g_msdiav); j++ ) { hr = CoCreateInstanceNoReg( path, *g_msdiav[j], NULL, __uuidof(IDiaDataSource), (void**)&pSource, &dia_hmod); if ( SUCCEEDED(hr) ) { static bool displayed = false; if ( !displayed ) { displayed = true; msg("PDB: using DIA dll \"%s\"\n", path); } i = j; break; } } } if ( SUCCEEDED(hr) ) { dia_ver = g_diaver[i]; static bool displayed = false; if ( !displayed ) { displayed = true; msg("PDB: DIA interface version %d.%d\n", dia_ver/100, dia_ver%100); } return hr; } } return E_NOINTERFACE; }
static void gimp_core_config_class_init (GimpCoreConfigClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); gchar *path; gchar *mypaint_brushes; GimpRGB red = { 1.0, 0, 0, 0.5 }; guint64 undo_size; object_class->finalize = gimp_core_config_finalize; object_class->set_property = gimp_core_config_set_property; object_class->get_property = gimp_core_config_get_property; GIMP_CONFIG_PROP_STRING (object_class, PROP_LANGUAGE, "language", "Language", LANGUAGE_BLURB, NULL, /* take from environment */ GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); GIMP_CONFIG_PROP_ENUM (object_class, PROP_INTERPOLATION_TYPE, "interpolation-type", "Interpolation", INTERPOLATION_TYPE_BLURB, GIMP_TYPE_INTERPOLATION_TYPE, GIMP_INTERPOLATION_CUBIC, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_INT (object_class, PROP_DEFAULT_THRESHOLD, "default-threshold", "Default threshold", DEFAULT_THRESHOLD_BLURB, 0, 255, 15, GIMP_PARAM_STATIC_STRINGS); path = gimp_config_build_plug_in_path ("plug-ins"); GIMP_CONFIG_PROP_PATH (object_class, PROP_PLUG_IN_PATH, "plug-in-path", "Plug-in path", PLUG_IN_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); g_free (path); path = gimp_config_build_plug_in_path ("modules"); GIMP_CONFIG_PROP_PATH (object_class, PROP_MODULE_PATH, "module-path", "Module path", MODULE_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); g_free (path); path = gimp_config_build_plug_in_path ("interpreters"); GIMP_CONFIG_PROP_PATH (object_class, PROP_INTERPRETER_PATH, "interpreter-path", "Interpreter path", INTERPRETER_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); g_free (path); path = gimp_config_build_plug_in_path ("environ"); GIMP_CONFIG_PROP_PATH (object_class, PROP_ENVIRON_PATH, "environ-path", "Environment path", ENVIRON_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); g_free (path); path = gimp_config_build_data_path ("brushes"); GIMP_CONFIG_PROP_PATH (object_class, PROP_BRUSH_PATH, "brush-path", "Brush path", BRUSH_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_writable_path ("brushes"); GIMP_CONFIG_PROP_PATH (object_class, PROP_BRUSH_PATH_WRITABLE, "brush-path-writable", "Writable brush path", BRUSH_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_data_path ("dynamics"); GIMP_CONFIG_PROP_PATH (object_class, PROP_DYNAMICS_PATH, "dynamics-path", "Dynamics path", DYNAMICS_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_writable_path ("dynamics"); GIMP_CONFIG_PROP_PATH (object_class, PROP_DYNAMICS_PATH_WRITABLE, "dynamics-path-writable", "Writable dynamics path", DYNAMICS_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); #ifdef ENABLE_RELOCATABLE_RESOURCES mypaint_brushes = g_build_filename ("${gimp_installation_dir}", "share", "mypaint-data", "1.0", "brushes", NULL); #else mypaint_brushes = g_strdup (MYPAINT_BRUSHES_DIR); #endif path = g_build_path (G_SEARCHPATH_SEPARATOR_S, mypaint_brushes, "~/.mypaint/brushes", NULL); g_free (mypaint_brushes); GIMP_CONFIG_PROP_PATH (object_class, PROP_MYPAINT_BRUSH_PATH, "mypaint-brush-path", "MyPaint brush path", MYPAINT_BRUSH_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = g_build_path (G_SEARCHPATH_SEPARATOR_S, "~/.mypaint/brushes", NULL); GIMP_CONFIG_PROP_PATH (object_class, PROP_MYPAINT_BRUSH_PATH_WRITABLE, "mypaint-brush-path-writable", "Writable MyPaint brush path", MYPAINT_BRUSH_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_data_path ("patterns"); GIMP_CONFIG_PROP_PATH (object_class, PROP_PATTERN_PATH, "pattern-path", "Pattern path", PATTERN_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_writable_path ("patterns"); GIMP_CONFIG_PROP_PATH (object_class, PROP_PATTERN_PATH_WRITABLE, "pattern-path-writable", "Writable pattern path", PATTERN_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_data_path ("palettes"); GIMP_CONFIG_PROP_PATH (object_class, PROP_PALETTE_PATH, "palette-path", "Palette path", PALETTE_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_writable_path ("palettes"); GIMP_CONFIG_PROP_PATH (object_class, PROP_PALETTE_PATH_WRITABLE, "palette-path-writable", "Writable palette path", PALETTE_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_data_path ("gradients"); GIMP_CONFIG_PROP_PATH (object_class, PROP_GRADIENT_PATH, "gradient-path", "Gradient path", GRADIENT_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_writable_path ("gradients"); GIMP_CONFIG_PROP_PATH (object_class, PROP_GRADIENT_PATH_WRITABLE, "gradient-path-writable", "Writable gradient path", GRADIENT_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_data_path ("tool-presets"); GIMP_CONFIG_PROP_PATH (object_class, PROP_TOOL_PRESET_PATH, "tool-preset-path", "Tool preset path", TOOL_PRESET_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_writable_path ("tool-presets"); GIMP_CONFIG_PROP_PATH (object_class, PROP_TOOL_PRESET_PATH_WRITABLE, "tool-preset-path-writable", "Writable tool preset path", TOOL_PRESET_PATH_WRITABLE_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); path = gimp_config_build_data_path ("fonts"); #if defined G_OS_WIN32 /* XXX: since a Windows 10 update, build 17704, Microsoft added the * concept of user-installed fonts (until now it was only possible to * have system-wide fonts! How weird is that?). * A feature request at fontconfig is also done, but until this gets * implemented upstream, let's add the folder ourselves in GIMP's * default list of folders. * See: https://gitlab.gnome.org/GNOME/gimp/issues/2949 * Also: https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/144 */ { gchar *user_fonts_dir = get_special_folder (CSIDL_LOCAL_APPDATA); if (user_fonts_dir) { gchar *path2; gchar *tmp; path2 = g_build_filename (user_fonts_dir, "Microsoft", "Windows", "Fonts", NULL); g_free (user_fonts_dir); /* G_SEARCHPATH_SEPARATOR-separated list of folders. */ tmp = g_strconcat (path2, G_SEARCHPATH_SEPARATOR_S, path, NULL); g_free (path2); g_free (path); path = tmp; } } #endif GIMP_CONFIG_PROP_PATH (object_class, PROP_FONT_PATH, "font-path", "Font path", FONT_PATH_BLURB, GIMP_CONFIG_PATH_DIR_LIST, path, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); g_free (path); GIMP_CONFIG_PROP_PATH (object_class, PROP_FONT_PATH_WRITABLE, "font-path-writable", "Writable font path", NULL, GIMP_CONFIG_PATH_DIR_LIST, NULL, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_IGNORE); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_BRUSH, "default-brush", "Default brush", DEFAULT_BRUSH_BLURB, GIMP_DEFAULT_BRUSH, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_DYNAMICS, "default-dynamics", "Default dynamics", DEFAULT_DYNAMICS_BLURB, GIMP_DEFAULT_DYNAMICS, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_MYPAINT_BRUSH, "default-mypaint-brush", "Default MyPaint brush", DEFAULT_MYPAINT_BRUSH_BLURB, GIMP_DEFAULT_MYPAINT_BRUSH, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_PATTERN, "default-pattern", "Default pattern", DEFAULT_PATTERN_BLURB, GIMP_DEFAULT_PATTERN, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_PALETTE, "default-palette", "Default palette", DEFAULT_PALETTE_BLURB, GIMP_DEFAULT_PALETTE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_GRADIENT, "default-gradient", "Default gradient", DEFAULT_GRADIENT_BLURB, GIMP_DEFAULT_GRADIENT, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_TOOL_PRESET, "default-tool-preset", "Default tool preset", DEFAULT_TOOL_PRESET_BLURB, GIMP_DEFAULT_TOOL_PRESET, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_STRING (object_class, PROP_DEFAULT_FONT, "default-font", "Default font", DEFAULT_FONT_BLURB, GIMP_DEFAULT_FONT, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_BRUSH, "global-brush", "Global brush", GLOBAL_BRUSH_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_DYNAMICS, "global-dynamics", "Global dynamics", GLOBAL_DYNAMICS_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_PATTERN, "global-pattern", "Global pattern", GLOBAL_PATTERN_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_PALETTE, "global-palette", "Global palette", GLOBAL_PALETTE_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_GRADIENT, "global-gradient", "Global gradient", GLOBAL_GRADIENT_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_FONT, "global-font", "Global font", GLOBAL_FONT_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_OBJECT (object_class, PROP_DEFAULT_IMAGE, "default-image", "Default image", DEFAULT_IMAGE_BLURB, GIMP_TYPE_TEMPLATE, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_AGGREGATE); GIMP_CONFIG_PROP_OBJECT (object_class, PROP_DEFAULT_GRID, "default-grid", "Default grid", DEFAULT_GRID_BLURB, GIMP_TYPE_GRID, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_AGGREGATE); GIMP_CONFIG_PROP_INT (object_class, PROP_UNDO_LEVELS, "undo-levels", "Undo levels", UNDO_LEVELS_BLURB, 0, 1 << 20, 5, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); undo_size = gimp_get_physical_memory_size (); if (undo_size > 0) undo_size = undo_size / 8; /* 1/8th of the memory */ else undo_size = 1 << 26; /* 64GB */ GIMP_CONFIG_PROP_MEMSIZE (object_class, PROP_UNDO_SIZE, "undo-size", "Undo size", UNDO_SIZE_BLURB, 0, GIMP_MAX_MEMSIZE, undo_size, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_CONFIRM); GIMP_CONFIG_PROP_ENUM (object_class, PROP_UNDO_PREVIEW_SIZE, "undo-preview-size", "Undo preview size", UNDO_PREVIEW_SIZE_BLURB, GIMP_TYPE_VIEW_SIZE, GIMP_VIEW_SIZE_LARGE, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); GIMP_CONFIG_PROP_INT (object_class, PROP_FILTER_HISTORY_SIZE, "plug-in-history-size", /* compat name */ "Filter history size", FILTER_HISTORY_SIZE_BLURB, 0, 256, 10, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); GIMP_CONFIG_PROP_PATH (object_class, PROP_PLUGINRC_PATH, "pluginrc-path", "plugninrc path", PLUGINRC_PATH_BLURB, GIMP_CONFIG_PATH_FILE, "${gimp_dir}" G_DIR_SEPARATOR_S "pluginrc", GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_LAYER_PREVIEWS, "layer-previews", "Layer previews", LAYER_PREVIEWS_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GROUP_LAYER_PREVIEWS, "group-layer-previews", "Layer group previews", GROUP_LAYER_PREVIEWS_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_ENUM (object_class, PROP_LAYER_PREVIEW_SIZE, "layer-preview-size", "Layer preview size", LAYER_PREVIEW_SIZE_BLURB, GIMP_TYPE_VIEW_SIZE, GIMP_VIEW_SIZE_MEDIUM, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_ENUM (object_class, PROP_THUMBNAIL_SIZE, "thumbnail-size", "Thumbnail size", THUMBNAIL_SIZE_BLURB, GIMP_TYPE_THUMBNAIL_SIZE, GIMP_THUMBNAIL_SIZE_NORMAL, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_MEMSIZE (object_class, PROP_THUMBNAIL_FILESIZE_LIMIT, "thumbnail-filesize-limit", "Thumbnail file size limit", THUMBNAIL_FILESIZE_LIMIT_BLURB, 0, GIMP_MAX_MEMSIZE, 1 << 22, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_OBJECT (object_class, PROP_COLOR_MANAGEMENT, "color-management", "Color management", COLOR_MANAGEMENT_BLURB, GIMP_TYPE_COLOR_CONFIG, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_AGGREGATE); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_SAVE_DOCUMENT_HISTORY, "save-document-history", "Save document history", SAVE_DOCUMENT_HISTORY_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_RGB (object_class, PROP_QUICK_MASK_COLOR, "quick-mask-color", "Quick mask color", QUICK_MASK_COLOR_BLURB, TRUE, &red, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_IMPORT_PROMOTE_FLOAT, "import-promote-float", "Import promote float", IMPORT_PROMOTE_FLOAT_BLURB, FALSE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_IMPORT_PROMOTE_DITHER, "import-promote-dither", "Import promote dither", IMPORT_PROMOTE_DITHER_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_IMPORT_ADD_ALPHA, "import-add-alpha", "Import add alpha", IMPORT_ADD_ALPHA_BLURB, FALSE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_PATH (object_class, PROP_IMPORT_RAW_PLUG_IN, "import-raw-plug-in", "Import raw plug-in", IMPORT_RAW_PLUG_IN_BLURB, GIMP_CONFIG_PATH_FILE, "", GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_RESTART); GIMP_CONFIG_PROP_ENUM (object_class, PROP_EXPORT_FILE_TYPE, "export-file-type", "Default export file type", EXPORT_FILE_TYPE_BLURB, GIMP_TYPE_EXPORT_FILE_TYPE, GIMP_EXPORT_FILE_PNG, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_EXPORT_COLOR_PROFILE, "export-color-profile", "Export Color Profile", EXPORT_COLOR_PROFILE_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_EXPORT_METADATA_EXIF, "export-metadata-exif", "Export Exif metadata", EXPORT_METADATA_EXIF_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_EXPORT_METADATA_XMP, "export-metadata-xmp", "Export XMP metadata", EXPORT_METADATA_XMP_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_EXPORT_METADATA_IPTC, "export-metadata-iptc", "Export IPTC metadata", EXPORT_METADATA_IPTC_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_PROP_ENUM (object_class, PROP_DEBUG_POLICY, "debug-policy", "Try generating backtrace upon errors", GENERATE_BACKTRACE_BLURB, GIMP_TYPE_DEBUG_POLICY, #ifdef GIMP_UNSTABLE GIMP_DEBUG_POLICY_WARNING, #else GIMP_DEBUG_POLICY_FATAL, #endif GIMP_PARAM_STATIC_STRINGS); /* only for backward compatibility: */ GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_INSTALL_COLORMAP, "install-colormap", NULL, NULL, FALSE, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_IGNORE); GIMP_CONFIG_PROP_INT (object_class, PROP_MIN_COLORS, "min-colors", NULL, NULL, 27, 256, 144, GIMP_PARAM_STATIC_STRINGS | GIMP_CONFIG_PARAM_IGNORE); }