News from the MBS Xojo Plugins Version 22.1

In this article I want to introduce you to the new functionalities from the MBS Xojo Plugins in version 22.1.

Phidget

We added Phidget classes around 2010 to our MBS Xojo Plugins. We kept that running and various clients used all the existing classes for various projects. To keep compatibility we renamed the old classes with a prefix Old, e.g. OldPhidgetMBS. and made new classes for for the new Phidget library with Apple Silicon support. We can put in all the knowledge we got about C++ and Xojo and improve the classes to current standards. We wrap the C API from Phidgets library and so you can always look on their documentation, too. If you use a humidity, magnetic, light, gyroscope, PH, sound, temperature, capacitive touch or pressure sensor for a Xojo project, you can try the new classes. You can recognize input from analog and digital sources and output signals. You can control various motors including steppers.

Scintilla

In the last release we had introduced our new MBS Scintilla Plugin. Scintilla is a very powerful code editor and you can embed it as a control in your applications. In the latest release we have added methods to support you in working with Scintilla and fixed some bugs. With the method LexerNameFromID which you find in the DesktopScintillaControlMBS as well as in the ScintillaControlMBS class you can determine the name of the lexer to a given ID. In the two classes also new is the method LexerNames which gives you a list with names of the built-in lexers.


If you are interested in the topic Scintilla I can also recommend our new video, in which Christian shows what you can do with the Scintilla Control.

Strings

If you want to quickly connect strings together, our StringHandleMBS class is a good choice. For this purpose, the add methods are already exists a very long time in the plugin. In this release we have added a new add function that can now work with StringHandlers in the parameters. An example script can look like this:

Dim s1 As New StringHandleMBS s1.add “Hello World” Dim s2 As New StringHandleMBS s2.add "Got: " s2.add s1 MessageBox s2.Copy


Another cool new global function for strings is the ContainsWholeWordMBS function. It detects if a string contains a certain word that we specify in the parameters of the function.

DynaPDF

For the DynaPDF area we have some new features. The DynaPDFMBS class got new support for PDF/A 2u and 3u. The new SpaceWidthFactor property allows you to control how the ExtractText function adds spaces. And you can pass empty text for RenameSpotColor to make a no name spot color.

SQL

In the SQLDatabaseMBS and SQLConnectionMBS classes we have the new method BeginTransaction. At first glance you may wonder why you need this method at all. It’s true, if auto comit is enabled, we don’t need this method, but if it is off, then this method is essential. We have this method for compatibility to other SQL database classes from Xojo.

X509 certificat

Since version 17.0 we support in class X509MBS for X509 certificates. In this release, a shared method and a method join the family of functionalities. The shared method CheckCertificates validates certificates agains root certificates and may use intermediates for it. The method Verify verifies a signature of certificate by using the given public key.

Change of the MenuAction events

We changed the MenuAction events for our controls to be named ContextualMenuAction or ContextualMenuItemSelected to match Xojo. Our ConstructContextualMenu events are now matching Xojo’s controls. You may have to adjust your code if you use those.

New functionalities for Mac

The MBS Xojo Plugins in version 22.1 offers some more new features for Mac users.

IKImage

For Mac users we have the new class IKImageViewMBS which also brings the appropriate controls. With this features you can display an advanced image view in your mac solutions. The IKImageViewMBS class provides an efficient way to display images in a view while at the same time supporting a number of image editing operations such as rotating, zooming, and cropping. It supports drag and drop for the NSFilenamesPboardType flavour so that the user can drag an image to the view. If possible, image rendering uses hardware acceleration to achieve optimal performance. The IKImageViewMBS class is implemented as a subclass of NSView. Similar to NSImageViewMBS, the IKImageViewMBS class is used to display a single image.

NSSwitch

With the new release we now bring a typical Mac control to Xojo desktop applications - the switch. You can use it with the NSSwitchControlMBS (or DesktopNSSwitchControlMBS) control in Xojo and the view is implemented via NSSwitchMBS class. We have an action event to run when the user changes the value and a State property for code to read or write the current value.

Dialog Aligment

Dialogs are incredibly important for communication with the user. With the plugin you can forget about the boring standard dialogs and design your own dialogs, for example, by adding icons. In this release you will find a new method from the NSAlertMBS class. With the SetTextAlignment method you can set the textaligment. No matter if left, center or right alligment. This is now up to you.

SceneKit

The 3D graphics engine SceneKit for creating 3D animations is based on a node structure. Also the geometry is passed to the nodes. If we want to remove it now, we can use the clearGeometry method from the SCNNodeMBS class.

Continuity Camera

With the new property Enabled from the class ContinuityCameraMBS we can decide if the entry Continuity Camera is displayed in our context menus. If we do not want this entry to be displayed, we set this property to False.

NSURL

Also in this release we have a few extending properties to the NSURLMBS class. You can see the list here:

Symbols image in your program

If you want to use symbol image in your program you can do it with the plugin. With the new method imageWithSymbolConfiguration from the class NSImageMBS you can include for example a standard symbol used by your operating system, e.g. the trash and add further data about the size and the appearance. To do this, the method gets an object of the class NSImageSymbolConfigurationMBS in which we can create this information. Here you can see an example where a trash is painted in the background with a size of 200 pixels.

Dim config As NSImageSymbolConfigurationMBS = NSImageSymbolConfigurationMBS.configurationWithPointSize(200, 0) Dim n As NSImageMBS = NSImageMBS.imageWithSystemSymbolName(“trash”) Dim o As NSImageMBS = n.imageWithSymbolConfiguration(config) Backdrop = o.CopyPictureWithAlpha

We hope you will also find some interesting new features. We wish you a lot of fun with MBS Xojo Plugins version 22.1. If you have any ideas for new cool features, need a license or have any questions, please contact us.

8 Likes

Christian, would it be possible to add a sound option to WinUserNotificationMBS? A Boolean would suffice. Currently with a non-mutable system sound, they are much more obtrusive than the silent UserNotifications on macOS.

1 Like