/* WARNING: This file was generated by dkct. Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: DkWxImgszFrame.wxc */ /* Copyright (C) 2012-2017, Dirk Krause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above opyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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. */ /** @file DkWxImgszFrame.h Header file for the DkWxImgszFrame module. */ #ifndef DKWXIMGSZFRAME_H_INCLUDED /** Avoid multiple inclusions. */ #define DKWXIMGSZFRAME_H_INCLUDED 1 #line 176 "DkWxImgszFrame.wxc" #line 179 "DkWxImgszFrame.wxc" /** Main window class for the wximgsz program. */ class DkWxImgszFrame : public DkWxFrame { private: /** Event table. */ DECLARE_EVENT_TABLE() protected: /** Localized message texts. */ wxChar const * const *sTexts; /** Red (used as background color). */ wxColour cRed; /** Red 127. */ wxColour cNotSoDarkRed; /** Green (used as background color). */ wxColour cGreen; /** Black (used as text color). */ wxColour cBlack; /** Dark red (used as text color). */ wxColour cDarkRed; /** Yellow (used as background color). */ wxColour cYellow; /** File dialog x position. */ int fdx; /** File dialog y position. */ int fdy; /** Options dialog x position. */ int odx; /** Options dialog y position. */ int ody; /** Flag: Use background colors to indicate scale factor quality. */ bool bUseColour; /** Current directory. */ wxString sCurrentDir; /** Flag: GUI ok. */ bool dkctGUILayoutOK; /** Contents panel. */ wxPanel *dkctGUIContentsPanel; /** GUI element mbMain. */ #line 15 "DkWxImgszFrame.wxc" wxMenuBar *mbMain; /** GUI element mainSizer. */ #line 59 "DkWxImgszFrame.wxc" wxBoxSizer *mainSizer; /** GUI element mFile. */ #line 20 "DkWxImgszFrame.wxc" wxMenu *mFile; /** GUI element mExtras. */ #line 35 "DkWxImgszFrame.wxc" wxMenu *mExtras; /** GUI element mHelp. */ #line 44 "DkWxImgszFrame.wxc" wxMenu *mHelp; /** GUI element miOpen. */ #line 25 "DkWxImgszFrame.wxc" wxMenuItem *miOpen; /** GUI element miExit. */ #line 30 "DkWxImgszFrame.wxc" wxMenuItem *miExit; /** GUI element miOptions. */ #line 39 "DkWxImgszFrame.wxc" wxMenuItem *miOptions; /** GUI element miHelpContents. */ #line 49 "DkWxImgszFrame.wxc" wxMenuItem *miHelpContents; /** GUI element miHelpAbout. */ #line 54 "DkWxImgszFrame.wxc" wxMenuItem *miHelpAbout; /** GUI element horizontalSizer. */ #line 67 "DkWxImgszFrame.wxc" wxBoxSizer *horizontalSizer; /** GUI element statusSizer. */ #line 166 "DkWxImgszFrame.wxc" wxBoxSizer *statusSizer; /** GUI element inputDataSizer. */ #line 78 "DkWxImgszFrame.wxc" wxGridBagSizer *inputDataSizer; /** GUI element bCalculate. */ #line 137 "DkWxImgszFrame.wxc" wxBitmapButton *bCalculate; /** GUI element outputDataSizer. */ #line 143 "DkWxImgszFrame.wxc" wxGridBagSizer *outputDataSizer; /** GUI element lOriginalImage. */ #line 94 "DkWxImgszFrame.wxc" wxStaticText *lOriginalImage; /** GUI element lWidth. */ #line 97 "DkWxImgszFrame.wxc" wxStaticText *lWidth; /** GUI element tWidth. */ #line 100 "DkWxImgszFrame.wxc" wxTextCtrl *tWidth; /** GUI element lHeight. */ #line 104 "DkWxImgszFrame.wxc" wxStaticText *lHeight; /** GUI element tHeight. */ #line 107 "DkWxImgszFrame.wxc" wxTextCtrl *tHeight; /** GUI element lChangeType. */ #line 111 "DkWxImgszFrame.wxc" wxStaticText *lChangeType; /** GUI element lAction. */ #line 114 "DkWxImgszFrame.wxc" wxStaticText *lAction; /** GUI element cbAction. */ #line 117 "DkWxImgszFrame.wxc" wxChoice *cbAction; /** GUI element lMinimum. */ #line 123 "DkWxImgszFrame.wxc" wxStaticText *lMinimum; /** GUI element tMinimum. */ #line 126 "DkWxImgszFrame.wxc" wxTextCtrl *tMinimum; /** GUI element lMaximum. */ #line 130 "DkWxImgszFrame.wxc" wxStaticText *lMaximum; /** GUI element tMaximum. */ #line 133 "DkWxImgszFrame.wxc" wxTextCtrl *tMaximum; /** GUI element lResults. */ #line 152 "DkWxImgszFrame.wxc" wxStaticText *lResults; /** GUI element dataGrid. */ #line 155 "DkWxImgszFrame.wxc" wxGrid *dataGrid; /** GUI element lStatus. */ #line 171 "DkWxImgszFrame.wxc" wxStaticText *lStatus; #line 246 "DkWxImgszFrame.wxc" public: /** Constructor. */ DkWxImgszFrame( wxChar const *applicationName, wxChar const * const *localizedMessages, DkWxAppHelper *applicationHelper, DkWxHelpController *helpController, int wxid, int argc, wxChar **argv ); /** Destructor. */ ~DkWxImgszFrame(); /** Check whether we can close the window. @param isLast Flag: Last top level window. */ bool canClose(bool isLast); /** Event handler to open a file. @param event Event to process. */ void OnOpen(wxCommandEvent& WXUNUSED(event)); /** Event handler to quit application. @param event Event to process. */ void OnQuit(wxCommandEvent& WXUNUSED(event)); /** Event handler to show help contents. @param event Event to process. */ void OnHelp(wxCommandEvent& WXUNUSED(event)); /** Event handler to show version number. @param event Event to process. */ void OnAbout(wxCommandEvent& WXUNUSED(event)); /** Event handler: Run calculation. @param event Event to process. */ void OnRun(wxCommandEvent& WXUNUSED(event)); /** Event handler: Choice made. @param event Event to process. */ void OnChoice(wxCommandEvent & event); /** Event handler to set options. @param event Event to process. */ void OnOptions(wxCommandEvent& WXUNUSED(event)); protected: /** Save data entered into text fields. */ void saveData(); /** Restore data entered in text fields. */ void restoreData(); /** Enable/disable the lower text fields depending on the current choice selection. */ void enableDisableMinimumMaximum(); /** Calculate largest common divisor. @param aa One number. @param bb Other number. @return Largest common divisor of aa and bb. */ long gcd(long aa, long bb); /** Retrieve positive long number from text field. @param tf Text field to process. @param bShowErrors Flag: Show message boxes for errors. @return Positive number on success, 0L on error. */ long getTextCtrlContents(wxTextCtrl *tf, bool bShowErrors); /** Run calculation. */ void run(bool bShowErrors); /** Run for a set of numbers. @param w Width (or height, if inverted). @param h Height (or width, if inverted). @param min Minimum value. @param max maximum value. @param inverted Flag: w contains the hight, h the width. */ void runForNumbers(long w, long h, long min, long max, int inverted); /** Classify factor. @param n New value. @param o Old value. @return 2 for powers of 2, 1 for integer factors, 0 otherwise. */ int classifyFactor(long n, long o); /** Count bit number in a long value. @param v Value to check. @return Number of bits set. */ int countBits(long v); }; #line 371 "DkWxImgszFrame.wxc" #endif