Einhugur Plugin Releases (2021)

Small extra since I no longer can edit last post:

There are some attributes you can set like how NULL should be handled on Integer field for example. I will not put Alias attribute though for the name since ORM like this usually handles that by the fact you can do that in your select statement like Select MyBadFieldname as MyGoodFieldName from Test

As for type mapping then the ORM makes a plan based on your properties and the datatypes you get, so you can for example have Boolean property in your class reading Integer value. There is not much such in SQLite since SQLite has simple typing, but I also have Postgres ORM ready, and there it has such complex type mapping.

I am sure there will be some cases or mapping types that are missing or people expect differently in first version but we will add rules and make it smarter as needed when the cases come up.

Einhugur SQL ORM 1.0 is out.

Einhugur SQL ORM is a micro ORM to map results of SQL queries to Xojo objects

Currently supported for SQLite databases:

  • Automated Query mapping to Xojo object.
  • Advanced NULL value handling (2 choices of mechanism).

Currently supported for Postgres databases:

  • Automated Query mapping to Xojo object.
  • Advanced NULL value handling (2 choices of mechanism).

Some users might try to write all this code to map query result to Xojo object:

But when using our micro ORM then all you need is:

This is version 1.0, I would love to hear from you if you have comments on it. Or if some mapping does not work of course.

More info at www.einhugur.com

2 Likes

What happens when an error is there in the sql query. Will we able to get the error message back from the db.

You get it in Exception same as if you do SQLSelect on the Xojo database object.

Small teaser for next version in response to your (Karen) request…

(and half-ed the time also in the iterative interface)

2 Likes

Not surprising … You only need to create one table class instance and just change the properties on each iteration, not create 15,000 instances!

  • Karen

Its actually still creating separate instances since you might then store them when you loop through.

CustomButton 2.5 plugin and CoreClasses 7.6 plugins for Xojo are out

CustomButton is a plugin to create Custom rendered colored button and switches for all desktop platforms.

New in Version 2.5:
Added CustomCheckbox control.
Added CustomCheckboxRenderer class.
Fixed Bug in the CustomSwitch where it could be clicked even if it was disabled.
Changed the Action event on CustomSwitch so it gives hint if it was initiated from code or from user interaction.
Action event on CustomSwitch will now also fire when switch state is set by ccde.
Added support for Accessibility Title on CustomButton control.
Improved support for Einhugur FlowLayout on CustomButton.

Custom button supports:
Plain button
Split button
Menu button
Sticky button
Toggle button
macOS Dark Mode customization
macOS High contrast mode customization.
Common Apple accessibility features for button widget.
Several ways of focus handling.

CustomButton

Custom switch supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Custom localization.
Several ways of focus handling.

image

Custom Checkbox supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Several ways of focus handling.
Mixed states.

CoreClasses Plugin:
The CoreClasses plugin consist of data structures that are implemented to support current and future plugins internally. (Those structures can of course also be used directly in Xojo).

The CoreClasses plugin implements high speed string, object and bit arrays, stacks, queues, collections, dictionaries, trees, sets and StringTokenizers. See more details in the details section.

New in CoreClasses 7.6:
ObjectArray class now supports Xojo’s For each syntax when on 2019r2 or later.
VariantArray class now supports Xojo’s For each syntax when on 2019r2 or later.
StringArray class now supports Xojo’s For each syntax when on 2019r2 or later.
ObjectCollection class now supports Xojo’s For each syntax when on 2019r2 or later.
ObjectSet class now supports Xojo’s For each syntax when on 2019r2 or later.
ObjectQueue class now supports Xojo’s For each syntax when on 2019r2 or later.
ObjectStack class now supports Xojo’s For each syntax when on 2019r2 or later.
StringTokenizerArray class now supports Xojo’s For each syntax when on 2019r2 or later.
StringTokenizerList class now supports Xojo’s For each syntax when on 2019r2 or later.
StringMultiTokenizerList class now supports Xojo’s For each syntax when on 2019r2 or later.
Re-targeted minimum iOS version to 11.
Added arm64 support to the iOS Simulator target.

