1 //     ____   ______ __
2 //    / __ \ / ____// /
3 //   / /_/ // /    / /
4 //  / ____// /___ / /___   PixInsight Class Library
5 // /_/     \____//_____/   PCL 2.1.19
6 // ----------------------------------------------------------------------------
7 // Standard RAW_compat File Format Module Version 1.5.3
8 // ----------------------------------------------------------------------------
9 // RawPreferencesDialog.h - Released 2020-01-14T11:57:23Z
10 // ----------------------------------------------------------------------------
11 // This file is part of the standard RAW_compat PixInsight module.
12 //
13 // Copyright (c) 2003-2020 Pleiades Astrophoto S.L. All Rights Reserved.
14 //
15 // Redistribution and use in both source and binary forms, with or without
16 // modification, is permitted provided that the following conditions are met:
17 //
18 // 1. All redistributions of source code must retain the above copyright
19 //    notice, this list of conditions and the following disclaimer.
20 //
21 // 2. All redistributions in binary form must reproduce the above copyright
22 //    notice, this list of conditions and the following disclaimer in the
23 //    documentation and/or other materials provided with the distribution.
24 //
25 // 3. Neither the names "PixInsight" and "Pleiades Astrophoto", nor the names
26 //    of their contributors, may be used to endorse or promote products derived
27 //    from this software without specific prior written permission. For written
28 //    permission, please contact info@pixinsight.com.
29 //
30 // 4. All products derived from this software, in any form whatsoever, must
31 //    reproduce the following acknowledgment in the end-user documentation
32 //    and/or other materials provided with the product:
33 //
34 //    "This product is based on software from the PixInsight project, developed
35 //    by Pleiades Astrophoto and its contributors (http://pixinsight.com/)."
36 //
37 //    Alternatively, if that is where third-party acknowledgments normally
38 //    appear, this acknowledgment must be reproduced in the product itself.
39 //
40 // THIS SOFTWARE IS PROVIDED BY PLEIADES ASTROPHOTO AND ITS CONTRIBUTORS
41 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
42 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PLEIADES ASTROPHOTO OR ITS
44 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45 // EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, BUSINESS
46 // INTERRUPTION; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; AND LOSS OF USE,
47 // DATA OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50 // POSSIBILITY OF SUCH DAMAGE.
51 // ----------------------------------------------------------------------------
52 
53 #ifndef __RawPreferencesDialog_h
54 #define __RawPreferencesDialog_h
55 
56 #include <pcl/CheckBox.h>
57 #include <pcl/Dialog.h>
58 #include <pcl/GroupBox.h>
59 #include <pcl/Label.h>
60 #include <pcl/NumericControl.h>
61 #include <pcl/PushButton.h>
62 #include <pcl/RadioButton.h>
63 #include <pcl/Sizer.h>
64 #include <pcl/SpinBox.h>
65 
66 #include "RawPreferences.h"
67 
68 namespace pcl
69 {
70 
71 // ----------------------------------------------------------------------------
72 
73 class RawPreferencesDialog : public Dialog
74 {
75 public:
76 
77    RawPreferencesDialog( RawPreferences& );
78 
79 private:
80 
81    RawPreferences&   preferences;
82    RawPreferences    savedPreferences;
83 
84    VerticalSizer     Global_Sizer;
85 
86       GroupBox          OutputOptions_GroupBox;
87       VerticalSizer     OutputOptions_Sizer;
88          HorizontalSizer   CreateSuperPixels_Sizer;
89             CheckBox          CreateSuperPixels_CheckBox;
90          HorizontalSizer   OutputRawRGB_Sizer;
91             CheckBox          OutputRawRGB_CheckBox;
92          HorizontalSizer   OutputCFA_Sizer;
93             CheckBox          OutputCFA_CheckBox;
94          HorizontalSizer   NoAutoFlip_Sizer;
95             CheckBox          NoAutoFlip_CheckBox;
96          HorizontalSizer   NoAutoCrop_Sizer;
97             CheckBox          NoAutoCrop_CheckBox;
98          HorizontalSizer   NoBlackPointCorrection_Sizer;
99             CheckBox          NoBlackPointCorrection_CheckBox;
100          HorizontalSizer   NoClipHighlights_Sizer;
101             CheckBox          NoClipHighlights_CheckBox;
102          NumericControl    NoiseThreshold_NumericControl;
103 
104       GroupBox          Interpolation_GroupBox;
105       VerticalSizer     Interpolation_Sizer;
106          HorizontalSizer   Bilinear_Sizer;
107             RadioButton       Bilinear_RadioButton;
108          HorizontalSizer   VNG_Sizer;
109             RadioButton       VNG_RadioButton;
110          HorizontalSizer   PPG_Sizer;
111             RadioButton       PPG_RadioButton;
112          HorizontalSizer   AHD_Sizer;
113             RadioButton       AHD_RadioButton;
114          HorizontalSizer   DCB_Sizer;
115             RadioButton       DCB_RadioButton;
116          HorizontalSizer   DCBIterations_Sizer;
117             Label             DCBIterations_Label;
118             SpinBox           DCBIterations_SpinBox;
119          HorizontalSizer   DCBRefinement_Sizer;
120             CheckBox          DCBRefinement_CheckBox;
121          HorizontalSizer   DHT_Sizer;
122             RadioButton       DHT_RadioButton;
123          HorizontalSizer   AAHD_Sizer;
124             RadioButton       AAHD_RadioButton;
125          HorizontalSizer   HalfSize_Sizer;
126             RadioButton       HalfSize_RadioButton;
127          HorizontalSizer   InterpolateAs4Colors_Sizer;
128             CheckBox          InterpolateAs4Colors_CheckBox;
129          HorizontalSizer   FBDDNoiseReduction_Sizer;
130             Label             FBDDNoiseReduction_Label;
131             SpinBox           FBDDNoiseReduction_SpinBox;
132 
133       GroupBox          WhiteBalance_GroupBox;
134       VerticalSizer     WhiteBalance_Sizer;
135          HorizontalSizer   UseAutoWhiteBalance_Sizer;
136             CheckBox          UseAutoWhiteBalance_CheckBox;
137          HorizontalSizer   UseCameraWhiteBalance_Sizer;
138             CheckBox          UseCameraWhiteBalance_CheckBox;
139          HorizontalSizer   NoWhiteBalance_Sizer;
140             CheckBox          NoWhiteBalance_CheckBox;
141 
142       HorizontalSizer   BottomRow_Sizer;
143          PushButton        PureRaw_PushButton;
144          PushButton        PureRGB_PushButton;
145          PushButton        OK_PushButton;
146          PushButton        Cancel_PushButton;
147 
148    void UpdateControls();
149 
150    void NumericControl_ValueUpdated( NumericControl& sender, double value );
151    void SpinBox_ValueUpdated( SpinBox& sender, int value );
152    void Button_Click( Button& sender, bool checked );
153    void Dialog_Return( Dialog& sender, int retVal );
154 };
155 
156 // ----------------------------------------------------------------------------
157 
158 } // pcl
159 
160 #endif   // __RawPreferencesDialog_h
161 
162 // ----------------------------------------------------------------------------
163 // EOF RawPreferencesDialog.h - Released 2020-01-14T11:57:23Z
164