Magma Systems Products and Services


Magma Editor DLL/VBX for Microsoft Windows

Introduction

The Magma Editor DLL/VBX is an edit control which provides a powerful al- ternative to the standard Microsoft Windows edit control. The Magma Editor (ME for short) is a line oriented text editing kernel which can be con- trolled by an application through a series of messages or through a high-level C-like macro language. You can think of the ME DLL as being a "BRIEF in a box".

The editor kernel provides the following features and enhancements over the standard Windows editor control :

- The size of the text is limited by the amount of memory Windows can globally allocate. On the other hand, the standard Windows edit control is limited to 64K of text.

- Regular expression search and substitution

- Various block operations. Line marking, column marking, block marking, and discontiguous line marking.

- Keyboard macros

- Messages to read and write to files.

- More varieties of cursor movement. Ability to jump to a specific line, and to set bookmarks in the text.

- The ability to be in overstrike as well as in insert mode.

- Owner-drawn lines. You can draw out a line with different fonts and efects, and even do syntax highlighting.

The editing DLL is an editing kernel with no real associated user interface built in (no menus, few dialogs). It is based on the theory of the client/server model, where the editor is a "server" of editing functions. You can attach different user-interface related clients around the editor. It can be a control within a dialog box, it can function as a child window, or it can be a full-featured programmer's text editor.

The source code for the editor kernel is available at a reasonable price, so that you can modify and customize it for your own purposes.

It is our plan to release different user-interface shells (clients) around the editor DLL. The first shell we have written, the one which you see in MEWIN.EXE, was written in C using the standard Windows API calls. We also have classes for the Microsoft Foundation Classes, Borland's Object Windows Library, Inmark's zApp, and Microsoft's Visual Basic. The source code for all of the classes is available for downloading from the Magma Systems BBS or from various conferences on CompuServe. However, you need a copy of the editor DLL in order to use these classes.

LIMITATIONS OF THE LITE VERSION

The version of the editor DLL and VBX which is available for downloading is the Lite version. The Lite version of the Magma Editor DLL is limited to 300 lines of text. The full version of the DLL has no limitations whatsoever.

Future Enhancements

- Formatting support. Multiple fonts, bolding, italicizing, etc.

- Ability to merge images (The above two enhancements will be ready by the middle of October 94)

- OCX versions

- Integration with a full 'C'-like scripting DLL. (The DOS version of the ME Programmer's Text Editor had this feature.)

- Various modules which can hook into the scripting engine :

    communications
    report writing
    mainframe access

The CMagmaEdit Class

The CEdit editor class from the Microsoft Foundation Classes (MFC) has a limitation in that it cannot edit more than 64K bytes of text. The Magma Editor DLL overcomes this restriction by allowing you to edit text as large as the memory which Microsoft Windows will globally allocate.

We have created a new MFC class called CMagmaEdit which is inherited from the CEdit class. Most of the editing operations which are supported by the CEdit class are also supported by the CMagmaEdit class. In addition, the Magma Editor DLl has the following features :

- Regular expression search and substitution

- Various block operations. Line marking, column marking, block
  marking, and discontiguous line marking.

- Keyboard macros

- Messages to read and write to files.

- More varieties of cursor movement. Ability to jump to a specific line,
  and to set bookmarks in the text.

- The ability to be in overstrike as well as in insert mode.

The CMagmaEditView Class

The CEditView class from the Microsoft Foundation Classes is used as a wrapper around the CEdit class in order to create text editing windows which contain more capabilities than the standard CEdit class offers. For example, using the CEditView class, you can easily build an MDI-based text editor which incorporates search-and-replace and printing.

The Multipad sample application is a good demonstration of the CEditView class. In a few lines, one can build a full MDI-based text editor. We have enhanced Multipad so that it uses the CMagmaEditView and the CMamaEdit classes. We have also enhanced Multipad so that more information is displayed in the status line.

Using the CMagmaEditView class instead of the CEditView class is as easy as substituting the string 'CMagmaEditView' for 'CEditView'. The only change which we originally made in the Multipad source code to use the CMagmaEditView class was in the following statement :

	AddDocTemplate(new CMultiDocTemplate(IDR_TEXTTYPE,
		RUNTIME_CLASS(CPadDoc), RUNTIME_CLASS(CMDIChildWnd),
		RUNTIME_CLASS(CEditView)));

               was changed to

	AddDocTemplate(new CMultiDocTemplate(IDR_TEXTTYPE,
		RUNTIME_CLASS(CPadDoc), RUNTIME_CLASS(CMDIChildWnd),
		RUNTIME_CLASS(CMagmaEditView)));
                              ^^^^^^^^^^^^^^

We have enclosed the full source code to the CMagmaEditView and CMagmaEdit classes. The files of interest are MAGMAED.CPP and MAGMAED.HPP. You may feel free to enhance these files, but if you do, we at Magma Systems would appeciate hearing about any good changes you made.

The OWL TEdit class

The TMagmaEdit family of classes are replacements for the TEdit family of classes which comes with OWL. The OWL TEdit class is only capable of edit- ing 32K of text. In fact, the edit.cpp source code always sets the maximum number of characters in an edit control to 30,000. The new TMagmaEdit clas- ses will let you edit an unlimited amount of text. In addition, you can use all of the new capabilities of the Magma Editor DLL.

To use these new classes in your OWL application, you generally need to do only two "search-and-replace" operations. They are :

  - Use the new include files. Use MEDT.H, MEDTFILE.H, MEDTSEAR.H and
    MEDTVIEW.H in place of the existing EDIT.H, EDITFILE.H, EDITSEAR.H,
    and EDITVIEW.H files.

  - Substitute the word 'TMagmaEdit' for 'TEdit' in your source. This
    should take care of the four new classes, TMagmaEdit, TMagmaEditFile,
    TMagmaEditSearch, and TMagmaEditView.

When you link your application, make sure to use the MEDITOWL.LIB library. Also, make sure that MAGMAED.DLL is in a directory which Windows ordinarily searches in order to locate DLLs.

Ordering Information

ME Editor DLL for Win 16, single developer's license      $249 US
ME Editor DLL for Win 32, single developer's license      $249 US
ME Editor DLL for Win16&32, single developer's license    $399 US

ME Editor DLL source code for Win16                       $450 US
ME Editor DLL source code for Win32                       $450 US
ME Editor DLL source code for Win16 & Win32               $600 US
(for the source code, you must have a developer's license
  for the corresponding platform)

Magma Scripting Engine and                    contact us for details...
  support modules

Please include $5.00 for shipping and handling within the United States, $10 Canada, $30 Europe, and $40 Asia and Pacific. $5 UPS COD charge.


Software UNO White Paper Demos News Feedback
If you have any questions or suggestions about this web site please contact:
webmaster@uno.com
Copyright 1997 Software UNO Ltd.