FTC 3.1.7

black-fountain-penToday we released version 3.1.7 of Formatted Text Control (FTC), our word processor control for Xojo.  This is a maintenance release and is recommend for all users.  It is a free update for all version 3 license holders.

License holders should get an email from the BKS FileShare system.  If you don’t get an email, please contact us.

Changes in this release:

  • Fixed issues with Unicode Hyperlinks
  • Fixed Windows Compiler Issue
  • Fixed HIDPT coordinates issue issue with ConstructContextualMenu event handler
  • Added ability to detect Windows HiDPI (requires Xojo 2016 R2 or better.
  • TextInputCanvas plugin rebuilt to be 64 bit compatible.
  • Spell Checker demo plugin rebuilt to be 64 bit compatible

The Formatted Text Control is a canvas based control for Xojo that implements word processor capabilities similar to Apple Pages or Microsoft Word. The FTC is a canvas (technically Text Input Canvas) subclassed control  for Xojo that allows you to instantly add word processing capabilities to your applications.  More information, pricing, and demo at http://www.bkeeney.com/formatted-text-control/

 

Formatted Text Control 3.1.1

We released a new version of the Formatted Text Control today.  Version 3.1.1 is a general release after a long beta period.  This version finalizes the special key handling required by the new Text Input Canvas plugin as well as fixes a host of smaller issues that popped up because of using the new plugin.

For those that aren’t familiar with the Text Input Canvas, it’s the only way for canvas based controls to get the proper key input from the operating system in Cocoa applications.  In Carbon applications Apple Text Services from the Mac OS provided a lot of extra information but in Cocoa that information is only available to text handling controls.  Canvas based controls do not get that benefit so Xojo had to create and provide a plugin to do that.  With the plugin, special characters now input properly (such as é, ü, ç) as well as all of the odd keyboard handling key combinations (shift up/down/right/left arrows) now work.

FTC works in Xojo applications built for Mac OS X (Cocoa) and Windows.  Some users have gotten it to work in Linux but it is unsupported.  Version 3.0 and above work only in Xojo.  Real Studio developers should stick with version 2.

Version 3.1.1 is a free update to any version 3.x license owners.  An email going out from the FileShare system should already be in your inbox telling you about the new versions.

The Formatted Text Control costs $150 and comes with full unencrypted source code upon purchase.  Version 3 is a paid upgrade to version 1.x and 2.x version owners.  If you do not already have an upgrade coupon please contact BKeeney Software support.

More information regarding the Formatted Text Control may be found at http://www.bkeeney.com/formatted-text-control/

 

Formatted Text Control 3.1.0 Alpha 1

If you work with Canvas objects that need text handling in Real Studio/Xojo Cocoa builds you quickly realize that it works vastly different than in Carbon builds.  This is because Carbon apps (through Apple Text Services) gives you a bunch of information for free.  In Cocoa only text controls get that information and that presents some issues to Xojo developers creating custom controls that do keyboard handling.

The Formatted Text Control is a word processor control for Xojo that is based on a canvas subclass and it works in Cocoa – somewhat.  If you try to do any international characters such as é or ü you quickly discover it doesn’t work like it should.  This problem is not unique to just the FTC because the Xojo Code Editor is also based on a Canvas subclass.

Xojo released an open source plugin on Friday for those who want to create custom text controls with international support (and integration with some Cocoa features).  The plugin is available on GitHub for anyone to use.  That page is at https://github.com/xojo/TextInputCanvas and the direct download for the plugin is at https://942ca60ce8039dc2659a-a2bc01947b765e9363feed443ae584ec.ssl.cf2.rackcdn.com/b1a9e16622/TextInputCanvas.xojo_plugin (this may change soon).

Formatted Text.debugScreenSnapz001

We’ve been fortunate to work with Xojo Inc in getting the Text Input Canvas plugin for early testing and integration.  This plugin works on Mac, Windows, and Linux and adds a number of events to the canvas control that you have to implement to get it to work.  Among one of the more important events you now need to handle is the DoCommand event.  The OS passes in all of the keyboard events the could happen including arrow key movement, delete and backspace keys, and insert new line to name just a few of the possibilities.  If it’s actual text to be inserted (rather than cursor handling or selection changes) the InsertText event passes in the text as well as the range of the text.  Incomplete text (such as the é and ü) that requires multiple steps in Cocoa get inserted using the SetIncompleteText event.

The control itself then wants to retrieve some data that Cocoa needs by way of several events such as the IncompleteTextRange and SelectedRange events.  This allows the FTC to not only support international text in Cocoa but to also get use some OS level Cocoa goodies.  Hover the cursor over a word and then press Control + Command + d to see the definition of the word just like any other Cocoa app.

Unfortunately, the current download for the plugin doesn’t have much in the way of documentation for how the new events work and what is required for it to function in Cocoa.  This is unfortunate because it’s rather complex and we’ve spent a lot of time working with the plugin and with the Xojo engineers to get the FTC working properly (and we still have some things to work on).  I guess this means that the best example/documentation currently available is the Formatted Text Control.  Again, I expect this to change in the near future.

Today we are releasing FTC version 3.1 alpha 1 for Xojo.  Since this requires the use of the Text Input Canvas plugin this is a Xojo-only solution.  For those still on Real Studio you need to stick with version 3.  Version 3.1 is a free upgrade to anyone that already owns version 3.  All previous versions are eligible for a discounted upgrade.  If you do not have an upgrade coupon from us, please send us an email at support at bkeeney dot com.

If you already are on version 3.0 you should have received email notifications from our File Share application.

UPDATE:  I need to note that building for Carbon isn’t supported in FTC 3.1.  The new plugin is Cocoa, Windows, and Linux compatible.  If you’re building for Carbon you should continue to use version 3.0.

Formatted Text Control 3.0

For many developers the TextArea control that Real Software provides with Real Studio is more than adequate for their needs.  It provides basic StyledText support, spell checking for Cocoa (Mac OS X Only) builds, and limited Rich Text Format (RTF) support.  If you’ve ever wanted to do add graphics, you’re pretty much out of luck and it doesn’t look like Real Software will add support for graphics any time soon.

The Formatted Text Control (FTC) is our solution to the limits of the TextArea control.  It provides word processing capabilities in true WYSIWYG format similar to what Apple Pages and Microsoft Word provide.  It has three view modes to help control how the user interacts with their document.  It provides better (not complete, however) support for RTF, plain text, and XML document formats.

If the FTC doesn’t do exactly what you want it’s relatively easy to create your own special objects using the FTCustom class to provide practically anything your application needs.  We’ve used these capabilities in our consulting work to provide inline file references, inline tagging capabilities as well as database merging.  Really, your imagination is the only limit with these objects.  And, just to add some icing on the cake, you can easily save these custom objects to and from XML.

For true cross-platform spell checking it can also make use of the Spell Checking Utilities (SCU) plugin, also available from us at http://www.bkeeney.com/spell-check-utilities/.  The SCU uses the Wintertree spell checking library and they have additional languages and even medical and legal supplements.

We took over the FTC from the previous developer in July of last year and we’ve been busy updating it for version 3.  New in this version is Retina Display support for Cocoa builds and provides the crisp quality that many Mac users expect from their applications in the higher resolution.

Also new in this version is true hyperlink support.  In previous versions you could have fake hyperlinks using the FTCustom class but now it’s part of the internal StyleRun and can be read in and out of RTF documents.  In addition to that we added support for text opacity and text shadow to have even better control of your text.

We’ve done a little bit of custom development work for various clients that have made their way into this release as well.  We added AutoComplete support for those that want to offer their users shortcuts and hints to words they’ve already started typing.  This should be helpful for anyone that’s using the RBScriptEditor subclass or who makes heavy use of custom words.

Along the way we’ve rewritten the Undo Manager to allow for unlimited undo/redo.  We’ve rewritten the RTF Reader class to handle RTF input faster and cleaner.  Based on our own project needs we greatly enhanced the HTML Export functions so that it exports more style information and many other things including images and any FTCustom objects the developer might be using.

We also listened to what users were having problems with.  Many people found the big monolithic demo application too complicated so we created a number of smaller, more targeted demo applications that should hopefully make things easier for people to get started.  Also based on feedback we removed the dependency of the main demo application to have the Spell Checking Utilities (SCU) plugin installed and made a smaller Spell checking specific demo.

We are keenly aware that Cocoa is soon going to be the new normal for Real Studio builds and we’ve added more/better Cocoa support.  Not all is well in the land of Cocoa for us, however.  Text input handling is vastly different in Cocoa than in Carbon and there are major issues with accented characters in controls that weren’t designed for text input.  One of those is the Canvas control and currently the FTC, nor any other canvas control doing keyboard input in Cocoa builds, is able to capture nor detect accented characters.

Real Software has found a solution (since the IDE code editor itself is a canvas subclass) and we are working closely with them to modify the FTC to use this new solution.  The drawback is that it will require a plugin that eventually Real Software will release to the public sometime after 2013 Release 1.  I’ve been told that this plugin will be open sourced so that the community will be able to modify it as they need but so far there’s no timetable on that.

Switching to this plugin will require that developers using the FTC will need to have this plugin installed for it to work.  It’s a drag but there’s no way around it.  It also means that starting in version 3.1 of the FTC it will NOT be backwards compatible with older versions of Real Studio.  This plugin will ONLY  work with Real Studio 2013 Release 1 or better.  Again, not ideal and it’s possible that we will maintain multiple versions.

Formatted Text Control is $150 which gives you the entire source code base.  Nothing is encrypted so you have total control over it.  Existing users of the FTC (versions 1 or 2) are eligible to get version 3 at 50% off and should have received an email with the coupon code a week ago.  Contact support at BKeeney if you are an existing user that did not receive a coupon code.

For more information on the Formatted Text Control please visit http://www.bkeeney.com/formatted-text-control/.  There you’ll find demo and documentation downloads as well as a full list of enhancements and changes in version 3.0

Busy Updating Products

I apologize.  Blog posts have been slow lately.  Acquiring products from another company is an interesting process and figuring out the StyledHTMLField and Simple Help Editor was no exception.  First, you have to get in the mind of the original developer and figure out what they were trying to do and then determine if you wish to change the code and then test, test, test.  I can say I am very thankful for source code control because I’ve broken a few (too many) things and had to revert to older code!

One of the things we’re doing with Simple Help Editor is changing the licensing scheme to fit most of BKeeney Software’s other commercial products.  That led me down the proverbial rabbit hole because we discovered that the eSellerate plugin works fine in Carbon and Cocoa (after contacting tech support to get the Cocoa update) but fails in Windows (go figure).  Of course this only happens in Real Studio 2012 R1 and higher so I’m sure it’s simply a plugin compatibility issue and hopefully we can get an update soon (because we’re waiting to release!)

The other thing we decided to do was move to our standard preferences system.  The reasoning was twofold:  First, it now works just like every other of our products so my and my team won’t have to think about what the preferences system does because we know it (and use it everywhere).  The second reason, which was kind of by accident but fortuitous anyway, was that we got to touch code everywhere.  Just by replacing the preferences we go to see a LOT of code we wouldn’t have normally touched.

Just by doing these two seemingly minor items I now have a whole laundry list of items I want to change in Simple Help Editor.  Some of it is personal preference and some of it is features I want for my own products.  It’s also a strong possibility that we’ll integrate the Formatted Text Control into Simple Help Editor to not have to rely upon the RTF to HTML conversion routines and the built-in TextArea control which doesn’t allow any graphics to be shown.  This should make the Simple Help Editor text editors to be a bit more intuitive.  If you are are user of Simple Help Editor and have a feature request then please let me know.  I

Speaking of the Formatted Text Control we’re also working on it too and getting it ready for new features in version 3.  Among the planned features are Retina display support, HTML Export, Hyperlink support, and adding a number of simpler examples that developers can (hopefully) use out of the box without any plugins.

Sometimes I am amazed at how long some things seem to take.  I guess I shouldn’t at this point as I come up with estimates for clients all the time.  When it’s my own stuff it seems to take FOREVER to get done.

Anyway, that’s the current update.  Thanks for you patronage and continued support!

Thoughts on the Formatted Text Control Acquisition

It’s been a busy couple of weeks around BKeeney Software world headquarters.  Besides our normal (read: hectic) Real Studio consulting work we recently acquired the Formatted Text Control (and various and associated  Real Studio projects and products) from True North Software.

There has been some speculation on the reasons why True North Software sold their Real Studio assets and on why we purchased them.  I will attempt to briefly summarize what I know and offer some commentary.

Brendan Murphy, owner of True North Software, told me that the company is moving in a new direction with consumer software.  This doesn’t necessarily preclude using Real Studio, but since he’s focusing exclusively on the Mac App Store he has no need for cross-platform support and therefore Real Studio is not fitting his needs.  xCode might be harder to learn but it has more Cocoa goodies for now and the foreseeable future.  Developer products just don’t fit into his future business model.

I am speculating that the apps that True North Software has released on the Mac App Store are more profitable then developing and maintaining Real Studio controls.  At the end of the day a business needs to have adequate cash flow and income to survive.

People ask me why there aren’t more third party products for Real Studio and there is no one answer but I’ll give several explanations.  The first is that the Real Studio market isn’t as big as .NET or Java or even xCode.  This alone, I feel, prevents many developers from attempting to get into the market as there are only so many people that could buy your product.

The second half of that equation is that even if you do get it to market there is a strong resistance to buying any third party products.  Seriously, go to the forums and you’ll see people bemoaning the fact that Real Studio is missing some (what they consider) key elements and yet they don’t want to purchase plugins or other third party code.  Those are two very big negatives for getting into the market.

The next issue is that Real Software, in my opinion, is not very friendly to third party developers.  You can’t add anything to enhance the IDE except IDE scripts.  Fine, but then they’re not exceptionally friendly to plugin developers for a variety of reasons.  The biggest one is poor documentation on how to create plugins and certainly no guidelines on how to create native cross-platform controls.  The IDE doesn’t manage plugins very well (either in a folder or not when Real Studio is started) and there is absolutely no version control on the plugins.  Projects don’t track which plugins they require so if you’re missing a plugin hopefully you can figure it out.  There is also no way to register and validate third party classes and controls so it’s up to each developer to implement a serial number system.  I don’t know for sure but I suspect that piracy is fairly common in the Real Studio world.

Real Software does throw third party developers a small bone by offering to sell their products in the Real Software web store.  The exposure is nice and it does make it easier for larger corporations to buy products (only 1 purchase order/invoice to get past supervisors) but the percentage take by Real Software for each sale is large.  I’m not allowed to tell you how much – it’s in the contract.  Let’s just say look at my product prices on the Real Software web store and look at them on my own webstore.  But, I digress.

So the incentive was there for True North to exit the Real Studio developer market.  And that’s how we came into the picture.  We’ve used the Formatted Text Control since before the first official release.  I can’t tell you how many commercial consulting projects we’ve used it in and we’ve been into the bowels of the source code offering code back to True North as we came across bugs and when we changed things to make our projects work better for our clients.

We are primarily a Real Studio consulting company and we obviously do more than just consulting.  We recently released our Calendar Control classes for Real Studio that gives developers a nice full-featured calendar like iCal (now Calendar in Mountain Lion) and Outlook.  Formatted Text Control and the Spell Check Utilities plugin fit in nicely in our new Real Studio Developer products category.

If nothing else, we will continue to enhance Formatted Text Control to meet our needs in ongoing and future projects.  Our ideas alone could propel us to several new versions.  We look forward to adding more documentation, example projects, tutorials, videos and the like in the upcoming weeks and months.  If you have features you’d like to see, please feel free to send them to us!

Anyway, I hope that clears up a few things.  It probably creates a few more questions so ask away!

BKeeney Software Acquires Real Studio True North Software Products

Lenexa, Kansas, USA (July 30, 2012) — BKeeney Software Inc. has announced that it has acquired the RealStudio portfolio of products from True North Software including…

– Formatted Text Control (FTC)

– RTF Parser

– RB Code Reports

– Spell Check Utilities (SCU)

– RBVersioner

– Obfuscate

– RB Linux Maker

– VInstaller

We are very excited to bring these products to BKeeney Software. These products represent years of quality work which we routinely use in our consulting work. These products are valued assets for the Real Studio community and we will continue to enhance these products. Brendan Murphy, from True North Software said, “I am glad BKeeney Software has chosen to acquire these products. They have the technical expertise and integrity to make these products flourish for years to come.”

The new home for these products can be found at the following URL’s:

http://www.bkeeney.com/products/formatted-text-control

http://www.bkeeney.com/products/rb-code-reports

http://www.bkeeney.com/products/spellcheckutilities

http://www.bkeeney.com/products/rbversioner

http://www.bkeeney.com/real-studio/rb-linux-maker

http://www.bkeeney.com/real-studio/vinstaller

http://www.bkeeney.com/real-studio/obfuscate

For more information visit http://www.bkeeney.com or send email to info@bkeeney.com

.

The Plugins/Libraries We Use

We do a lot of projects every year.  Every project is different but we have a core set of third party controls and plugins we use on a regular basis.  Here’s our list.

Monkeybread Software  http://www.monkeybreadsoftware.de/realbasic/

I know a lot of people complain about the Monkeybread plugins but we find them to be most useful.  Time is money and chances are good that if there’s a system declare you might need they’ve already done it.  Plus, they are very responsive to bugs and changes to Real Studio.  They’ve been very proactive in developing Cocoa compatible plugins.

The Chart Director plugin is a wonderful charting tool.  It has a ton of features and is very fast.  We’ve used it on a number of projects now and we’ve been very happy with it.

Automatic Updater Kit:  This set of classes and utilities is must have for Mac and Windows apps.  On Mac OS X it uses Sparkle to do automatic app updates and on Windows you can set it to use an installer file.  We’ve automated this (using IDE scripts) to the point where we only need to run one command line function to finish everything (and that only because we haven’t automated the Inno Setup process yet).  We recently modified the code to do some data file updating as well.

Einhugur  http://www.einhugur.com/index.html

We use much of this suite as well.  Real Studio does not ship with Date and Time or Calendar controls.  The Einhugur set comes with nice versions of those as well as a wicked fast TreeView and StyleGrid controls.  They have a number of other libraries and controls that are very useful including their E-CryptIt plugin that offers many encryption, encoding and hashing techniques.  Einhugur has also been very proactive in developing Cocoa compatible plugins.

Formatted Text Control  http://www.truenorthsoftware.com/formattedtextcontrol/

If your app needs true RTF file support or need inline graphics then this is a must have tool for you.  This is a set of pure RB classes (unencrypted) so you can dig into the guts and make your own modifications (or fix a bug or two as we’ve done over the years).  This is good code to learn from as well.  They recently added masking which is a nice replacement for the crappy masking that Real Studio provides with the TextField control.

RSReport  http://www.rothsoft.ch/realbasic/rsreport/

If you need anything other than basic (and I mean REALLY basic) reporting the built-in reporting tool isn’t all that impressive.  We’ve moved almost everything over to RSReport.  It’s great because you control everything.  It’s awful because you control everything.  Reports take a little longer to design and get running but the drop-in report viewer and the export to PDF capabilities more than make up for it.  They do have a Report Designer component but I’ve never gotten it to work well in my own projects so I’ve not used it.  Their lack of support is a little disconcerting but so far I’ve been happy with it to take the risk.

eSellerate  http://www.esellerate.net/

We use the eSellerate plugin for our own products.  It handles licensing and registration and though they take a cut off the purchase they’ve been fairly proactive in updating their service over the years.  Their RB plugin has NOT been updated for Cocoa so we really have no idea what we’ll use if they don’t update it.

What are you using a lot that’s not in our list?

Formatted Text Control Version 2

As a consultant I use the best tools available to me and my clients.  One of those tools is the Formatted Text Control (FTC) from True North Software.  Today they announced version 2 of their excellent text editor control.

FTC is one of those controls that I find indispensable and use a lot because of its power and flexibility.  Because it’s done in 100% unencrypted REALbasic code you have complete control over how you use it.  Need to do something that it doesn’t do?  You can do it yourself if you have the patience for implementing your own changes.

FTC is big and powerful.  It has around a hundred classes that let you implement a full-featured word-processor with very little work (literally drag and drop and maybe add ten lines of code).  With a little bit of elbow-grease it’s very easy to create your own reports via code (perhaps I’ll write a little tutorial on that one of these days).

If you’re interested in learning how a control can be implemented in REALbasic using just a canvas this is excellent code to learn from.  FTC does class inheritance well, is optimized, and the code is easy to follow.

Brendan Murphy, the creator of FTC, is very responsive to bug reports and feature requests.  We’ve been users since the early days of development so you’ll see the BKeeney name in a few places in source code from bug reports and feature requests.  It’s rare to see somebody share the credit so readily.

Version 2 has a number of welcome new features and enhancements.  The first is that the alignment of the display when it’s in Page display mode.  Before it was always flush left, but now you can center and right justify it.  It’s a minor thing, but very high on my own wish list.

New search and replace functionality was added.  You can do it either programmatically or interactively.  There is also a new Replace All function.

You can now scroll to the selection which, as the name suggests, scrolls the display to the current selection (and presumably the insertion point).

A new KeyPress event was added that allows you to have more control over what characters can be inserted to the control.  Since this is an event in the TextField and TextArea controls this is a welcome addition.

A new subclass was created from the FTC.  The FTTextField is a replacement for the RB TextField control and has all of the advantages of the FTC.  This means that the FTTextField can do spell-checking, undo, and the ability to read/write true Rich Text Format (RTF) files where as the RB TextArea is fairly limited in what it can do with RTF (no graphics).

Also new in the FTTextField is the ability to limit the number of characters in the control and the ability to use masks.  Given that the RB mask property in the TextField is bad (perhaps sucks is a better word) this by itself might be worth the purchase price.

The cost of the version 2 of the FTC is $150.  A demo and more information about  version 2 is available at http://www.truenorthsoftware.com/formattedtextcontrol/