Note also that new version of TreeView will come soon which will support optionally the Checkbox Renderer from the new version of the CustomButton plugin.

More info at www.einhugur.com

1 Like

TreeView 8.6 for Xojo is out

The TreeView is a Xojo control plugin to create tree views.

New in TreeView 8.6:
Added support for CustomCheckBoxRenderer from the CustomButton plugin. This one also supports putting your own custom made Renderer for checkboxes.
Refactored native checkboxes from HITheme carbon API’s to Cocoa APIs, which also makes their look now 100% correct in dark mode.
Tuned various of drawing issues.
Refactored out all Carbon code so the plugin no longer links against Carbon at all.

Example of when using the renderer from the CustomButton plugin for the checkboxes in TreeView:

image

Of course if you do not use such custom checkbox renderer then you get the default native Checkboxes.

More info at www.einhugur.com

1 Like

PictureEffectsRaw 5.2 is out

The PictureEffectsRaw plugin for Xojo enables you to do advanced image processing in Xojo using up to 8 CPU cores at once. And some of the effects can also do it in asynchronous mode.

The PictureEffectsRaw has the following effects: Brightness, Contrast, Color filtering, Levels, Tint, Temperature, Grayscale, Gamma, Hue - Saturation, Invert, Sepia, Exposure, Gain / Bias, Contrast Stretch, Desaturate, Equalize, Replace color, Blur, Gaussian Blur, Crystalize, Sharpen, Smooth, High quality Bilinear Scaling, Flip Horizontal, Flip Vertical, Stretch Horizontal, Stretch Vertical, High quality rotation, Trim, Shape distort, Polar Coordinates, Trim, Barrel distort, Interlace, Emboss, Edge Detect, Oil Paint, Rank Order, Gradient, Clouds, Wood, Marble, Textile, Labyrinth , Rainbow Effect, Channel mixer, Blend, Map, Custom 3x3 matrix, Page Curl and ImageComparer.

New in PictureEffectsRaw 5.2:
Added Arm64 target for the iOS simulator.
Re-targeted minimum iOS version to 11 instead of 13.

More info at www.einhugur.com

1 Like

CustomButton 3.0 plugin for Xojo is out

CustomButton is a plugin to create Custom rendered colored button, check boxes, radio buttons and switches for all desktop platforms.

New in Version3.0
Added CustomRadioButton control.
Added optional smaller mode to the CustomSwitchControl.
Added TextYOffset to the CustomSwitch control.
Added Font properties to the CustomSwitch control.
Added ButtonSize property to the CustomSwitch control.
Added ButtonSizes enum to the CustomSwitch control.

Custom button supports:
Plain button
Split button
Menu button
Sticky button
Toggle button
macOS Dark Mode customization
macOS High contrast mode customization.
Common Apple accessibility features for button widget.
Several ways of focus handling.

CustomButton

Custom switch supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Custom localization.
Several ways of focus handling.

image

Custom checkbox supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Several ways of focus handling.
Mixed states.

Custom Radio button supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Several ways of focus handling.
Automatic radio-button grouping.

More info at www.einhugur.com

4 Likes

CustomButton 3.0.5 plugin for Xojo and TypeLib 11.0.5 for Xojo are out

CustomButton is a plugin to create Custom rendered colored button, check boxes, radio buttons and switches for all desktop platforms.

New in Version3.0.5
Fixed problem where users using old Xojo 2019r3 got exception when building console or web application if this plugin was installed even if it is not for console or web.
Fixed problem with radio button where radio logic was not ran correctly if manually assigning values.
Fixed problem with gaining focus on click on focusable systems on CustomRadioButton, CustomSwitch and CustomCheckBox.

Custom button supports:
Plain button
Split button
Menu button
Sticky button
Toggle button
macOS Dark Mode customization
macOS High contrast mode customization.
Common Apple accessibility features for button widget.
Several ways of focus handling.

CustomButton

Custom switch supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Custom localization.
Several ways of focus handling.

image

