OWL Development Toolkit for VC 6.0.
OWL Class Expert: What it can? and How it works?
1)There are two data bases that ClassExpert uses: Main and Local. Main database
contains description of all OWL classes and Events and additional data. Local database
contains description all user classes in current project, commands, VersionInfo, dialogs
Info. The both data files is a text files with simple format easy for manual
edition.
Example for Local Data file generated by OWL Wizard:
//Always generated OWL Class Expert Data File.
//OWL ClassExpert for VC. Version 1.5.
//Copyright (C) 1999 by Yura Bidus. All rights reserved.
//
@@START_CLASS_INFO
{
Ttt1Appl{
hsource=tt1app.h
cppsource=tt1app.cpp
ClassType=CE1
BaseClasses=TApplication,
Constructor=Ttt1Appl()
Commands{
CM_HELPABOUT=CmHelpAbout|
}
Virtuals{
void InitMainWindow()
}
}
Ttt1AboutDlg{
hsource=tt1ab.h
cppsource=tt1ab.cpp
WindowID=IDD_ABOUTDLG
ClassType=CDE12
BaseClasses=TDialog,
Constructor=Ttt1AboutDlg(TWindow* parent,
TResId resId, TModule* module)
Virtuals{
void SetupWindow()
}
}
Ttt1View{
hsource=tt1cl.h
cppsource=tt1cl.cpp
ClassType=CWE12
BaseClasses=TEditFile,
Constructor=Ttt1View(TWindow* parent, int id,
LPCTSTR text, int x, int y, int w, int h, LPCTSTR fileName, TModule*
module)
Virtuals{
void SetupWindow();
}
}
Ttt1MDIClient{
hsource=tt1mdicl.h
cppsource=tt1mdicl.cpp
ClassType=CWE12
BaseClasses=TMDIClient,
Constructor=Ttt1MDIClient(TModule* module = 0)
Commands{
CM_MDIFILENEW=CmFileNew|
CM_MDIFILEOPEN=CmFileOpen|
CM_FILECLOSE=CmFileClose|
}
Virtuals{
void Paint(TDC& dc,
bool erase, TRect& rect)
}
}
Ttt1Child{
hsource=tt1mdich.h
cppsource=tt1mdich.cpp
ClassType=CWE12
BaseClasses=TMDIChild,
Constructor=Ttt1Child(TMDIClient& parent,
LPCTSTR title, TWindow* clientWnd, bool shrinkToClient = false,
TModule* module = 0)
}
}
@@END_CLASS_INFO
@@START_VERSION_INFO
{
Project=tt1
Company=My
Author=Author
Copyright=
Target=tt1
}
@@END_VERSION_INFO
@@START_COMMAND_INFO
{
CM_MDIFILENEW
CM_MDIFILEOPEN
CM_FILECLOSE
CM_FILESAVE
CM_FILESAVEAS
CM_EXIT
CM_EDITUNDO
CM_EDITCUT
CM_EDITCOPY
CM_EDITPASTE
CM_EDITCLEAR
CM_EDITDELETE
CM_EDITFIND
CM_EDITREPLACE
CM_EDITFINDNEXT
CM_CASCADECHILDREN
CM_TILECHILDREN
CM_ARRANGEICONS
CM_CLOSECHILDREN
CM_HELPABOUT
}
@@END_COMMAND_INFO
@@START_DIALOG_INFO
{
}
@@END_DIALOG_INFO
//========================================================================
@@START_CLASS_INFO
Group describes all classes in current project.
@@START_VERSION_INFO Group describes User defined
version Info for current project.
@@START_COMMAND_INFO Group describes Commands existed in current
project.
@@START_DIALOG_INFO Group describes all dialog,
with controls, it have to work in pair with resource editor, but because this luxury is
not exist, you need do resource rescan to see new control or command.
Class description:
ClassName{
// Name of class
hsource=somefile.h
// *.h file where class declaration exist
cppsource=somefile.h // *.cpp file
where class implementation exist
ClassType=CWE12
// Class flags
BaseClasses=TMDIClient, // Base
class
Constructor=Ttt1MDIClient(TModule* module = 0)
// Constructor
Commands{
CM_MDIFILENEW=CmFileNew|
//
Each line consist: CommandId=Command Handler|Command Enabler Handler
}
Virtuals{
void Paint(TDC& dc, bool erase, TRect& rect)
}
Events{
EV_WM_CLOSE=WM_CLOSE,void EvClose()
}
}
ClassType -
C - class,
S-structure,
W-derived from TWindow,
E - derived from TEventHandler,
A - derived from TApplication,
D- derived from TDialog,
T - derived from TControl,
V -Doc/View,
1 - Common Base classes for Deriving from.
2 - Classes usually used in program: like TRect, TPoint ats.
3 - Classes Less used in program
4 - Common control and Windows structures.
5 - Seldom used classes or advanced classes
6 - Internal, reary used or more advanced classes.
Commands - Syntax ID=CommandHandler|CommandEnabler
Events - Syntax
EventOWLName=EventWindowsName,EventId,EventHandler
Main Data file located in the same location as owlclx.dll. Typically it will be C:\Programm
Files\Microsoft Visual Studio\Common\MSDev98\AddIns
It have the same structure, some additional info, readed once, and have name
owlclx.clx.
Local file have the same name as the project (*.dsp) and extension .clx
2) This version of OWL ClassExpert can to do:
a) Add new class.
b) Add new virtual function, or override from derived class.
c) Add new command,Command Enable or Message Handler.
d) Insert code for creating class (Use class)
e) Parse existing code and create Local data file from any file, not
always work.
f) Parse ClassExpert enabled files: tagged parsing, usually work well.
g) Parse resource files and create Resource info, usually works well.
3) Installing. In zipped file you will find InstallShield installation. Unzip it in
some directory and run setup.exe.
Yura