/* Copyright (C) 2015-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). 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: Dk4WxFrame.cpt */ #ifndef DK4WXFRAME_H_INCLUDED /** Avoid multiple inclusions. */ #define DK4WXFRAME_H_INCLUDED 1 #line 9 "Dk4WxFrame.cpt" /** @file Dk4WxFrame.h Base class for top level frames. */ #ifndef DK4CONF_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4conf.h" #else #include #endif #endif #ifndef DK4TYPES_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4types.h" #else #include #endif #endif #ifndef WX_WXPREC_H_INCLUDED #include #define WX_WXPREC_H_INCLUDED 1 #endif #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #ifndef WX_WX_H_INCLUDED #include #define WX_WX_H_INCLUDED 1 #endif #endif #ifndef DK4WXAPPLICATIONHELPER_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "Dk4WxApplicationHelper.h" #else #include #endif #endif #ifndef DK4WXHELPCONTROLLER_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "Dk4WxHelpController.h" #else #include #endif #endif /** Frame (top level window). */ class Dk4WxFrame : public wxFrame { protected: /** Application helper. */ Dk4WxApplicationHelper *pAppHelp; /** Help controller for online help. */ Dk4WxHelpController *pHelp; /** Application name. */ wxString sAppName; /** Synchronize access to iInstances. */ static wxCriticalSection csInstances; /** Number of instances. */ static int iInstances; public: /** Constructor. @param appName Application name. @param appHelper Application helper. @param helpController Help controller. @param wxid Window ID. */ Dk4WxFrame( const wxString & appName, Dk4WxApplicationHelper *appHelper, Dk4WxHelpController *helpController, int wxid ); /** Restore previously saved window position. */ void RestorePosition(void); /** Handler for close event. @param event Event to process. */ void OnClose(wxCloseEvent & event); /** Decide whether we can close the frame. @param isFinal Flag: Final frame. @return True to close the frame, false to keep it. */ virtual bool CanClose(bool isFinal); /** Open help system. */ void DisplayContents(void); /** Open help section specified by name. @param name Section name. */ void DisplaySection(wxString const & name); /** Open a help section specified by number. @param number Section number (context ID). */ void DisplaySection(int number); /** Find data file and launch default application or web browser on it. @param fn File name to search for and use. @param bIsHelp Flag: File is a help file. @param bVerbose Flag: Show diagnostics on errors. @return Success indicator. */ bool FindFileAndLaunch( dkChar const *fn, bool bIsHelp = false, bool bVerbose = false ); protected: /** Save current window position. */ void SavePosition(void); }; #endif