Custom checkbox supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Several ways of focus handling.
Mixed states.

Custom Radio button supports:
macOS Dark Mode customization.
macOS High contrast mode customization.
Common Apple accessibility features for checkbox widget.
Several ways of focus handling.
Automatic radio-button grouping.

New in TypeLib 11.0.5:
Fixed problem where RawBitmapConverterConsole was not seen correctly by Xojo 2020r2 or later.

TypeLib is Xojo plugin to define some type and support other Einhugur Plugins.

The TypeLib also defines RawBitmap and RawBitmapMask classes that can be used to interact with 3rd party plugins and libraries as well as to avoid inaccuracy of pre-multiplied alpha channels in image processing.

The plugin also defines the EinhugurRuntime.Task framework for native threading and async processing of big tasks.

More info at www.einhugur.com

4 Likes

PictureEffectsRaw 5.5 is out

The PictureEffectsRaw plugin for Xojo enables you to do advanced image processing in Xojo using up to 8 CPU cores at once. And some of the effects can also do it in asynchronous mode.

The PictureEffectsRaw has the following effects: Brightness, Contrast, Color filtering, Levels, Tint, Temperature, Grayscale, Gamma, Hue - Saturation, Invert, Sepia, Exposure, Gain / Bias, Contrast Stretch, Desaturate, Equalize, Replace color, Blur, Gaussian Blur, Crystalize, Sharpen, Smooth, High quality Bilinear Scaling, Flip Horizontal, Flip Vertical, Stretch Horizontal, Stretch Vertical, High quality rotation, Trim, Shape distort, Polar Coordinates, Trim, Barrel distort, Interlace, Emboss, Edge Detect, Oil Paint, Rank Order, Gradient, Clouds, Wood, Marble, Textile, Labyrinth , Rainbow Effect, Vignette, Channel mixer, Blend, Map, Custom 3x3 matrix, Page Curl and ImageComparer.

The new Vignette effect:

Twirl effect*

Shape distort effect*

New in PictureEffectsRaw 5.5:
Added Vignette effect. (RGB, 8 bit per channel, 16 bit per channel, Sync, Async)
Fixed memory leak problem in Async mode on effects.
Added Async support for the Gamma effect.
Added Async support for the ReplaceColor effect.
Added 2 new example projects for the Vignette effect.

More info at www.einhugur.com

4 Likes

PDF Plugin 2.7 for Xojo is out

The PDF Plugin is to generate PDF documents from your applications.

The plugin supports:
Embedding TrueType fonts
Automatic encoding detection and mapping to PDF stock encodings.
Images (stored as Raw, for example PNG), JPEG (stored as JPEG).
Clickable links from the PDF document to web pages.
Clickable links from the PDF document to different locations within the PDF document.
Clickable zones to get text annotations in popup bubbles.
Advanced drawing.
Compression.
Setting up the PDF outline tree.
PDF Coordinates with Y1 at bottom or Xojo Coordinates with Y1 at top.
And countless other features…

New in version 2.7
Added HorizontalScaling property to the Page class.
Added CharSpace property to the Page class.
Added second variation of LoadTrueTypeFont method.
Added SetPermission method to the PDFDocument class.
Added SetSlideShow method to the Page class.
Added TransitionStyleEnum to the Page class.
Fixed bug in SetPassword method on the PDFDocument class.
Fixed tiny memory leak.

more info at www.einhugur.com

4 Likes

CoreClasses Plugin 7.7 for Xojo is out

The CoreClasses plugin consist of data structures that are implemented to support current and future plugins internally. (Those structures can of course also be used directly in Xojo).

The CoreClasses plugin implements high speed string, object and bit arrays, stacks, queues, collections, dictionaries, trees, sets and StringTokenizers. See more details in the details section.

New in CoreClasses 7.7:
Added PrefixDictionary class.
Added PrefixDictionaryCaseInsensitive class.
Fixed crash bug in ObjectCollection.Insert.

Prefix dictionaries like we have in this new version are often used for things like auto complete features as they offer lightning fast lookup based on prefix, returning result set of zero to many results.

