[FR] [IT]


NEW FEATURES of FutureBASIC 4 Release 3

Contextual Menus

Right-click or Control-click to bring up a context sensitive menu in the edit window. This menu displays the clicked word and allows you to display it in the Find/Change window or locate its original definition. You may also search FutureBASIC's built-in help system for key words or look on the web for Apple's toolbox calls. Finally, you may copy selections to the clipboard.

Press release:
Paris, 1/04/2006

[return to top]

Thumb Scroll

I'm not sure why we call it the thumb scroll [a.k.a. the scroll wheel]. We don't move it with our thumbs and it doesn't look like a thumb on the screen. But the new editor still supports that scroll thingy that is located on your mouse. If you don't have a horizontal scroll wheel thingy, you can hold down the shift key and your vertical thingy becomes a horizontal thingy.

[return to top]

History button

The History menu is history. Now there is a "Backup Up The Choo Choo Button." [That sounds so much more interesting than a "History" button.] It is also much more sparffy than the old menu item and even supports the use of the F1 function key as a transport key to quickly back up your history choo choo to the last place you caboosed your code.

[return to top]

Font Preferences

A new font preference pane has been added. It provides the ability to modify fonts that were heretofore unheard of. For instance, you could select remarks, quoted strings, and labels and reset the font size of those three items to 14 points. You could change all font faces to plain without affecting the sizes or colors. It's really cooler than ten cool things. You really need to open your prefs and give this Font tab an exploratory click.

[return to top]

Runtime Edit Menu Mod.

The way the Edit menu works in all applications has changed. This was done to keep pace with changes made in OS X. It may require modifications in your program if you have created your own custom Edit menu.

Your Edit menu should now contain both an Undo and a Redo item. Without these items, it will not work properly.

This simple demo shows how to use the new menu.

/* Demo of new edit menu */
edit menu 2
window 1
text _sysFont, 12
edit field 1, "edit field", (20,20)-(300,100)
long if (system( _sysVers ) >= 1030 )
  appearance button 2,,,,,, (20,120)-(300,220), ¬
  def SetButtonTextString( 2, "EditUnicodeText control" )
  edit field 2, "another edit field", (20,120)-(300,220)
end if
until 0

[return to top]

Editor Tweaks

  • If you added a bookmark to the end of a file, it could not be hilited and it was therefore impossible to add additional lines after the bookmark.
  • Lower case descenders were chopped off in printouts.
  • The Recent Items menu has been reworked and repaired.
  • Mouse clicks now work at the beginning of a bookmark line or a graphic line.
  • Many repairs were made to the help system. The Help menu was reconfigured.
  • The tiny debug display window used for Def DebugString and Def DebugNumber looks out for documents and now moves out of the way so that you can see what is being displayed. We also added Def DebugRect. [Duh! What took us so long to think of that one?]
  • There was a tiny, one pixel bar that I like to think of as the pixel pit. It lived just under the toolbar and if you accidentally clicked there when reaching for the function or bookmark menu, your code would jump back to the first line. If I knew one of those fancy French words I would throw it in right here as an indicator of my frustration level when I am faced with this anomaly, but well… I'm a redneck.
  • When files were sent over the web or stuffed by almost any version of Stuffit, they would lose their file type and creator. When this happened, there was no way to open them in FB unless you had a resource editor that would repair the problem. FB now opens files based on their suffix (i.e. .incl, .proj, etc.).
  • Files that had a quote mark in their name could not be compiled. Hhmph.

[return to top]

Better, Faster

We always see to find a bit more speed for you. This release is no different:

  • Dynamic arrays are a zillion times faster.
  • The profiler has improved drawing speed.
  • The cfstring routines have faster unique string searches.
  • If I hold my breath between cans, I can drink an entire six pack in less than a minute.

[return to top]

Runtime & Compiler

We now support OS X traceback labels. This is almost the same thing as MacsBug labels in OS9. It should be a big help to you in spotting the area where your program crashed. Turn on traceback labels in the Debugger Preference Window pane.

[return to top]

Modern Art

There is a new Tlbx CoreGraphics.include file which gives us some very cool access to a bucket full of feed. To get a taste of this, follow this path:
Examples/** Donations **/Robert P's Favorite Examples/OS X folder/Quartz (CoreGraphics).

[return to top]

Rock of Ages

We have placed ResEdit in the trash and pulled the flush lever. In its place, we are now shipping Rezilla.

[return to top]

Late Breaking

There are many additions to the toolboxes and to the USR's and DEF's that did not make the Reference Manual. I thought that I might list some here so that you could be on the look out for them. The toolbox documentation can be found on Apple's web site. The DEF's and USR's are pretty much self-explanatory.

