Previous | Next

Overview

Quick Start

Applescript

Download

Licensing

Revisions

Future Directions

I

Revisions

Version 1.0.0a1

There aren't any yet, since this is brand new. :-)

Version 1.0.0a2

7/21/99 at 4:27:20 PM

  • Updated for CW 5

  • Added asserts to everything in WTextView and WText we want that fast. This stuff compiles out at runtime.

  • Multiple undo was not working in all cases, it now is. I, Timothy Paustian, had to call the correct functions for Undo and Redo to get this to work. when selecting with the cursor and moving left, turns it off. This may be a WASTE problem, nope. It was a problem with continuous styles during this call I was switching the selection. When you do this, WASTE reorients the anchors and this causes the switching of anchor point from start to end.

  • Fixed memory leaks. The major one being in reading a file. Empty, unallocated handles should be passed to LHandleStream I was passing allocated, 0 length handles.

  • Scrolling fixed, it was a problem with GetViewRect really returning the dest rect.

  • Hiliting of selection during click loop wasn't working. Fixed. Some kind of focus problem During a call to checkScroll I was saying the view was out of focus due to the movement of the image vs.. the frame. This is fine, but then I need to focus the view right away otherwise WASTE can't draw correctly.

  • Added TSM support

  • Apple Script problems fixed. The object model was changed dramatically.

  • Printing works now.

  • Debug menu fixed.

  • All targets now compile.

  • There was a problem when you have more than one window open, buttons don't draw right. I think this is a shared resource problem Turned out this is a Appearance manager problem. The bug was fixed by Using PicHandles and loading from a resource. I keep the resource around during the use of the application. I need to add a reference counter that deletes the stuff, when no one is using it.

  • Added navigation services to app

  • Memory leaks cleaned up.

    Cleaned up the apple script code some more there were some nasty stale handle problems with mTextHandle. I just got rid of this and it simplified things some more.

  • 68k bug in applescript fixed. This turned out to be a bug in WEAccessors.c The variable info was being passed to _WEGetIndStyle and since the public and private definitions of the WERunInfo struct are different, it was causing a memory overwrite. Here is the fixed routine. Be sure check your WASTE release and fix this if it is not. At the time of this writing the 2.0a6 version of WASTE still had the bug.

    pascal void WEGetIndRunInfo(SInt32 runIndex, WERunInfo *info, WEHandle hWE)
    {
    	//	the internal WASTE 2.0 definition of WERunInfo has some extra fields
    	//	not found in the public headers, so we have to be careful and copy
    	//	only the number of bytes expected by our clients
    	WERunInfo runInfo;
    	
    	_WEGetIndStyle(_WEPinInRange(runIndex, 0, (*hWE)->nRuns - 1), &runInfo, hWE);
    	BlockMoveData(&runInfo, info, sizeof(WERunInfo) - 4);
    }

    Note, this bug is now fixed in versions of WASTE after 2.0a8

Version 1.0.0a3

10/22/99 at 9:27:17 PM

  • Made the wrapper backward compatible with WASTE 1.3 by using preprocessor directives

  • Fixed WTExtView::FocusDraw() so that it no longer messes up the margins.

  • Cleaned up some apple script code.

Version 1.0.1

  • Carbonized. It will launch on OS X, but there are some problems with the demo application that I have not tracked down. The wrappers are fine however.

  • The demo application was completely rebuilt from scratch. This should make it easier to get a simple compile of the demo project.

  • The printing code is fixed.

  • Fixed a bug in HandleKeyPress causing command-left arrow and command-right arrow to be swallowed.

Version 1.0.2a1

9/19/01 at 9:00:00 PM

  • David Phillip Oster takes over maintenance.

  • Web site run through a spell checker.

  • Web site moved to Source Forge.

  • License made more liberal.

Version 1.0.3a1

10/11/01 at 1:00:00 PM

  • Demo app now has a seperate project document for Codewarrior Pro 7 with PowerPlant 2.2, and one for Codewarrior Pro 5 with PowerPlant 2.1

  • AppleScript now allows you to refer to parts of the document, as in "selection of document 1". Before, only "selection of window 1" was supported.

  • Many appleEvents that operated on the selection were broken for the past few versions. They have now been fixed.

Version 1.0.3a2

