523 lines
30 KiB
C++
523 lines
30 KiB
C++
// ____ ______ __
|
|
// / __ \ / ____// /
|
|
// / /_/ // / / /
|
|
// / ____// /___ / /___ PixInsight Class Library
|
|
// /_/ \____//_____/ PCL 2.4.23
|
|
// ----------------------------------------------------------------------------
|
|
// pcl/GlobalSettings.h - Released 2022-03-12T18:59:29Z
|
|
// ----------------------------------------------------------------------------
|
|
// This file is part of the PixInsight Class Library (PCL).
|
|
// PCL is a multiplatform C++ framework for development of PixInsight modules.
|
|
//
|
|
// Copyright (c) 2003-2022 Pleiades Astrophoto S.L. All Rights Reserved.
|
|
//
|
|
// Redistribution and use in both source and binary forms, with or without
|
|
// modification, is permitted provided that the following conditions are met:
|
|
//
|
|
// 1. All redistributions of source code must retain the above copyright
|
|
// notice, this list of conditions and the following disclaimer.
|
|
//
|
|
// 2. All redistributions in binary form must reproduce the above copyright
|
|
// notice, this list of conditions and the following disclaimer in the
|
|
// documentation and/or other materials provided with the distribution.
|
|
//
|
|
// 3. Neither the names "PixInsight" and "Pleiades Astrophoto", nor the names
|
|
// of their contributors, may be used to endorse or promote products derived
|
|
// from this software without specific prior written permission. For written
|
|
// permission, please contact info@pixinsight.com.
|
|
//
|
|
// 4. All products derived from this software, in any form whatsoever, must
|
|
// reproduce the following acknowledgment in the end-user documentation
|
|
// and/or other materials provided with the product:
|
|
//
|
|
// "This product is based on software from the PixInsight project, developed
|
|
// by Pleiades Astrophoto and its contributors (https://pixinsight.com/)."
|
|
//
|
|
// Alternatively, if that is where third-party acknowledgments normally
|
|
// appear, this acknowledgment must be reproduced in the product itself.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY PLEIADES ASTROPHOTO AND ITS CONTRIBUTORS
|
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PLEIADES ASTROPHOTO OR ITS
|
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
// EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, BUSINESS
|
|
// INTERRUPTION; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; AND LOSS OF USE,
|
|
// DATA OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
// POSSIBILITY OF SUCH DAMAGE.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#ifndef __PCL_GlobalSettings_h
|
|
#define __PCL_GlobalSettings_h
|
|
|
|
/// \file pcl/GlobalSettings.h
|
|
|
|
#include <pcl/Defs.h>
|
|
#include <pcl/Diagnostics.h>
|
|
|
|
#include <pcl/Color.h>
|
|
#include <pcl/String.h>
|
|
|
|
#ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
|
|
#include <pcl/Font.h>
|
|
#endif
|
|
|
|
namespace pcl
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
/*!
|
|
* \namespace pcl::GlobalVariableType
|
|
* \brief Data types for global platform variables
|
|
*
|
|
* <table border="1" cellpadding="4" cellspacing="0">
|
|
* <tr><td>GlobalVariableType::Undefined</td> <td>Indicates that the requested global variable does not exist.</td></tr>
|
|
* <tr><td>GlobalVariableType::Flag</td> <td>Boolean value.</td></tr>
|
|
* <tr><td>GlobalVariableType::Integer</td> <td>Signed integer.</td></tr>
|
|
* <tr><td>GlobalVariableType::Unsigned</td> <td>Unsigned integer.</td></tr>
|
|
* <tr><td>GlobalVariableType::Real</td> <td>Floating point real (IEEE 64-bit floating point).</td></tr>
|
|
* <tr><td>GlobalVariableType::Color</td> <td>RGBA color (uint32).</td></tr>
|
|
* <tr><td>GlobalVariableType::Font</td> <td>A font face (a string).</td></tr>
|
|
* <tr><td>GlobalVariableType::String</td> <td>A UTF-16 string.</td></tr>
|
|
* </table>
|
|
*/
|
|
namespace GlobalVariableType
|
|
{
|
|
enum value_type
|
|
{
|
|
Undefined, // The requested global variable doesn't exist
|
|
Flag, // bool
|
|
Integer, // int
|
|
Unsigned, // unsigned
|
|
Real, // double
|
|
Color, // RGBA (= uint32)
|
|
Font, // Font
|
|
String // String
|
|
};
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
/*!
|
|
* \class PixInsightSettings
|
|
* \brief Retrieves global settings from the PixInsight core application
|
|
*
|
|
* PixInsight global settings, also known as <em>global variables</em>, are
|
|
* identifier/value pairs available from the core application to all installed
|
|
* modules. Settings can be of six types: flags (or Boolean), integer (signed
|
|
* and unsigned), real (floating point), color, font, and string. See the
|
|
* pcl::GlobalVariableType namespace for more details.
|
|
*
|
|
* Below is a complete list of all global settings available in current
|
|
* versions of the PixInsight platform (updated as of core version 1.8.8-13).
|
|
*
|
|
* <h3>PixInsight Public Global Variables</h3>
|
|
*
|
|
* <h4>Global %Flags</h4>
|
|
*
|
|
* <table border="1" cellpadding="4" cellspacing="0">
|
|
* <tr><td>Application/AutoUIScaling</td><td></td></tr>
|
|
* <tr><td>Application/HealRegistryInformationOnUpdates</td><td></td></tr>
|
|
* <tr><td>ColorManagement/DefaultEmbedProfilesInGrayscaleImages</td><td></td></tr>
|
|
* <tr><td>ColorManagement/DefaultEmbedProfilesInRGBImages</td><td></td></tr>
|
|
* <tr><td>ColorManagement/DefaultGamutCheckEnabled</td><td></td></tr>
|
|
* <tr><td>ColorManagement/DefaultProofingEnabled</td><td></td></tr>
|
|
* <tr><td>ColorManagement/IsEnabled</td><td></td></tr>
|
|
* <tr><td>ColorManagement/IsValid</td><td>Read-only.</td></tr>
|
|
* <tr><td>ColorManagement/UseLowResolutionCLUTs</td><td></td></tr>
|
|
* <tr><td>ColorManagement/UseProofingBPC</td><td></td></tr>
|
|
* <tr><td>ImageWindow/BackupFiles</td><td></td></tr>
|
|
* <tr><td>ImageWindow/CreatePreviewsFromCoreProperties</td><td></td></tr>
|
|
* <tr><td>ImageWindow/Default24BitScreenLUT</td><td></td></tr>
|
|
* <tr><td>ImageWindow/DefaultEmbedProperties</td><td></td></tr>
|
|
* <tr><td>ImageWindow/DefaultEmbedThumbnails</td><td></td></tr>
|
|
* <tr><td>ImageWindow/DefaultMasksShown</td><td></td></tr>
|
|
* <tr><td>ImageWindow/DefaultMetricResolution</td><td></td></tr>
|
|
* <tr><td>ImageWindow/FastScreenRenditions</td><td></td></tr>
|
|
* <tr><td>ImageWindow/FileFormatWarnings</td><td></td></tr>
|
|
* <tr><td>ImageWindow/FollowDownloadLocations</td><td></td></tr>
|
|
* <tr><td>ImageWindow/HighDPIRenditions</td><td></td></tr>
|
|
* <tr><td>ImageWindow/LoadAstrometricSolutions</td><td></td></tr>
|
|
* <tr><td>ImageWindow/LoadInitialProcessingFromCoreProperties</td><td></td></tr>
|
|
* <tr><td>ImageWindow/MeasureScreenRenderingPerformance</td><td></td></tr>
|
|
* <tr><td>ImageWindow/NativeFileDialogs</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ProjectVerifyIncrementalChecksums</td><td></td></tr>
|
|
* <tr><td>ImageWindow/RememberFileOpenType</td><td></td></tr>
|
|
* <tr><td>ImageWindow/RememberFileSaveType</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ShowActiveSTFIndicators</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ShowCaptionCurrentChannels</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ShowCaptionFullPaths</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ShowCaptionIdentifiers</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ShowCaptionZoomRatios</td><td></td></tr>
|
|
* <tr><td>ImageWindow/ShowViewSelectorImageThumbnails</td><td></td></tr>
|
|
* <tr><td>ImageWindow/StrictFileSaveMode</td><td></td></tr>
|
|
* <tr><td>ImageWindow/SwapCompression</td><td></td></tr>
|
|
* <tr><td>ImageWindow/TouchEvents</td><td></td></tr>
|
|
* <tr><td>ImageWindow/UseFileNamesAsImageIdentifiers</td><td></td></tr>
|
|
* <tr><td>ImageWindow/VerboseNetworkOperations</td><td>Not available on Windows.</td></tr>
|
|
* <tr><td>ImageWindow/ZoomAtCursor</td><td></td></tr>
|
|
* <tr><td>MainWindow/AcceptDroppedFiles</td><td></td></tr>
|
|
* <tr><td>MainWindow/AnimateCombo</td><td></td></tr>
|
|
* <tr><td>MainWindow/AnimateMenu</td><td></td></tr>
|
|
* <tr><td>MainWindow/AnimateToolBox</td><td></td></tr>
|
|
* <tr><td>MainWindow/AnimateToolTip</td><td></td></tr>
|
|
* <tr><td>MainWindow/AnimateWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/CapitalizedMenuBars</td><td></td></tr>
|
|
* <tr><td>MainWindow/CheckForUpdatesAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/ConfirmProgramTermination</td><td></td></tr>
|
|
* <tr><td>MainWindow/DesktopSettingsAware</td><td></td></tr>
|
|
* <tr><td>MainWindow/DoubleClickLaunchesOpenDialog</td><td></td></tr>
|
|
* <tr><td>MainWindow/ExpandFavoritesAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/ExpandMostUsedAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/ExpandRecentlyUsedAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/ExplodeIcons</td><td></td></tr>
|
|
* <tr><td>MainWindow/FadeAutoHideWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/FadeMenu</td><td></td></tr>
|
|
* <tr><td>MainWindow/FadeToolTip</td><td></td></tr>
|
|
* <tr><td>MainWindow/FadeWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/FadeWorkspaces</td><td></td></tr>
|
|
* <tr><td>MainWindow/FullScreenAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/HighQualityWallpapers</td><td></td></tr>
|
|
* <tr><td>MainWindow/HoverableAutoHideWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/ImplodeIcons</td><td></td></tr>
|
|
* <tr><td>MainWindow/MaximizeAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/NativeMenuBar</td><td></td></tr>
|
|
* <tr><td>MainWindow/OpenURLsWithInternalBrowser</td><td></td></tr>
|
|
* <tr><td>MainWindow/OpenResourcesOnNewWebBrowserWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/PrivateWebBrowsingMode</td><td></td></tr>
|
|
* <tr><td>MainWindow/ShowFavorites</td><td></td></tr>
|
|
* <tr><td>MainWindow/ShowMostUsed</td><td></td></tr>
|
|
* <tr><td>MainWindow/ShowRecentlyUsed</td><td></td></tr>
|
|
* <tr><td>MainWindow/ShowSplashAtStartup</td><td></td></tr>
|
|
* <tr><td>MainWindow/ShowViewListImageThumbnails</td><td></td></tr>
|
|
* <tr><td>MainWindow/ShowWorkspaceThumbnails</td><td></td></tr>
|
|
* <tr><td>MainWindow/TranslucentAutoHideWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/TranslucentChildWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/TranslucentWindows</td><td></td></tr>
|
|
* <tr><td>MainWindow/UseWallpapers</td><td></td></tr>
|
|
* <tr><td>MainWindow/WindowButtonsOnTheLeft</td><td></td></tr>
|
|
* <tr><td>Process/AlertOnProcessCompleted</td><td></td></tr>
|
|
* <tr><td>Process/BackupFiles</td><td></td></tr>
|
|
* <tr><td>Process/EnableCUDAAcceleration</td><td></td></tr>
|
|
* <tr><td>Process/EnableExecutionStatistics</td><td></td></tr>
|
|
* <tr><td>Process/EnableLaunchStatistics</td><td></td></tr>
|
|
* <tr><td>Process/EnableParallelCoreColorManagement</td><td></td></tr>
|
|
* <tr><td>Process/EnableParallelCoreRendering</td><td></td></tr>
|
|
* <tr><td>Process/EnableParallelModuleProcessing</td><td></td></tr>
|
|
* <tr><td>Process/EnableParallelProcessing</td><td></td></tr>
|
|
* <tr><td>Process/EnableThreadCPUAffinity</td><td></td></tr>
|
|
* <tr><td>Process/GenerateScriptComments</td><td></td></tr>
|
|
* <tr><td>Process/InitCUDARuntimeAtStartup</td><td></td></tr>
|
|
* <tr><td>Process/VerifyScriptChecksums</td><td></td></tr>
|
|
* </table>
|
|
*
|
|
* <h4>Global Integers</h4>
|
|
*
|
|
* <table border="1" cellpadding="4" cellspacing="0">
|
|
* <tr><td>Application/FontResolution</td><td>In dots per inch.</td></tr>
|
|
* <tr><td>ColorManagement/DefaultRenderingIntent</td><td>See the pcl::ICCRenderingIntent namespace.</td></tr>
|
|
* <tr><td>ColorManagement/OnMissingProfile</td><td>Core application policies. See the documentation for ColorManagementSetup.</td></tr>
|
|
* <tr><td>ColorManagement/OnProfileMismatch</td><td>Core application policies. See the documentation for ColorManagementSetup.</td></tr>
|
|
* <tr><td>ColorManagement/ProofingIntent</td><td>See the pcl::ICCRenderingIntent namespace.</td></tr>
|
|
* <tr><td>ImageWindow/CursorTolerance</td><td>In device pixels.</td></tr>
|
|
* <tr><td>ImageWindow/DefaultMaskMode</td><td>See the pcl::MaskMode namespace.</td></tr>
|
|
* <tr><td>ImageWindow/DefaultTransparencyMode</td><td>See the pcl::TransparencyMode namespace.</td></tr>
|
|
* <tr><td>ImageWindow/FastScreenRenditionThreshold</td><td>In MiB.</td></tr>
|
|
* <tr><td>ImageWindow/ImageThumbnailSize</td><td>In image pixels.</td></tr>
|
|
* <tr><td>ImageWindow/ProjectThumbnailSize</td><td>In image pixels.</td></tr>
|
|
* <tr><td>ImageWindow/WheelStepAngle</td><td>In degrees, unsigned.</td></tr>
|
|
* <tr><td>ImageWindow/WheelDirection</td><td>When >= 0, rotating forward zooms out. When < 0, rotating forward zooms in.</td></tr>
|
|
* <tr><td>MainWindow/MaxRecentFiles</td><td>Maximum length of recent file menu lists.</td></tr>
|
|
* <tr><td>Process/AutoSavePSMPeriod</td><td>In seconds.</td></tr>
|
|
* <tr><td>Process/ConsoleDelay</td><td>In milliseconds.</td></tr>
|
|
* <tr><td>Process/MaxConsoleLines</td><td>Maximum number of stored text lines on %Process %Console.</td></tr>
|
|
* <tr><td>Process/MaxModuleThreadPriority</td><td>From 0=idle to 7=real-time.</td></tr>
|
|
* <tr><td>Process/MaxProcessors</td><td>Maximum number of processor cores allowed for installed modules.</td></tr>
|
|
* <tr><td>Process/MaxFileReadThreads</td><td>Maximum number of concurrent file reading threads.</td></tr>
|
|
* <tr><td>Process/MaxFileWriteThreads</td><td>Maximum number of concurrent file writing threads.</td></tr>
|
|
* <tr><td>Process/MaxUsageListLength</td><td>Maximum length of the <em>Recently Used</em> and <em>Most Used</em> lists on %Process %Explorer.</td></tr>
|
|
* <tr><td>System/NumberOfProcessors</td><td>Total number of processor cores available. Read-only.</td></tr>
|
|
* <tr><td>TransparencyBrush/Brush</td><td>See the pcl::BackgroundBrush namespace.</td></tr>
|
|
* <tr><td>Workspace/PrimaryScreenCenterX</td><td>Read-only. In physical device pixels.</td></tr>
|
|
* <tr><td>Workspace/PrimaryScreenCenterY</td><td>Read-only. In physical device pixels.</td></tr>
|
|
* <tr><td>Workspace/IconGridSpacing</td><td>Grid distance for aligned icon positions on all workspaces. In logical device pixels.</td></tr>
|
|
* </table>
|
|
*
|
|
* <h4>Global Reals</h4>
|
|
*
|
|
* <table border="1" cellpadding="4" cellspacing="0">
|
|
* <tr><td>Application/StartJD</td><td>Starting time of the core application instance as a Julian day number. Read-only.</td></tr>
|
|
* <tr><td>Application/UIScalingFactor</td><td>Global interface scaling factor of the core application. In the range [1.0,4.0].</td></tr>
|
|
* <tr><td>ImageWindow/DefaultHorizontalResolution</td><td>In device pixels per resolution unit. See the ImageWindow/DefaultMetricResolution global variable.</td></tr>
|
|
* <tr><td>ImageWindow/DefaultVerticalResolution</td><td>In device pixels per resolution unit. See the ImageWindow/DefaultMetricResolution global variable.</td></tr>
|
|
* <tr><td>ImageWindow/PinchSensitivity</td><td>For touch events. In device pixels.</td></tr>
|
|
* <tr><td>MainWindow/ActiveWindowOpacity</td><td>Window opacity in the [0,1] range.</td></tr>
|
|
* <tr><td>MainWindow/AutoHideWindowOpacity</td><td>Window opacity in the [0,1] range.</td></tr>
|
|
* <tr><td>MainWindow/InactiveChildWindowOpacity</td><td>Window opacity in the [0,1] range.</td></tr>
|
|
* <tr><td>MainWindow/InactiveWindowOpacity</td><td>Window opacity in the [0,1] range.</td></tr>
|
|
* <tr><td>MainWindow/MovingChildWindowOpacity</td><td>Window opacity in the [0,1] range.</td></tr>
|
|
* <tr><td>MainWindow/MovingWindowOpacity</td><td>Window opacity in the [0,1] range.</td></tr>
|
|
* </table>
|
|
*
|
|
* <h4>Global Colors</h4>
|
|
*
|
|
* Since PixInsight core version 1.8.0, most UI colors and fonts are defined in
|
|
* cascading style sheet files loaded automatically on startup. Only the
|
|
* following four color variables remain because they are purely functional
|
|
* (i.e., not related to the appearance of GUI controls).
|
|
*
|
|
* <table border="1" cellpadding="4" cellspacing="0">
|
|
* <tr><td>ColorManagement/GamutWarningColor</td><td>For signaling out-of-gamut pixels in color proofing image renditions.</td></tr>
|
|
* <tr><td>TransparencyBrush/BackgroundColor</td><td>Background brush color for renditions of translucent image pixels.</td></tr>
|
|
* <tr><td>TransparencyBrush/DefaultColor</td><td>Opaque color for renditions of translucent image pixels.</td></tr>
|
|
* <tr><td>TransparencyBrush/ForegroundColor</td><td>Foreground brush color for renditions of translucent image pixels.</td></tr>
|
|
* </table>
|
|
*
|
|
* <h4>Global Fonts</h4>
|
|
*
|
|
* Currently there are no global font variables. Since PixInsight core version
|
|
* 1.8.0, all UI fonts are defined through cascading style sheet files loaded
|
|
* automatically on startup.
|
|
*
|
|
* <h4>Global Strings</h4>
|
|
*
|
|
* <table border="1" cellpadding="4" cellspacing="0">
|
|
* <tr><td>Application/AppDirectory</td><td>Full path to the distribution's core application bundle. Read-only. macOS only,</td></tr>
|
|
* <tr><td>Application/AsteroidEphemeridesFile</td><td>File name or path of the distribution's asteroid ephemerides file (XEPH format).</td></tr>
|
|
* <tr><td>Application/AsteroidEphemeridesFilePath</td><td>Full path to the current distribution's asteroid ephemerides file (XEPH format). Read-only.</td></tr>
|
|
* <tr><td>Application/BaseDirectory</td><td>Base directory of the core distribution. Read-only.</td></tr>
|
|
* <tr><td>Application/BinDirectory</td><td>Full path to the distribution's bin directory. Read-only.</td></tr>
|
|
* <tr><td>Application/CIP_ITRSDataFile</td><td>File name or path of the distribution's data file of CIP coordinates in the ITRS (plain text).</td></tr>
|
|
* <tr><td>Application/CIP_ITRSDataFilePath</td><td>Full path to the current distribution's data file of CIP coordinates in the ITRS (plain text). Read-only</td></tr>
|
|
* <tr><td>Application/CoreDirectory</td><td>Full directory of the core executable file. Read-only.</td></tr>
|
|
* <tr><td>Application/CoreFilePath</td><td>Full file path of the core executable. Read-only.</td></tr>
|
|
* <tr><td>Application/DeltaATDataFile</td><td>File name or path of the distribution's Delta AT (TAI-UTC) data file (plain text).</td></tr>
|
|
* <tr><td>Application/DeltaATDataFilePath</td><td>Full path to the current distribution's Delta AT (TAI-UTC) data file (plain text). Read-only</td></tr>
|
|
* <tr><td>Application/DeltaTDataFile</td><td>File name or path of the distribution's Delta T (TT-UT1) data file (plain text).</td></tr>
|
|
* <tr><td>Application/DeltaTDataFilePath</td><td>Full path to the current distribution's Delta T (TT-UT1) data file (plain text). Read-only</td></tr>
|
|
* <tr><td>Application/DocDirectory</td><td>Full path to the distribution's doc directory. Read-only.</td></tr>
|
|
* <tr><td>Application/EtcDirectory</td><td>Full path to the distribution's etc directory. Read-only.</td></tr>
|
|
* <tr><td>Application/FundamentalEphemeridesFile</td><td>File name or path of the distribution's fundamental ephemerides file (XEPH format).</td></tr>
|
|
* <tr><td>Application/FundamentalEphemeridesFilePath</td><td>Full path to the current distribution's fundamental ephemerides file (XEPH format). Read-only.</td></tr>
|
|
* <tr><td>Application/HighResFont</td><td>%Font family for automatic style sheet replacement on high-dpi displays.</td></tr>
|
|
* <tr><td>Application/HighResMonoFont</td><td>Monospaced font family for automatic style sheet replacement on high-dpi displays.</td></tr>
|
|
* <tr><td>Application/IncludeDirectory</td><td>Full path to the distribution's include directory. Read-only.</td></tr>
|
|
* <tr><td>Application/LibDirectory</td><td>Full path to the distribution's lib directory. Read-only.</td></tr>
|
|
* <tr><td>Application/LibraryDirectory</td><td>Full path to the distribution's library directory. Read-only.</td></tr>
|
|
* <tr><td>Application/LowResFont</td><td>%Font family for automatic style sheet replacement on low-dpi displays.</td></tr>
|
|
* <tr><td>Application/LowResMonoFont</td><td>Monospaced font family for automatic style sheet replacement on low-dpi displays.</td></tr>
|
|
* <tr><td>Application/NutationModelFile</td><td>File name or path of the distribution's nutation model file (XEPH format).</td></tr>
|
|
* <tr><td>Application/NutationModelFilePath</td><td>Full path to the current distribution's nutation model file (XEPH format). Read-only.</td></tr>
|
|
* <tr><td>Application/ResourceFile01</td><td>Core resource file #1.</td></tr>
|
|
* <tr><td>Application/ResourceFile02</td><td>Core resource file #2.</td></tr>
|
|
* <tr><td>Application/ResourceFile03</td><td>Core resource file #3.</td></tr>
|
|
* <tr><td>Application/ResourceFile04</td><td>Core resource file #4.</td></tr>
|
|
* <tr><td>Application/ResourceFile05</td><td>Core resource file #5.</td></tr>
|
|
* <tr><td>Application/ResourceFile06</td><td>Core resource file #6.</td></tr>
|
|
* <tr><td>Application/ResourceFile07</td><td>Core resource file #7.</td></tr>
|
|
* <tr><td>Application/ResourceFile08</td><td>Core resource file #8.</td></tr>
|
|
* <tr><td>Application/ResourceFile09</td><td>Core resource file #9.</td></tr>
|
|
* <tr><td>Application/ResourceFile10</td><td>Core resource file #10.</td></tr>
|
|
* <tr><td>Application/RscDirectory</td><td>Full path to the distribution's rsc directory. Read-only.</td></tr>
|
|
* <tr><td>Application/ShortTermAsteroidEphemeridesFile</td><td>File name or path of the distribution's asteroid ephemerides file (XEPH format) - short-term version (reduced time span).</td></tr>
|
|
* <tr><td>Application/ShortTermAsteroidEphemeridesFilePath</td><td>Full path to the current distribution's asteroid ephemerides file (XEPH format) - short-term version (reduced time span). Read-only.</td></tr>
|
|
* <tr><td>Application/ShortTermFundamentalEphemeridesFile</td><td>File name or path of the distribution's fundamental ephemerides file (XEPH format) - short-term version (reduced time span).</td></tr>
|
|
* <tr><td>Application/ShortTermFundamentalEphemeridesFilePath</td><td>Full path to the current distribution's fundamental ephemerides file (XEPH format) - short-term version (reduced time span). Read-only.</td></tr>
|
|
* <tr><td>Application/ShortTermNutationModelFile</td><td>File name or path of the distribution's nutation model file (XEPH format) - short-term version (reduced time span).</td></tr>
|
|
* <tr><td>Application/ShortTermNutationModelFilePath</td><td>Full path to the current distribution's nutation model file (XEPH format) - short-term version (reduced time span). Read-only.</td></tr>
|
|
* <tr><td>Application/SrcDirectory</td><td>Full path to the distribution's src directory. Read-only.</td></tr>
|
|
* <tr><td>Application/StartTime</td><td>Starting time of the core application in ISO 8601 extended format. Read-only.</td></tr>
|
|
* <tr><td>Application/StyleSheetFile</td><td>Main core stile sheet file.</td></tr>
|
|
* <tr><td>ColorManagement/DefaultGrayscaleProfilePath</td><td>Full path to the default ICC color profile for grayscale monochrome images.</td></tr>
|
|
* <tr><td>ColorManagement/DefaultRGBProfilePath</td><td>Full path to the default ICC color profile for RGB color images.</td></tr>
|
|
* <tr><td>ColorManagement/MonitorProfilePath</td><td>Full path to the ICC color profile associated with the primary monitor. Read-only.</td></tr>
|
|
* <tr><td>ColorManagement/ProofingProfilePath</td><td>Full path to the ICC color profile for the color proofing target device.</td></tr>
|
|
* <tr><td>ColorManagement/UpdateMonitorProfile</td><td>Full path to the scheduled new ICC color profile for the primary monitor. Write-only. See the documentation for ColorManagementSetup.</td></tr>
|
|
* <tr><td>FileFormat/ReadFilters</td><td>A list of file filters for file formats capable of image read operations, suitable for file dialogs. Read-only. Updated dynamically on-demand.</td></tr>
|
|
* <tr><td>FileFormat/WriteFilters</td><td>A list of file filters for file formats capable of image write operations, suitable for file dialogs. Read-only. Updated dynamically on-demand.</td></tr>
|
|
* <tr><td>ImageContainerIcon/Prefix</td><td>Prefix for automatically generated image container identifiers.</td></tr>
|
|
* <tr><td>ImageWindow/ClonePostfix</td><td>Postfix appended to image duplicates</td></tr>
|
|
* <tr><td>ImageWindow/DefaultFileExtension</td><td>The default file suffix used to save newly created images.</td></tr>
|
|
* <tr><td>ImageWindow/DownloadsDirectory</td><td>Full path to the core downloads directory.</td></tr>
|
|
* <tr><td>ImageWindow/NewImageCaption</td><td>Window title token for signaling newly created images.</td></tr>
|
|
* <tr><td>ImageWindow/Prefix</td><td>Prefix used for automatically generated image identifiers.</td></tr>
|
|
* <tr><td>ImageWindow/ProxyURL</td><td>The proxy that will be used for core network operations.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile01</td><td>Core workspace wallpaper file #1.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile02</td><td>Core workspace wallpaper file #2.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile03</td><td>Core workspace wallpaper file #3.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile04</td><td>Core workspace wallpaper file #4.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile05</td><td>Core workspace wallpaper file #5.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile06</td><td>Core workspace wallpaper file #6.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile07</td><td>Core workspace wallpaper file #7.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile08</td><td>Core workspace wallpaper file #8.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile09</td><td>Core workspace wallpaper file #9.</td></tr>
|
|
* <tr><td>MainWindow/WallpaperFile10</td><td>Core workspace wallpaper file #10.</td></tr>
|
|
* <tr><td>Preview/Prefix</td><td>Prefix used for automatically generated preview identifiers.</td></tr>
|
|
* <tr><td>ProcessIcon/Prefix</td><td>Prefix used for automatically generated process icon identifiers.</td></tr>
|
|
* <tr><td>View/BrokenLinkText</td><td>Text fragment used to signal broken image and/or process relations, such as missing masks.</td></tr>
|
|
* <tr><td>ViewList/NoPreviewSelectedText</td><td>Text fragment used when there are no previews selected.</td></tr>
|
|
* <tr><td>ViewList/NoPreviewsAvailableText</td><td>Text fragment used when there are no previews available.</td></tr>
|
|
* <tr><td>ViewList/NoViewSelectedText</td><td>Text fragment used when there are no views selected.</td></tr>
|
|
* <tr><td>ViewList/NoViewsAvailableText</td><td>Text fragment used when there are no views available.</td></tr>
|
|
* <tr><td>Workspace/Prefix</td><td>Prefix used for automatically generated workspace identifiers.</td></tr>
|
|
* </table>
|
|
*/
|
|
class PCL_CLASS PixInsightSettings
|
|
{
|
|
public:
|
|
|
|
/*!
|
|
* Represents the data type of a global variable.
|
|
*/
|
|
typedef GlobalVariableType::value_type variable_type;
|
|
|
|
/*!
|
|
* Default constructor. This constructor is disabled because
|
|
* %PixInsightSettings is not an instantiable class.
|
|
*/
|
|
PixInsightSettings() = delete;
|
|
|
|
/*!
|
|
* Copy constructor. This constructor is disabled because
|
|
* %PixInsightSettings is not an instantiable class.
|
|
*/
|
|
PixInsightSettings( const PixInsightSettings& ) = delete;
|
|
|
|
/*!
|
|
* Copy assignment. This operator is disabled because
|
|
* %PixInsightSettings is not an instantiable class.
|
|
*/
|
|
PixInsightSettings& operator =( const PixInsightSettings& ) = delete;
|
|
|
|
/*!
|
|
* Virtual destructor. This destructor is disabled because
|
|
* %PixInsightSettings is not an instantiable class.
|
|
*/
|
|
virtual ~PixInsightSettings() = delete;
|
|
|
|
/*!
|
|
* Retrieves the type of a global variable \a globalId.
|
|
*/
|
|
static variable_type GlobalVariableType( const IsoString& globalId );
|
|
|
|
/*!
|
|
* Returns true iff the specified global variable \a globalId is defined in
|
|
* the current PixInsight platform.
|
|
*/
|
|
static bool IsGlobalVariableDefined( const IsoString& globalId )
|
|
{
|
|
return GlobalVariableType( globalId ) != GlobalVariableType::Undefined;
|
|
}
|
|
|
|
/*!
|
|
* Returns the value of a global boolean variable.
|
|
*/
|
|
static bool GlobalFlag( const IsoString& globalId );
|
|
|
|
/*!
|
|
* Returns the value of a global signed integer variable.
|
|
*/
|
|
static int GlobalInteger( const IsoString& globalId );
|
|
|
|
/*!
|
|
* Returns the value of a global unsigned integer variable.
|
|
*/
|
|
static unsigned GlobalUnsigned( const IsoString& globalId );
|
|
|
|
/*!
|
|
* Returns the value of a global floating point real variable.
|
|
*/
|
|
static double GlobalReal( const IsoString& globalId );
|
|
|
|
/*!
|
|
* Returns the value of a global RGBA color variable.
|
|
*/
|
|
static RGBA GlobalColor( const IsoString& globalId );
|
|
|
|
#ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
|
|
/*!
|
|
* Returns the value of a global font face variable.
|
|
*/
|
|
static Font GlobalFont( const IsoString& globalId );
|
|
#endif
|
|
|
|
/*!
|
|
* Returns the value of a global string variable.
|
|
*/
|
|
static String GlobalString( const IsoString& globalId );
|
|
|
|
/*!
|
|
* Begins a global variable update operation.
|
|
*
|
|
* \sa EndUpdate(), CalcelUpdate()
|
|
*/
|
|
static void BeginUpdate();
|
|
|
|
/*!
|
|
* Terminates a global variable update operation.
|
|
*
|
|
* \sa BeginUpdate(), CancelUpdate()
|
|
*/
|
|
static void EndUpdate();
|
|
|
|
/*!
|
|
* Aborts an ongoing global variable update operation.
|
|
*
|
|
* Use this function if you catch an exception during the sequence of
|
|
* SetGlobalXXX() calls. After cancelling an update operation, you
|
|
* shouldn't call EndUpdate().
|
|
*
|
|
* \sa BeginUpdate(), EndUpdate()
|
|
*/
|
|
static void CancelUpdate();
|
|
|
|
/*!
|
|
* Sets the value of a global boolean variable.
|
|
*/
|
|
static void SetGlobalFlag( const IsoString& globalId, bool );
|
|
|
|
/*!
|
|
* Sets the value of a global signed integer variable.
|
|
*/
|
|
static void SetGlobalInteger( const IsoString& globalId, int );
|
|
|
|
/*!
|
|
* Sets the value of a global unsigned integer variable.
|
|
*/
|
|
static void SetGlobalUnsigned( const IsoString& globalId, unsigned );
|
|
|
|
/*!
|
|
* Sets the value of a global floating point real variable.
|
|
*/
|
|
static void SetGlobalReal( const IsoString& globalId, double );
|
|
|
|
/*!
|
|
* Sets the value of a global RGBA color variable.
|
|
*/
|
|
static void SetGlobalColor( const IsoString& globalId, RGBA );
|
|
|
|
#ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
|
|
/*!
|
|
* Sets the value of a global font face variable.
|
|
*/
|
|
static void SetGlobalFont( const IsoString& globalId, const Font& );
|
|
#endif
|
|
|
|
/*!
|
|
* Sets the value of a global string variable.
|
|
*/
|
|
static void SetGlobalString( const IsoString& globalId, const String& );
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
} // pcl
|
|
|
|
#endif // __PCL_GlobalSettings_h
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// EOF pcl/GlobalSettings.h - Released 2022-03-12T18:59:29Z
|