ModuloPi
Review by John Johnston Hilites tips
http://modulopi.free.fr/
ModuloPi or MPI is an alternative Runtime Editor(RTE) for SuperCard. MPI is the creation of Stéphane Leys who designed a lot of SuperCard's own RTE. Stéphane is also responsible for the Property Inspector in the Utilities menu of the RTE.
MPI consists of a toolbar palette which contains the 'standard' menus as popup menus and a series of 'modules' projects in there own right which are editing palettes for SuperCard.
The Toolbar replaces the functionality of the RTE menubar allowing your projects to use their own menus. A bit like having the RTE set to pal.

focus, updating, speed...
ModuloPi constantly updates the various modules to the selected object, or card. Select an object and all the open modules are updated. Choices that are not available for the object(s) selected are automatically disabled.
Stéphane says: 'It's a bit like a tool box which continually watches what you are doing and automatically open the hammers drawer if you are holding a nail and the screwdrivers drawer if you are holding a screw.'
The names on the modules buttons and labels use the standard SuperTalk reserved names, this is a big help when learning scripting, constantly being reminded of the key names, using MPI is a tutorial of properties names. An even more useful aid is that shift-clicking lablels and buttons in the modules opens the SuperCard Language Guide at the appropriate entry.

As MPI uses SuperTalk, you would imagine this could slow things down a bit, but it has been scripted to avoid some of the most common speed traps, having the font menus only update on popping the menu, closed modules are ignored, and the update happen on idle. This makes it pretty fast, even on my now ageing G3 350, I imagine it would be amazing on a modern G4. The fact it updates on idle stops MPI interfering with the normal run of things, you don't have a lag waiting for the palette to update.

The Toolbar
screenshot
The toolbar replaces the RTE's menus. While menus are a standard interface element, there are good reasons for not having them in a 'Runtime' development tool. If you use the RTE in its standard form with menus, you have problems with the RTE menus conflicting with your projects menus. Both your project and the RTE may have menus with the same shortcut, with slightly different scripts, type the shortcut which menu item gets hit, yours or the rte's? Open the RTE, open your project, you may now have two full sets of menus. Close the RTE and your menus go too. With MPI if you don't have menus MPI catches say command-C and copies. If you have a menu item in your project with command-C short cut it will get command-c, but you can still use MPI's copy by selecting the menu item from the toolbar menu.
you can of course run the RTE in 'pal' mode, but then some menu short cuts don't work. MPI solves this problem very nicely indeed.
screenshot

screenshot
The First item on the toolbar opens the about box.
The Next two menus on the tool bar are pretty standard File and Edit menus. The most interesting item here is the ModuloPi Preferences, this lets you choose to start either the RTE or MPI when you start SuperCard. It also lets you assign one or more module to function keys, Not only is it this useful, it uses a pretty nice interface for adding and removing modules from sets. The interface uses DragAndDrop, drag module names from the field on the left to the field on the right to add them to an F-key, drag then up and down this field to reorder or reassign them. A very nice piece of scripting I think.
I have one set f13 with all the module in it, this will close all the modules I have open at any time, leaving just the toolbar.
The next popup is the Modules one, this lists and opens all of the modules of MPI, these will be described briefly below.
The Modules menu is followed by a Utilities one which lists three projects in the RTE Utility folder: the Language Guide, Xtend and the Resource mover.

There is then a popupArrow Button, this toggles the two modes of the Toolbar. The mode in the screenshot above has be carefully scripted to give a true mac menubar experience in a palette. MouseDown opens a menu but if you mouse out of the menu into the next one it opens and the one you were in closes. The other mode uses standard popup buttons for menus.

The Anaesthesia checkbox, if checked lets you edit a proj, dead in the water, with no messages reaching it, rather like SuperEdit. Being a runtime type, I don't really use it, but it should please some folk who liked the old SC 3.6 Project Editor.

MPI's Modules

The Tools Modules
There are 2 versions of the Tools palette with MPI; a tall slim one, and a smaller horozontal one. I use the tall narrow one. Each palette consists of 3 cards, Buttons, graphics and fields. One each card the SC objects are visible. Clicking on them sets the tool of the top SC window. This is pretty much like the top part of the standard RTE tools, two things make a difference:
1. the objects on the mpi palette are real objects, apple updates an object and mpi doesn't miss a step. Switch to classic and the objects switch.
2.The big improvement is dragAndDrop, you don't need to choose a tool and drag out an object, just dNd the object off the palette.

