From 29a83b8d1b2f52c09f2b786ce392d9f39b57d9b0 Mon Sep 17 00:00:00 2001 From: DGH2112 Date: Sat, 17 Dec 2016 17:27:32 +0000 Subject: [PATCH] Update Documenration Update the documentation of the code to include author headers, a read me file and a license file. --- .gitignore | 1 + DLLs/CPPOTATemplateXE101.cbproj | 24 +++++++++-------- License.md | 34 ++++++++++++++++++++++++ README.md | 26 ++++++++++++++++++ Source/CPPOTATemplateAboutBoxPlugin.h | 10 +++++++ Source/CPPOTATemplateAddinOptions.h | 10 +++++++ Source/CPPOTATemplateAppOptions.h | 9 +++++++ Source/CPPOTATemplateAppOptionsFrame.dfm | 6 ++--- Source/CPPOTATemplateAppOptionsFrame.h | 10 +++++++ Source/CPPOTATemplateConstants.h | 10 +++++++ Source/CPPOTATemplateFunctions.h | 10 +++++++ Source/CPPOTATemplateIDENotifier.h | 11 ++++++++ Source/CPPOTATemplateMacros.h | 10 +++++++ Source/CPPOTATemplateMainWizard.h | 13 +++++++++ Source/CPPOTATemplateNotifierObject.h | 11 ++++++++ Source/CPPOTATemplatePkgDLLInit.h | 11 ++++++++ Source/CPPOTATemplateSplashScreen.h | 11 ++++++++ 17 files changed, 202 insertions(+), 15 deletions(-) create mode 100644 License.md create mode 100644 README.md diff --git a/.gitignore b/.gitignore index ff7ae8c..6187931 100644 --- a/.gitignore +++ b/.gitignore @@ -89,3 +89,4 @@ $RECYCLE.BIN/ *.stat *.#0* *.~*~ +*.~dsk diff --git a/DLLs/CPPOTATemplateXE101.cbproj b/DLLs/CPPOTATemplateXE101.cbproj index 5b0f850..405e086 100644 --- a/DLLs/CPPOTATemplateXE101.cbproj +++ b/DLLs/CPPOTATemplateXE101.cbproj @@ -153,6 +153,8 @@ _0 5 + + ..\Source\CPPOTATemplateAboutBoxPlugin.h 6 @@ -298,7 +300,16 @@ true - + + + 0 + .dll;.bpl + + + 1 + .dylib + + Contents\Resources @@ -637,16 +648,7 @@ 1 - - - 0 - .dll;.bpl - - - 1 - .dylib - - + diff --git a/License.md b/License.md new file mode 100644 index 0000000..ed0bf9d --- /dev/null +++ b/License.md @@ -0,0 +1,34 @@ +# C++ Open Tools API Template + +Author: David Hoyle + +Version: 1.0 + +Date: 17 Dec 2016 + +Web Page: http://www.davidghoyle.co.uk/WordPress/?page_id=1468 + + + +The code contain in the project can be used as an aid to learning and used +to compile the project for your personal use. The code can be modified for +your personel use however you should retain the headers identifying the +original author and should not be publshed without the author's consent. + +The code should not be used verbatum in any other projects but the essense / ideas +in the code can be reused in your applications. + +This code should not be published without the author's prior consent nor should +the code be used in a commercial product with out the author's consent. + + + +regards + +David Hoyle (c) 17 Dec 2016 + +davidghoyle@gmail.com + +Web Page: http://www.davidghoyle.co.uk/WordPress/?page_id=1468 + +Season's Fall Music diff --git a/README.md b/README.md new file mode 100644 index 0000000..f5a9e1f --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# C++ Open Tools API Template + +Author: David Hoyle + +Version: 1.0 + +Date: 17 Dec 2016 + +Web Page: http://www.davidghoyle.co.uk/WordPress/?page_id=1468 + + + +Description + +This is a RAD Studio wizard / expert / plug-in which example in C++ Builder +to demonstrate how to build Open Tools API projects for the RAD Studio IDEs +with C++. + +At the moment the project only implements some basic Open Tool APIs examples: + * Splash Screen; + * About Box; + * IDE Notifier; + * IDE Options frame. + +Eventually this project will have the same capabilities as its Pascal cousin +and be able to create the template files for a C++ Builder OTA project. diff --git a/Source/CPPOTATemplateAboutBoxPlugin.h b/Source/CPPOTATemplateAboutBoxPlugin.h index b9e8305..f52cb67 100644 --- a/Source/CPPOTATemplateAboutBoxPlugin.h +++ b/Source/CPPOTATemplateAboutBoxPlugin.h @@ -1,3 +1,13 @@ +/** + + This module contains two functions for adding an about box entry to the RAD Studio IDE + about dialogue and also removing the entry. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateAboutBoxPluginH #define CPPOTATemplateAboutBoxPluginH #endif diff --git a/Source/CPPOTATemplateAddinOptions.h b/Source/CPPOTATemplateAddinOptions.h index 5d62714..3b9650c 100644 --- a/Source/CPPOTATemplateAddinOptions.h +++ b/Source/CPPOTATemplateAddinOptions.h @@ -1,3 +1,13 @@ +/** + + This module contains a class which implements the INTAAddInOptions interface than handles the + insertion of the options frame into the RAD Studio IDEs options dialogue. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2017 + +**/ #ifndef CPPOTATemplateAddinOptionsH #define CPPOTATemplateAddinOptionsH diff --git a/Source/CPPOTATemplateAppOptions.h b/Source/CPPOTATemplateAppOptions.h index f0b64bb..0f0d8cb 100644 --- a/Source/CPPOTATemplateAppOptions.h +++ b/Source/CPPOTATemplateAppOptions.h @@ -1,3 +1,12 @@ +/** + + This module contains a class which handles ALL the applications options. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2017 + +**/ #ifndef CPPOTATemplateAppOptionsH #define CPPOTATemplateAppOptionsH diff --git a/Source/CPPOTATemplateAppOptionsFrame.dfm b/Source/CPPOTATemplateAppOptionsFrame.dfm index 5396381..8f00b1e 100644 --- a/Source/CPPOTATemplateAppOptionsFrame.dfm +++ b/Source/CPPOTATemplateAppOptionsFrame.dfm @@ -15,7 +15,6 @@ object frameAppOptions: TframeAppOptions Anchors = [akLeft, akTop, akRight] Caption = '&Enabled' TabOrder = 0 - ExplicitWidth = 549 end object gbxAutoSaveOptions: TGroupBox Left = 3 @@ -25,8 +24,6 @@ object frameAppOptions: TframeAppOptions Anchors = [akLeft, akTop, akRight, akBottom] Caption = 'Auto Save &Options' TabOrder = 1 - ExplicitWidth = 549 - ExplicitHeight = 313 object lblInterval: TLabel Left = 16 Top = 32 @@ -42,7 +39,7 @@ object frameAppOptions: TframeAppOptions Height = 21 ReadOnly = True TabOrder = 0 - Text = '0' + Text = '10' end object udInterval: TUpDown Left = 145 @@ -52,6 +49,7 @@ object frameAppOptions: TframeAppOptions Associate = edtInterval Min = 10 Max = 3600 + Position = 10 TabOrder = 1 end object chkPrompt: TCheckBox diff --git a/Source/CPPOTATemplateAppOptionsFrame.h b/Source/CPPOTATemplateAppOptionsFrame.h index f042034..92b3b08 100644 --- a/Source/CPPOTATemplateAppOptionsFrame.h +++ b/Source/CPPOTATemplateAppOptionsFrame.h @@ -1,3 +1,13 @@ +/** + + This module contains a class which represents an options frame for inserting into the + RAD Studio IDEs options dialogue. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateAppOptionsFrameH #define CPPOTATemplateAppOptionsFrameH diff --git a/Source/CPPOTATemplateConstants.h b/Source/CPPOTATemplateConstants.h index ed2b961..7e969a4 100644 --- a/Source/CPPOTATemplateConstants.h +++ b/Source/CPPOTATemplateConstants.h @@ -1,3 +1,13 @@ +/** + + This module contains a number of constants that are used in various aspeccts of the + application. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2017 + +**/ #ifndef CPPOTATemplateConstantsH #define CPPOTATemplateConstantsH #endif diff --git a/Source/CPPOTATemplateFunctions.h b/Source/CPPOTATemplateFunctions.h index f1e94a8..4ef5742 100644 --- a/Source/CPPOTATemplateFunctions.h +++ b/Source/CPPOTATemplateFunctions.h @@ -1,3 +1,13 @@ +/** + + This module contains a function to get the wizard / expert / plug-ins build information for use + in the splash screen and about box entry. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateFunctionsH #define CPPOTATemplateFunctionsH #endif diff --git a/Source/CPPOTATemplateIDENotifier.h b/Source/CPPOTATemplateIDENotifier.h index df79ba1..39c87d3 100644 --- a/Source/CPPOTATemplateIDENotifier.h +++ b/Source/CPPOTATemplateIDENotifier.h @@ -1,3 +1,14 @@ +/** + + This module contains a class which implements the IOTAIDENotifier, IOTAIDENotifier50 and + IOTAIDENotifier80 interfaces for capturing file notificationevents and compiler events in the + RAD Studio IDE. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateIDENotifierH #define CPPOTATemplateIDENotifierH diff --git a/Source/CPPOTATemplateMacros.h b/Source/CPPOTATemplateMacros.h index ad19be4..3903bfc 100644 --- a/Source/CPPOTATemplateMacros.h +++ b/Source/CPPOTATemplateMacros.h @@ -1,3 +1,13 @@ +/** + + This module contains macros for use through the application to help with casting Delphi interfaces + and getting a reference to the BorlandIDEServices variable. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateMacrosH #define CPPOTATemplateMacrosH diff --git a/Source/CPPOTATemplateMainWizard.h b/Source/CPPOTATemplateMainWizard.h index a4d0ddf..1df9384 100644 --- a/Source/CPPOTATemplateMainWizard.h +++ b/Source/CPPOTATemplateMainWizard.h @@ -1,3 +1,16 @@ +/** + + This module contains a class that implements the IOTAWizard and IOTAMenuWizard interfaces + to provide a main wizard interfaces for this OTA project which installs and Open Tools + API wizard / expert / plug-in into the RAD Studio IDE. + + This clas manages ALL objects created and used by this application. + + @Author David Hoyle + @Version 1.0 + @date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateMainWizardH #define CPPOTATemplateMainWizardH diff --git a/Source/CPPOTATemplateNotifierObject.h b/Source/CPPOTATemplateNotifierObject.h index ff171f1..3afa57d 100644 --- a/Source/CPPOTATemplateNotifierObject.h +++ b/Source/CPPOTATemplateNotifierObject.h @@ -1,3 +1,14 @@ +/** + + This module contains a class which immplements the IOTANotifier interface (which in turn + implements IInterface) to act as a base class for all the objects in the application so that + they can all output notifications to the RAD Studio IDE message view. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateNotifierObjectH #define CPPOTATemplateNotifierObjectH diff --git a/Source/CPPOTATemplatePkgDLLInit.h b/Source/CPPOTATemplatePkgDLLInit.h index 38da59e..4dc4df5 100644 --- a/Source/CPPOTATemplatePkgDLLInit.h +++ b/Source/CPPOTATemplatePkgDLLInit.h @@ -1,3 +1,14 @@ +/** + + This module contains function to either regsiter the main wizard with the RAD Studio IDE + when the wzizard / expert / plugin is loaded as a package or register the application with the + IDE when loaded as a DLL. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplatePkgDLLInitH #define CPPOTATemplatePkgDLLInitH #endif diff --git a/Source/CPPOTATemplateSplashScreen.h b/Source/CPPOTATemplateSplashScreen.h index 7d8dfd5..960acd7 100644 --- a/Source/CPPOTATemplateSplashScreen.h +++ b/Source/CPPOTATemplateSplashScreen.h @@ -1,3 +1,14 @@ +/** + + This module contains a function to add a splash screen to the RAD Studio IDE on startup. + Note: This currently will only work with packages due to the inability to blind the DesignIDE + package to the DLL. + + @Author David Hoyle + @Version 1.0 + @Date 17 Dec 2016 + +**/ #ifndef CPPOTATemplateSplashScreenH #define CPPOTATemplateSplashScreenH #endif