Support for XISF
This commit is contained in:
Vendored
+337
@@ -0,0 +1,337 @@
|
||||
// ____ ______ __
|
||||
// / __ \ / ____// /
|
||||
// / /_/ // / / /
|
||||
// / ____// /___ / /___ PixInsight Class Library
|
||||
// /_/ \____//_____/ PCL 2.4.23
|
||||
// ----------------------------------------------------------------------------
|
||||
// pcl/MessageBox.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_MessageBox_h
|
||||
#define __PCL_MessageBox_h
|
||||
|
||||
/// \file pcl/MessageBox.h
|
||||
|
||||
#include <pcl/Defs.h>
|
||||
|
||||
#include <pcl/AutoPointer.h>
|
||||
#include <pcl/String.h>
|
||||
|
||||
#ifndef __PCL_MSGBOX_DONT_REMOVE_PREVIOUS_DECLARATION
|
||||
/*
|
||||
* Remove conflicting identifiers from Win32 SDK headers.
|
||||
*
|
||||
* Unfortunately, MessageBox is #defined as a macro in winuser.h, and this may
|
||||
* cause problems with our code on Windows platforms.
|
||||
*
|
||||
* If for some eccentric reason you really want to use the Win32 API MessageBox
|
||||
* function (why should you?), then call either MessageBoxA() or MessageBoxW().
|
||||
*/
|
||||
# ifdef MessageBox
|
||||
# undef MessageBox
|
||||
# endif
|
||||
#endif
|
||||
|
||||
namespace pcl
|
||||
{
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/*!
|
||||
* \namespace pcl::StdIcon
|
||||
* \brief Standard MessageBox icons.
|
||||
*
|
||||
* <table border="1" cellpadding="4" cellspacing="0">
|
||||
* <tr><td>StdIcon::NoIcon</td> <td>No icon will be shown on the %MessageBox</td></tr>
|
||||
* <tr><td>StdIcon::Question</td> <td>Standard question mark icon</td></tr>
|
||||
* <tr><td>StdIcon::Information</td> <td>Standard information icon</td></tr>
|
||||
* <tr><td>StdIcon::Warning</td> <td>Standard warning icon</td></tr>
|
||||
* <tr><td>StdIcon::Error</td> <td>Standard error icon</td></tr>
|
||||
* </table>
|
||||
*/
|
||||
namespace StdIcon
|
||||
{
|
||||
enum value_type
|
||||
{
|
||||
NoIcon,
|
||||
Question,
|
||||
Information,
|
||||
Warning,
|
||||
Error,
|
||||
|
||||
NumberOfStandardIcons
|
||||
};
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/*!
|
||||
* \namespace pcl::StdButton
|
||||
* \brief Standard MessageBox buttons.
|
||||
*
|
||||
* <table border="1" cellpadding="4" cellspacing="0">
|
||||
* <tr><td>StdButton::NoButton</td> <td>No button</td></tr>
|
||||
* <tr><td>StdButton::Ok</td> <td>Ok button</td></tr>
|
||||
* <tr><td>StdButton::Cancel</td> <td>Cancel button</td></tr>
|
||||
* <tr><td>StdButton::Yes</td> <td>Yes button</td></tr>
|
||||
* <tr><td>StdButton::No</td> <td>No button</td></tr>
|
||||
* <tr><td>StdButton::Abort</td> <td>Abort button</td></tr>
|
||||
* <tr><td>StdButton::Retry</td> <td>Retry button</td></tr>
|
||||
* <tr><td>StdButton::Ignore</td> <td>Ignore button</td></tr>
|
||||
* <tr><td>StdButton::YesToAll</td> <td>Yes to All button</td></tr>
|
||||
* <tr><td>StdButton::NoToAll</td> <td>No to All button</td></tr>
|
||||
* </table>
|
||||
*/
|
||||
namespace StdButton
|
||||
{
|
||||
enum value_type
|
||||
{
|
||||
NoButton,
|
||||
Ok,
|
||||
Cancel,
|
||||
Yes,
|
||||
No,
|
||||
Abort,
|
||||
Retry,
|
||||
Ignore,
|
||||
YesToAll,
|
||||
NoToAll,
|
||||
|
||||
NumberOfStandardButtons
|
||||
};
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class MessageBoxPrivate;
|
||||
|
||||
/*!
|
||||
* \class MessageBox
|
||||
* \brief High-level interface to a PixInsight %MessageBox object.
|
||||
*
|
||||
* A %MessageBox object executes as a modal window relative to PixInsight's
|
||||
* main window. Message boxes are useful to show brief messages, to notify
|
||||
* errors, warnings and other special conditions, and to obtain simple answers
|
||||
* (yes/no, ok/cancel, and so on) from the user.
|
||||
*
|
||||
* \sa Dialog
|
||||
*/
|
||||
class PCL_CLASS MessageBox
|
||||
{
|
||||
public:
|
||||
|
||||
/*!
|
||||
* Represents a standard message box icon.
|
||||
*/
|
||||
typedef StdIcon::value_type std_icon;
|
||||
|
||||
/*!
|
||||
* Represents a standard message box button.
|
||||
*/
|
||||
typedef StdButton::value_type std_button;
|
||||
|
||||
/*!
|
||||
* Constructs a %MessageBox object.
|
||||
*
|
||||
* \param text The text that will be shown on the message box's client
|
||||
* area. Can be either plain text or include basic html tags
|
||||
* like \<br\>, \<p\>\</p\>, \<b\>\</b\>, \<i\>\</i\>,
|
||||
* \<u\>\</u\>, etc.
|
||||
*
|
||||
* \param caption The caption of the message box window. If an empty string
|
||||
* is specified, the platform will assign a default caption.
|
||||
*
|
||||
* \param icon The message box icon. By default, no icon appears on a
|
||||
* message box.
|
||||
*
|
||||
* \param button0,button1,button2 Specify up to three buttons that will be
|
||||
* included on the bottom row of this message box. By default a
|
||||
* message box includes just an Ok standard button.
|
||||
*
|
||||
* \param defaultButtonIdx The button index (from 0 to 2) of the
|
||||
* <em>default button</em> on this dialog box. The default
|
||||
* button will be activated when the user presses the Return or
|
||||
* Enter keys.
|
||||
*
|
||||
* \param escapeButtonIdx The button index (from 0 to 2) of the button
|
||||
* that will be activated when the user presses the Escape key,
|
||||
* or when (s)he closes the message box window explicitly. If a
|
||||
* value < 0 is specified (the default value), pressing the Esc
|
||||
* key simply cancels the dialog and forces a return value of
|
||||
* StdButton::Cancel.
|
||||
*/
|
||||
MessageBox( const String& text = String(),
|
||||
const String& caption = String(), // default caption
|
||||
std_icon icon = StdIcon::NoIcon,
|
||||
std_button button0 = StdButton::Ok,
|
||||
std_button button1 = StdButton::NoButton,
|
||||
std_button button2 = StdButton::NoButton,
|
||||
int defaultButtonIdx = 0,
|
||||
int escapeButtonIdx = -1 ); // escape cancels dialog
|
||||
|
||||
/*!
|
||||
* Destroys a %MessageBox object.
|
||||
*/
|
||||
virtual ~MessageBox();
|
||||
|
||||
/*!
|
||||
* Executes this message box modally. Returns a StdButton identifier
|
||||
* corresponding to the button that the user activated to close the message
|
||||
* box.
|
||||
*
|
||||
* For example, when the user clicks on the Ok button (if that button has
|
||||
* been included in this message box), this function returns StdButton::Ok.
|
||||
*/
|
||||
std_button Execute();
|
||||
|
||||
/*!
|
||||
* Returns the last modal result, or StdButton::NoButton if this box has not
|
||||
* been executed previously.
|
||||
*/
|
||||
std_button Result() const;
|
||||
|
||||
/*!
|
||||
* Returns the text that this message box shows on its client area.
|
||||
*/
|
||||
String Text() const;
|
||||
|
||||
/*!
|
||||
* Sets the \a text to be shown on the client area of this message box.
|
||||
*/
|
||||
void SetText( const String& text );
|
||||
|
||||
/*!
|
||||
* Returns the caption text of this message box.
|
||||
*/
|
||||
String Caption() const;
|
||||
|
||||
/*!
|
||||
* Sets the caption \a text of this message box.
|
||||
*/
|
||||
void SetCaption( const String& text );
|
||||
|
||||
/*!
|
||||
* Returns the icon that will be shown on this message box.
|
||||
*/
|
||||
std_icon Icon() const;
|
||||
|
||||
/*!
|
||||
* Sets the \a icon that will be shown on this message box.
|
||||
*/
|
||||
void SetIcon( std_icon icon );
|
||||
|
||||
/*!
|
||||
* Returns the identifier of the first button on this message box.
|
||||
*/
|
||||
std_button FirstButton() const;
|
||||
|
||||
/*!
|
||||
* Sets the first button on this message box.
|
||||
*/
|
||||
void SetFirstButton( std_button button );
|
||||
|
||||
/*!
|
||||
* Returns the identifier of the second button on this message box.
|
||||
*/
|
||||
std_button SecondButton() const;
|
||||
|
||||
/*!
|
||||
* Sets the second button on this message box.
|
||||
*/
|
||||
void SetSecondButton( std_button button );
|
||||
|
||||
/*!
|
||||
* Returns the identifier of the third button on this message box.
|
||||
*/
|
||||
std_button ThirdButton() const;
|
||||
|
||||
/*!
|
||||
* Sets the third button on this message box.
|
||||
*/
|
||||
void SetThirdButton( std_button button );
|
||||
|
||||
/*!
|
||||
* Returns the index, from 0 to 2, of the <em>default button</em> on this
|
||||
* message box.
|
||||
*
|
||||
* The default button will be activated if the user presses the Return or
|
||||
* Enter keys.
|
||||
*/
|
||||
int DefaultButtonIndex() const;
|
||||
|
||||
/*!
|
||||
* Sets the index, from 0 to 2, of the <em>default button</em> on this
|
||||
* message box.
|
||||
*/
|
||||
void SetDefaultButtonIndex( int index );
|
||||
|
||||
/*!
|
||||
* Returns the index, from 0 to 2, of the <em>escape button</em> on this
|
||||
* message box.
|
||||
*
|
||||
* The escape button will be activated if the user presses the Escape key,
|
||||
* or if (s)he closes the message box's window explicitly.
|
||||
*/
|
||||
int EscapeButtonIndex() const;
|
||||
|
||||
/*!
|
||||
* Sets the index, from 0 to 2, of the <em>escape button</em> on this
|
||||
* message box.
|
||||
*/
|
||||
void SetEscapeButtonIndex( int index );
|
||||
|
||||
private:
|
||||
|
||||
AutoPointer<MessageBoxPrivate> p;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
} // pcl
|
||||
|
||||
#endif // __PCL_MessageBox_h
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// EOF pcl/MessageBox.h - Released 2022-03-12T18:59:29Z
|
||||
Reference in New Issue
Block a user