Of course you can also just click an object on the Tools Module and draw an object as usual.

PI Module
screenshot
The heart of MPI, this is at first sight pretty much the same as the Property Inspector that ships with SC. I think Stéphane must have done a lot of work on the PI since the RTE shipped, The 'PI Module' feels much faster and more responsive than the RTE. Click on an object and the card reflecting its properties opens. If the PI is closed double clicking with the pointer tool opens it.

screenshot
On most of the cards there are extra features over the RTE Property Inspector, e.g. the card and background cards have a cluts button. A really nice feature I have just discovered, when hitting Enter or Return to set the name of a button, holding the shift-key down will set the show name to true at the same time. You start getting used to this sort of attention to detail after using MPI for a while.

screenshot
A Nice feature on the window Card of the PI is the 'Register as template' button, this open a Window Template dialog, which lets you save a template for new windows. This links to the New Window submenu in MPI's File menu, where you can choose the style of your new window. Window Template Dialog Window [in a new window].
New Window menu item [in a new window].
newwindowmenuitem.jpg
Selecting multiple objects of the same sort will let you edit the common properties.
screenshot

Selecting multiple objects of different sorts takes you to the size card on the PI module, with fields to edit the common properties, and tools to size and align objects. Option clicking an object will also take you to the Sizes card, saving a trip to the Edit... popup.
screenshot
The Sizes card of the PI has several nice features, align buttons at the bottoms, with a distribute feature. And that odd looking pushpin at the top left of the palette. Sticking the pin into the palette keeps you on the Sizes card when you change selection, i.e. the PI doesn't jump back to the properties card for that type of object. Stéphane has made the pushpin into a visual joke and comment on tool icons.
screenshot

Anchordata module
screenshot
A small palette with which you can quickly set the anchordata of an object and set the autoresize of a background.
Like all of MPI's modules, this reflects the current selection and is updated as you select objects.
This is a much quicker way of editing anchordata than the RTE's dialogs, and easier to do that editing the raw userProp, in the UserProp dialog.
It is also the quickest way of understanding the complexities of AutoResize and Anchordata, make a project and play with the anchorData of some projects with this Module.

Browse module
A palette that lists the projects, windows, backgrounds and cards of all the open projects in four fields. Nice handles to resize the fields to get at the bit you want.
Again this reflects (and changes) the current focus of SuperCard. A lot of people should like this one, I don't use it a lot as my projects are usually small with a few windows and cards, but it would be very handy for the multiwindowed monster project.

Overview module
screenshot
This is a brilliant utility. It presents a overview of all open projects, their window, backgrounds, cards and objects in an expandable treeview. More than that Double clicking an items name allows you to edit it, control-mouseDown open a popup menu alowing you to Edit the objects Style, Properties, User properties and Scripts. This works for object that are not visible or are on cards or windows that are not open. Moreover you can copy object that are on closed windows or cards. Overview PopUp Screenshot [ in a new window.]

Color module
The reflects and set the various colour properties of SC objects, fillfore, fillback, penfore etc. through popup colour selectors. It also has popups for changing the ink and themes of object. I find this a lot clearer than the RTE colour tools were I always seem to click on the wrong part of the palette. The module is also 'clut' aware which is another advantage over the RTE.

HSV module
MillionsOfColors module
These two modules do the same thing. A discussion on the SC list about using more than 256 colors in SC draw graphics lead to Lorenz Tschudi
http://homepage.sunrise.ch/mysunrise/ltschudi/SC/SC.html
sharing a method of setting the picturedata to a very small colored graphic chip, and providing a project to do it. Stéphane produced two modules based on this idea, the millions of colors one has a rgb slider and a hsv card, the HSV module just has hsv and is slightly smaller. As well as being a very useful tool, not available in the standard RTE or SuperEdit, the HSV module is a pretty good example of a standard interface scripted in SuperCard

Pictures module
screenshot
Another useful utility not built into the RTE, this one exports a screenshot of the card or selected object to the clipboard or a variety of file formats.