As for the bug that was fixed then it was found in internal unit test, it is not clear if users of the Einhugur TreeView control which uses CoreClasses internally would be affected by the bug or not but it is probably safest to update just in case.

More info at www.einhugur.com

2 Likes

Color Management Plugin 2.5.2 is out

The Color Management Plugin for Xojo is to manage ICC Color profiles on RawBitmap objects. The plugin can get info about the ICC profiles, load and apply different ones or convert images between different RGB and CMYK based profiles as well as convert single color between RGB and CMYK based on Color profiles. The plugin can handle images with 8bits per channel or 16bits per channel and can also be used to convert between them.

New in Einhugur Color Management Plugin 2.5.2:
Fixed problem with opening external color profiles on Windows systems.

More info at www.einhugur.com

2 Likes

e-CryptIt Engine for Xojo 14.4 is out

e-CryptIt Engine is a plugin to do Compression, Hashing, Encryption, and all sorts of File encodings.

New in version 14.4:
Added EinhugurBase32 module which supports RFC 4648, base32hex - RFC 2938 and z-base-32 Base32 variants.
Changed methods in EinhugurBase64 module from Global to public scope - See migration notices.
Changed names of methods in the EinhugurBase64 module - See migration notices.

More info at www.einhugur.com

2 Likes

We just posted version 1.1 of the Einhugur Fork of the TextInputCanvas.

New in version 1.1:

  • Dark mode in macOS Xojo IDE is now handled better.
  • Made the control more API2 savy.
  • Control has now been split into APIv2 version and legacy version.
  • Some parts are now strongly typed instead of having Object parameters.
  • Some optimisations.

Our git repo can be found here:
https://bitbucket.org/einhugur/textinputcanvas/src/master/

Built plugin can be downloaded here:
https://einhugur.com/Downloads/Plugs/TextInputCanvas.zip

TextInputCanvas

TextInputCanvas is a plugin for the Xojo programming environment that allows developers to implement custom text input controls with international input support.

Our TextInputCanvas is fork of the TextInputCanvas from Xojo Inc at: GitHub - xojo/TextInputCanvas: TextInputCanvas is a plugin for the Xojo programming environment that allows developers to implement custom text input controls with international input support.

We have progressed their version and provide builds for everyone for all platforms.

Note: We cannot help you with setting up build tool chain or provide you with any custom tools we use in our tool chain.

Special thanks to Martin, who has been testing and also submitting changes.

2 Likes

@Björn_Eiríksson:

I’m seeing a hard crash on application launch using your build of TextInputCanvas 1.1. Works fine on macOS and Windows 10.

Here’s the gdb output from 64-bit Linux Mint:

garry@mint-laptop:~$ gdb '/home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness' 
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness...
(No debugging symbols found in /home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness)
(gdb) run
Starting program: /home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff2e23700 (LWP 2599)]
[New Thread 0x7ffff2622700 (LWP 2600)]
[Detaching after vfork from child process 2601]
[Detaching after vfork from child process 2602]
[Detaching after vfork from child process 2603]
[Detaching after vfork from child process 2604]
[Detaching after vfork from child process 2605]

Thread 1 "Better Code Edi" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x00007ffff16e399c in FirePaint(REALobjectStruct*, REALobjectStruct*, Rect const*, int) ()
   from /home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness Libs/TextInputCanvas1101.so
No symbol table info available.
#2  0x00007ffff5b490f1 in ?? ()
   from /home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness Libs/XojoGUIFramework64.so
No symbol table info available.
#3  0x00007ffff5ad62fa in ?? ()
   from /home/garry/My Apps/BCE - TextInput 1.1/Better Code Editor Dev Harness Libs/XojoGUIFramework64.so
No symbol table info available.
#4  0x00007ffff52565ef in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#5  0x00007ffff51feec3 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#6  0x00007ffff4959a56 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7  0x00007ffff4977dd1 in g_signal_emit_valist ()

Do we know if this is new for 1.1 or if 1.0 did this also ?

Thanks