realbasic-plugins
[Top] [All Lists]

Updating Plugins for REALbasic 2005

To: realbasic-plugins at lists dot realsoftware dot com
Subject: Updating Plugins for REALbasic 2005
From: "Joseph J. Strout" <joe at realsoftware dot com>
Date: Mon, 18 Apr 2005 10:41:04 -0500
Delivered-to: realbasic-plugins at lists dot realsoftware dot com
Getting your plug-ins up to speed with REALbasic 2005
-----------------------------------------------------

New control icons:
If you want your control icons to look good in RB2005, you will need to add some
additional resources to your RBX plug-in.  RB2005 uses 16x16 icons in the
control's list, and 32x32 icons in the (for future use).  So for
backwards compatibility, we suggest that you create these picture resources
in the same location as your old control picture resource (this would be in
IDE Resources \ Controls Palette).  If you defined your control's Pict ID to
be 128, then create a BMP called 128-small.bmp (16x16 icon), and
128-smallmask.bmp (16x16 icon mask).  Optionally, you can also create a BMP
called 128-large.bmp (32x32 icon), and 128-largemask.bmp (32x32 icon mask).
If none of these pictures are found, then we take the default BMP in that
directory (i.e. the same BMP we use in RB5.x) and scale it.

How your control shows up in the IDE:
In previous versions of RB, we'd call your Redraw function to draw the control
in the IDE, or it was a real control, it would just "show up".  However,
starting with RB2005, we now call your DrawOffscreen function first.  If you
have not implemented this, then we go ahead and call your Redraw function.
If you're using a real control and letting the system draw it, then you will
have to find some way of duplicating this in your DrawOffscreen function.


Dynamic access to all intrinsic classes (Dictionary, FolderItem, etc.)
will work as they did in 5.5. For plugin classes, however, there will
be some restrictions on what is possible inside the IDE.

- In PluginEntry, do not assume anything about the load order of
plugins. PluginEntry should be used mainly for registering classes and
initializing state inside of your plugin.
- REALLoadObjectMethod will not load any methods from the superclasses
of the class passed in if that class is a plugin class.
- REALInterfaceRoutine will return nil for plugin classes. You can use
REALLoadObjectMethod in place of this in version 5.5 and higher since
the compiler will enforce the type at compile time.
- If a plugin class has more than 4k (4096 bytes) of instance data, it
cannot be created via REALnewInstance.

Again, these limitations are only present in the IDE, not built
applications. If this doesn't cover some usage that your plugin needs,
we suggest considering limiting the functionality of your plugin in the
IDE. If you feel you require some feature that isn't working because of
the above limitations, please file a feature request.


--
,------------------------------------------------------------------.
|    Joseph J. Strout           REAL Software, Inc.                |
|    joe at realsoftware dot com       http://www.realsoftware.com        |
`------------------------------------------------------------------'
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

<Prev in Thread] Current Thread [Next in Thread>