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

 


Copyright © 1998-2001 Yura Bidus. All rights reserved.