Preferences: The first set relates to saving items in a preference file. To use them, include [or drag into your project]: CFGregorianDate.incl and Subs DEF USR CFPrefs.incl.
Usr CFPrefsGetApplicationID
Usr CFPrefsGetBool(key as Str255, value as ^Boolean, default as Boolean)
Usr CFPrefsGetBytes(key as Str255, p as pointer, maxSize as long)
Usr CFPrefsGetDate(key as Str255, @value as ^double, default as double)
Usr CFPrefsGetDbl(key as Str255, @value as ^double, default as double)
Usr CFPrefsGetHandle(key as Str255, @value as ^Handle)
Usr CFPrefsGetHostName
Usr CFPrefsGetLong(key as Str255, @value as ^long, default as long)
Usr CFPrefsGetRect(key as Str255, value as ^Rect, default as ^Rect)
Usr CFPrefsGetStr(key as Str255, @value as ^Str255, default as Str255)
Usr CFPrefsGetUserName  Def CFPrefsRemoveKey(key as Str255 )
Def CFPrefsSetApplicationID(appID as Str255)
Def CFPrefsSetBool(key as Str255, setVal as Boolean)
Def CFPrefsSetBytes(key as Str255, p as pointer, size as long)
Def CFPrefsSetDate(key as Str255, setVal as double)
Def CFPrefsSetDbl(key as Str255, setVal as double)
Def CFPrefsSetHandle(key as Str255, h as Handle)
Def CFPrefsSetLong(key as Str255, setVal as long)
Def CFPrefsSetRect(key as Str255, setVal as ^Rect)
Def CFPrefsSetStr(key as Str255, @setVal as ^Str255)
Def CFPrefsSynchronize

Images: The previous set of functions used to load and handle image files did not address file specs records. They were only able to work from file names and volume reference numbers. A new set has been added that mimics the previous calls but substitutes the more modern file specs for the older volume reference numbers. These are located in Subs Image Files.incl.
Def GetImageSpecRect(fs as ^fsspec , rectPtr as ^rect)
Usr ImageSpecToPictHandle(fs as ^fsspec)
Def DrawImageSpec(fs as ^FSSpec)
Usr DrawImageSpecToGworld(fs as ^FSSpec)
Usr ImageSpecToTransparentPictHandle(fs as ^fsSpec)

Dynamic Arrays: Additions have been made to allow speedy insertion and deletion in dynamic arrays. See Jay's Arrays in the Donations folder for a complete set of instructions.
Def DynamicInsertItems(gMyDynamicArray, Where&, HowMany&, FillPtr&)
Def DynamicRemoveItems(gMyDynamicArray, First&, HowMany&, SavePtr&)
ElementSize& = Usr DynamicItemSize(arrayPtr&)

[return to top]

Closing Thoughts

Hurricane Katrina jerked a knot in my tail. For those of you who are not aware, we took a direct hit and were out of business for three months.
Even now, the only Internet connection that I can obtain is via satellite and my phone is a cell phone. There are no "hard lines" here for phones. I saw a story in the newspaper yesterday that said one of our sister communities would have water restored in six weeks. At the time of this writing, we are passing the seven month anniversary of the hurricane, so that means it will take something on the order of eight and a half months for those folks to get water to their kitchen sinks. (If they still have sinks… or kitchens.) I'm one of the lucky ones. I still have a house.

A lot of people think that Hurricane Katrina hit New Orleans. This is not so. New Orleans was flooded because of sub-standard levies. Hurricane Katrina hit Mississippi. The evening news likes to show you the devastation caused by the floodwaters in the 9th ward in New Orleans. I can drive for miles here and see nothing but slabs, swept clean and smooth, where beautiful, multi-million dollar brick homes once stood.

When Anderson Cooper of CNN was asked what impacted him the most out of all the stories he had covered he said that he had gone from house to house with a rescue team in Waveland, MS (a mile or two from me). The team found the bodies of a woman with a baby. The woman had evidently been trying to slip a life jacket over her baby in the hopes that she could push it out into the flooding torrent and it might somehow… somehow…

I guess what I am saying is that we need to look on this FutureBASIC thing as something that we do for enjoyment, or for profit. But I have learned in these past seven months that some things matter a bit more in life and some things matter a bit less. I thank each of you for the wonderful support that you have shown during a really demanding time.


  © 2000 Pix&Mix  
  All Rights Reserved

  FutureBASIC is a registered trademark of Staz Software, Inc and is used with permission.