1/14/02 at 14:40:00 PM

  • A few places where the code was incorrectly evaluating boolean expressions have been fixed.

  • Sample project has been updated for the Codewarrior Pro 7.1 update release of PowerPlant. (but the Pro 5 project still works.)

  • Changed miscellaneous suite apple event dictionary, so that commands like revert and paste aren't expecting a direct object. These appleEvents do the same thing as their matching menu commands.

  • Richard Buckle <mailto:richardb@sailmaker.co.uk> <http://www.sailmaker.co.uk/> provided the following fixes: // -- Begin Richard Buckle

  • Broke out the CTYP and PowerPlant action strings into separate resource files.

  • Renumbered the PowerPlant action strings outside the 128-256 range.

  • Worked around problem with PowerPlant: PowerPlant doesnıt always behave properly when moving a view into another superview (such as an LPlaceHolder) and then back again. Speaking loosely, the bug occurs when the view to be moved is ³big² and scrolled so far that its image topleft is out of QuickDraw space.

    See comments in WTextView::SavePlace() and WTextView::RestorePlace() for details, but the short answer is that mPortOrigin gets clipped halfway thru the machinations and therefore doesnıt get restored properly.

    Implemented WASTE 2.0 printing APIs.

    It is all controlled by the macro DO_WASTE_2_PRINTING.

    If for some strange reason you donıt want WASTE 2.0 printing then simply say:

    #define DO_WASTE_2_PRINTING 0

    in your project prefix header.

    The macros are smart enough not to try to use WASTE 2.0 printing if you donıt have WASTE 2.0a7 or later.

    To see how much better WASTE 2.0 printing is, try printing a multi-page WTextView field to PDF using James Walkerıs excellent driver with and without WASTE 2.0 printing. Then scroll around between pages in Acrobat Reader in continuous view. Even on a G4/450, I can see Acrobat Reader rendering each page (except page 1) twice without WASTE 2.0 printing!

  • Other Printing stuff

    If configured not to use WASTE 2.0 printing, offscreen drawing is disabled for the duration of the printing. Otherwise WTextView objects that have offscreen drawing set will produce the font at 72dpi overstruck with the font at printer dpi ‹ very ugly, especially on PostScript printers!

  • Made WTextView::CopyIntoNativeH() const.

  • Added WTextView::GetForeAndBackColors(RBBColor*, RGBColor*) const.

  • Added WTextView::GetSelection(AEDesc&) const so that contextual menu plug-ins can see the selected text.

  • WTextView::SetTextSelection() now calls FocusDraw() before proceeding, since there are many circumstances when it can get this message without having the PowerPlant focus.

  • WTextView::FocusDraw() now sets the background pattern to white, to handle WTextViews in MacOS X windows that have the striped aqua background ‹ or any other background brush pattern that Apple might use in the future.

    // -- End Richard Buckle

Version 1.0.3a3

4/22/02 at 6:45:00 AM

  • The precompiled headers are now built into the Output folder, which makes it easier for me to package this up to put on the web site: I can just dump the Output and Data folders.

  • I've added "using" declarations to the header for WTextView, so, if you inherit from it, you can say:

    WTextView::Click(myMouseDown) and have the correct method be called. Richard Buckle pointed out the problem.

  • The copy constructor now calls InsertText with arguments in the correct order. Olivier Destrebecq pointed out the problem.

  • Olivier Destrebecq fixed a potential infinite loop in WTextModel::CountSubModels().

  • If a throw occurs during the constructor, the print panels array or the WEReference could leak. WTextView now handles these situations correctly. Florent Pillet pointed out the problem.

  • // -- Begin Florent Pillet:

    I moved InitTextView() to FinishCreateSelf(). The reason for that is that if you derive a class from WTextView (this is what I do), and override some virtual methods, any virtual method called from a method that is called during construction goes to the base class's method, not the derived class' (this is the standard). Also, I added missing initializers in all the constructors. I fixed a problem when clicking the text field and it was not the target, the cursor position was set to the beginning of the field instead of the point that was clicked. See my comments in the "ClickSelf" method.

    // -- End Florent Pillet

Version 1.0.3a4

  • I've moved the "using" declarations to public section of the header for WTextView, because the underlying methods are public, not protected.

  • I've upgraded to a newer version of WASTE, which fixes some bugs.

    For example, the Carbon target wasn't accepting an initial large paste, although drag is OK. This is now fixed.

Version 1.0.3a5

9/17/02 at 2:45:00 PM

  • Most important: I've revised the incremental spelling checker plug-in so it uses the new OS X 10.2 Cocoa plug-in initialization call if that call is available. This fixes a number of problems with WTextView programs that use the incremental spelling checker.

  • I Made WText copy constructor protected, since WTextView's copy constructor calls it.

  • I've upgraded to a newer version of WASTE.

  • fixed a bug where, with a sequence of forward arrow key presses, or with a sequence of backward arrows, the font/size/style menus weren't being updated when we crossed into a new text run.

  • fixed a bug in WTextView::StyleCheck(), where a byte was being compared to an int incorrectly.

Thank you to: Gabriel Nivasch and Terry "fastdeluxe" for bug reports.

Originally by Timothy Paustian. Last modified September 17, 2002. Contact David Phillip Oster <mailto:oster@ieee.org>.