Einhugur macOS Bridge is a plugin to make it easier to use some macOS Native objects and interface with them using Xojo objects, Einhugur Plugin objects such as RawBitmap, declares and 3rd party plugins.
The macOS native objects have been simplified and adapted to make using them from Xojo very easy.
For Example then macOS file Icon for any file or file type can be obtained in just one line of code, and can then be either drawn in one line into Xojo Graphics or converted to Xojo picture object in one line of code.
The macOS Bridge plugin can help you set up Touch-bar support in your applications. And supports customization mode for it.
(Touch bar in the picture above shown in Touch Bar simulator)
Alert with destructive action on macOS Big Sur
Simple task manager created with NSRunningApplication class
Version 3.5 changes: Added NSRunningApplication class. Added NSWorkspace class. Added NSDate class. (Minimum implementation to support other classes). Added NSURL class. (Minimum implementation to support other classes). Added two new example projects.
The TimeControl Plugin for Xojo is displayed according to control panel time settings, or in exclusive 24 hour mode. The control uses Native Windows control on Windows systems and native Theme Rendering on macOS X and Linux systems.
New in TimeControl 7.7: Improved drawing on MacOS Systems.
DateControl is a Plugin control for Xojo to select dates. The control has broad platform support and supports NULL (empty dates), Min and Max dates and more.
New in version 9.3:
Improved drawing on macOS Systems when the DateControl is not in drop down mode.
A plugin to create Custom rendered coloured button and switches for all desktop platforms.
New in Version 2.0: Added CustomSwitch control. Greatly improved focus handling on CustomButton control. Added FocusDrawingType property to the CustomButton control. Added FocusColor property to the CustomButton control. Added UseSystemFocusColor property to the CustomButton control. Added DMFocusColor property to the CustomButton control. Added DMUseSystemFocusColor property to the CustomButton control. Improved macOS accessibility support on the CustomButton class, adding support for helper devices and utilities to use perform command. Added FocusColor property to the CustomButtonStyleSet class. Added UseSystemFocusColor property to the CustomButtonStyleSet class. Made new and better IDE icons for the controls.
Custom button supports: Plain button Split button Menu button Sticky button Toggle button macOS Dark Mode customisation macOS High contrast mode customisation. Common Apple accessibility features for button widget. Several ways of focus handling.
Custom switch supports: macOS Dark Mode customisation. macOS High contrast mode customisation. Common Apple accessibility features for checkbox widget. Custom localization. Several ways of focus handling.
Einhugur macOS Bridge is a plugin to make it easier to use some macOS Native objects and interface with them using Xojo objects, Einhugur Plugin objects such as RawBitmap, declares and 3rd party plugins.
The macOS native objects have been simplified and adapted to make using them from Xojo very easy.
For Example then macOS file Icon for any file or file type can be obtained in just one line of code, and can then be either drawn in one line into Xojo Graphics or converted to Xojo picture object in one line of code.
The macOS Bridge plugin can help you set up Touch-bar support in your applications. And supports customization mode for it.
(Touch bar in the picture above shown in Touch Bar simulator)
Alert with destructive action on macOS Big Sur
Simple task manager created with NSRunningApplication class
Version 4.0 changes: Added NSSavePanel class. Added NSOpenPanel class. Fixed problem on the State property on NSButton class. Documentation is now generated with fixed Documentation generator making inherited members show better. Added Hidden property to the NSView class. Added NeedsDisplay property to the NSView class. Added InitWithFrame shared function to the NSView class. Added AddSubview method to the NSView class. Added SetFrameOrigin method to the NSView class. Added CheckBoxWithTitle shared function to the NSButton class. Added RadioButtonWithTitle shared functions (2 variations) to the NSButton class. Added Tag property to the NSControl class. Added AlertCompletionDelegate to the NSAlert class. Added new example project to show Sheet Alert (modal to specific window only) Added 7 new example projects for Open and Save panels.
Addition of the NSSavePanel and NSOpenPanel allows you to Open multiple files from file dialog, open hidden files, add custom accessory view to them and many other things.
Einhugur Linux Bridge plugin for Xojo and FlowLayout Plugin 3.0.2 for Xojo are out.
New in FlowLayout 3.0.2: Fixed issue with min size handler.
The FlowLayout plugin helps you create a user interface design where horizontal layout of the controls is sensitive for localization as well as platform differences.
The FlowLayout for example helps dealing with localization issues like this:
English
Icelandic
Icelandic - when FlowLayout was used
New in Einhugur Linux Bridge 1.0.2 Fixed Linker error on Linux 32 bit.
Einhugur Linux Bridge is a plugin to make it easier to use some Gtk Native objects and interface with them using Xojo objects, declares and 3rd party plugins.
The Linux native objects have been simplified and adapted to make using them from Xojo very easy.
Since all our products are free when used on Linux platform then this plugin is completely free of course since by nature it is for Linux only.
Setting destructive and suggested action on Xojo buttons.
Only downside that I know of is that since Xojo does not support Generics then the Array returned is array of object instead of Array of TestObject (where you need to cast the result).
If there is interest then I will have this out pretty soon for SQLite. Other Databases are probably possible to add, would need to be investigated.
This code compiles when using Variant array (see bellow). Very good suggestion is so much nicer now, and I am not measuring any notable performance loss in it.
First I think it would be best if there was an option to step through the the records one at time as one would with a ResultSet/RowSet instead of bring it all into memory at once for queries that return a lot of records to limit memory footprint when needed.
Is your idea only to support reading in the data into a table class instance and that any support for modifying the table we would need to code?
How do you see defining the table class?
I assume that we need to write the classes upfront, or are you thinking of autogenerating the classes from the DB like ARGen?
Mapping Xojo properties names to Database fields names is not 100% straightforward … SQL allows identifiers to contain characters that Xojo properties don’t.
If we have to write the classes ourselves, would the SQLite Column name need to be an attribute on the Xojo Property for example?
In the case of autogenerated classes, for SQLite with it’s “type affinity”, mapping Database Data type to Xojo datatype is not always straightforward. ARGen allows one to configure the datatype when needed. If you plan on autogeneration do you see the generator being a separate app like ARGen/Active record?
Its hard to compare to ARGen since there your generating classes. While here you do quick runtime mapping. More like is done in Various of Poco such as PetaPoco ORM’s for .NET.
Usually Poco type ORMs will return the whole array of query as it can be optimized the most like that and Poco style ORM is for average UI app and not really SQL management studios. So you should not really have millions of rows in such apps. If you have such app then you should not really be using any ORM at all.