home *** CD-ROM | disk | FTP | other *** search
- #ifndef _MMLEXUS_HPP
- #define _MMLEXUS_HPP
-
- #include "mtdef.hpp"
-
- class MetaObject;
- class MMReferenceNode;
- class WStringList;
- class DTFormEditBase;
- class MTPropertySheetBase;
- class DTWForm;
- struct MMLibraryData;
- struct MMPropertySheetThunk;
- struct MMFunctionData;
- class DTRegistryKey;
- class DTCodeBlockBase;
- class MTImageInterface;
- class MMPropertySheet;
-
- class DTObject;
- class DTWObject;
-
- class MetaObjectHashTable;
-
- // MMLexusInterfaceBase:
- // this class represents Lexus to CompDll
-
- typedef WBool WCMDEF (*EnumDTFormCB)( DTObject *form, void *userdata );
-
- class IFormEditor;
- class IControl;
- struct MMFormInfo {
- WString name;
- WString fileName;
- IFormEditor *iFormEditor;
- const IControl *iControl;
- };
- struct MMControlInfo {
- WString instanceName;
- WString className;
- IControl *iControl;
- };
-
- class METADEF MMLexusInterfaceBase : public WEventGenerator {
- public:
- enum Sheet {
- TabControlEdit,
- GridProperties,
- PictureProperty,
- };
-
- enum ClassType {
- CT_OleServerObject,
- CT_OleInterface,
- };
-
- enum ViewWindow {
- VW_Classes,
- VW_Files,
- VW_Objects,
- VW_Resources,
- VW_ObjectInspector,
- VW_Targets,
- };
-
- enum LoadOption {
- LO_Load, // Load the form if required
- LO_Check, // Don't load the form -- just check
- };
-
- enum MacroName {
- MN_JavaToolsClassPath,
- MN_JavaClassPath,
- MN_PowersoftClassPath,
- MN_PowersoftClassPathAWT102Debug,
- MN_PowersoftClassPathAWT102Release,
- MN_PowersoftClassPathAWT110Debug,
- MN_PowersoftClassPathAWT110Release,
- MN_SunClassPathAWT102,
- MN_SunBinPathAWT102,
- MN_SunClassPathAWT110,
- MN_SunBinPathAWT110,
- MN_MicrosoftClassPathAWT102,
- MN_MicrosoftClassPathAWT110,
- MN_SunJDK102,
- MN_SunJDK11,
- MN_MSSDK15,
- MN_UserClasses,
- MN_UserClasses102,
- MN_UserClasses11,
- MN_SunImbeddedClassLib,
- MN_GlobalClassPath,
- };
-
- public:
- virtual void OpenViewWindow( ViewWindow window ) = 0;
-
- virtual WBool ShowConsole( WBool visible ) = 0;
-
- virtual MTPropertySheetBase * MakePropertySheet(
- Sheet,
- const MMPropertySheet * ) = 0;
-
- virtual DTFormEditBase * FindForm(
- DTObject * dttabctrl,
- const WString &,
- WWindow *parent = NULL,
- WTabControl *tc = NULL ) = 0;
-
- virtual DTFormEditBase * CreateTabForm(
- DTObject * dttabctrl,
- WString &formName,
- WString &className,
- WWindow *parent,
- WTabControl *tabcontrol ) = 0;
-
- virtual WBool GetImage(
- DTObject * obj,
- const WString & name,
- WBitmap & bmp,
- WIcon & ico,
- WCursor & cur,
- const WSize * size=NULL ) = 0;
-
- virtual void GetImages( DTObject * obj,
- const WString & type,
- WStringList & icons ) = 0;
-
- virtual void EnumDTForms(
- EnumDTFormCB rtn,
- void * user ) = 0;
-
- virtual DTFormEditBase * GetSelectedForm() const = 0;
-
- virtual void GetFormList( WArray<MMFormInfo> &list ) = 0;
- virtual void GetControlList( IFormEditor *form,
- WArray<MMControlInfo> &list ) = 0;
- virtual DTObject * GetControlDTObject( IControl *control,
- LoadOption option = LO_Load ) = 0;
-
- virtual WFilePath GetFormFilePath(
- DTObject * form ) = 0;
-
- virtual WFilePath GetFormFilePath(
- DTFormEditBase * dtform ) = 0;
-
- virtual void ObjectSelected(
- DTObject * obj ) = 0;
-
- virtual DTRegistryKey * GetRegistryKey() = 0;
-
- virtual WBool ValidateIdentifier( const WString & str,
- WString & message ) = 0;
-
- virtual WBool NotifyView( long event ) = 0;
-
- virtual WStringArray GetClassList( ClassType, DTObject * ) = 0;
-
- /* Start the tab editor. Invokes FormEdit::StartTabDlg on
- the given formedit and the control container.
- */
- virtual void StartTabDlg( DTFormEditBase*,
- DTObject* container = NULL ) = 0;
-
- /* Start the menu editor. Invokes FormPaint::StartMenuDlg on
- the current formedit's form painter. The menuClass string
- is the name of the menu component's class that should be
- instantiated if there isn't a menu already on the form.
- */
- virtual void StartMenuDlg( const WString & menuClass ) = 0;
-
- /* If you have a hot key control, and you don't want Power++ to
- pay attention to the keys you press, turn stifling off. Just
- turn it back on when you're done.
- */
- virtual void StifleGlobalAccelerators( WBool onOff ) = 0;
-
- /* The image interface allows you to get resource images
- */
- virtual MTImageInterface * GetImageInterface() = 0;
-
- /* Expand a macro using the CmdLine class on the Lexus
- side. Ex.: foo->ExpandMacro( "$(debug)", val )
- */
-
- virtual WBool ExpandMacro( const WString &name,
- WString &buf ) = 0;
-
- /* Get the macro name that corresponds to the given enumeration.
- Basically just maps onto the list in lexus\hpp\cmdline.hpp.
- */
-
- virtual WBool GetMacroName( MacroName name,
- WString & str ) = 0;
-
- /* Get the lexus shepherd window.
- */
- virtual WForm * GetShepherdWindow() = 0;
-
- };
- #endif // _MMLEXUS_HPP
-