Sample module
Possibly the most useful module of all, this one shows you how the modules work, allowing you to make your own. Trouble is Stéphane has covered a lot of areas already, you will have to think a bit about features to add.

Text module
screenshot
A wonderful example of Stéphane's minimalism, so much functionality so little screen space. A popup with Font, size style etc. submenus, and a colour popup to colour text. Fast and straightforward. As usual the menu reflects the current selection when popped, putting a bullet before the current font, style etc.

Uprops module
It took me a while to realize the worth of this one, with the standard shift-cmd-alt hover to open SuperCard's userprop dialog, I didn't think this module was needed, I was wrong, fast, a palette, but most importantly this module lets you copy several userprops and their content at once.

CustomPointerDown module
screenshot
I am not too familiar with working with polygons in SuperCard, so I am just reproducing MPI's help for this module:
This module allows moving and reshaping objects in real time instead of the built-in " ghost" equivalent features.
There are a few differences in the way the objects are handled and a few extra features.
• Rotations
Ctrl-click on one of the handles of a polygon or rectangle
Polygons are not distorted by repeated rotations as they are with the built-in rotate poly command
You may choose the rotation center from the popup menu. The advantage of the barycentre and the centre of gravity (vs the loc) is that they don't move when asymmetrical polygons are rotated.
Ctrl-click on one of the handles of an arc will rotate the arc without changing the arcangle property
Rectangles which have been rotated (and thus became polygons from SC's point of view) remain rectangular when resized later.
This behavior is canceled if :
- A point is added or removed using command-click
- the object is resized with the "select reshape"option disabled
• Constraints
Holding down the shift key limits draging and resizing to vertical or horizontal moves depending of the direction of the first move
Holding down the command key keeps the object square (if reshape selection is false)
• Setting the style of an oval graphic to polygon from the PI module will result in an oval polygon (instead of a rectangle with the built-in conversion)
• When dragging objects in a scrolling window, if the mouse is moved outside the window, the scrolling will be adjusted.
• Objects can't be dragged outside the rect of the background.
• Objects can't be reshaped to have an empty rect (which would cause error messages).

Here is a screenshot showing MPI and Native SuperCard rotation: in a new window.

Other Things

Keyboard Shortcuts
Control-Click a polygon puts it in reshape mode, command-click on an edge adds a point, command-click on a point removes it. Works on Graphics and buttons.

Control-Click a blank part of a window pops up a menu for changing the style.


Control-tab toggles pointer and browse tools. For someone from a HyperCard background, who used Tangerine
http://www.rareSoftware.com/
for editing SC 3.6, this one is very welcome.
Control-option-drag in a blank part of a window drags the window. Useful in OSX when the title bar is hidden by a palette or is off the screen. I used to like dragging a pre OSX window by its edges.

Editing palettes scripts these are very handy in getting round the topwindow focus.
• Option-click in a blank part of the card edits the script of the card.
• Command-click edits the script of the background
• Shift-click edits the script of the window
• Option-shift-click edits the script of the proj

Arrow keys move selected object of one pixel, shift arrow keys move them of 5 pixels, when no object is selected, right and left arrows go to next/prev card (the message box must be closed for using arrow keys)

Screen Space
One of the main concerns of MPI seems to be screenspace, it does a very nice job of keeping out of the way of your project on the screen. All the modules are designed to take up as little space as possible. The modular concept means you only need to have the modules you are using or are likely to use open.

In Conclusion
In the relatively short time I have been using it MPI has become essential to my SuperCarding. Currently version 1.5, MPI gets better every release, Stéphane is very open to feature requests (although he usually improves them in the process), and I know he is constantly working to improve this already great tool.
I am a big fan of the runtime, I like editing live, and often use the message box to do wee bits of editing. Previous to SC4 I used Tangerine
http://www.rareSoftware.com
as my main editor, I was happy that SC4 shipped with a RTE rather than the Project Editor, which was a brilliant bit of SuperCarding, but too complex for me.

I have been using MPI as my main SuperCard 4 editor since it came out, I would not go back to the RTE, I find MPI more intuitive, quicker and powerful. The improvement to modules and the overall speed and functionality have kept coming. I would recommend that any SuperCard user downloads it and tries it out.