The name of the class and functions related in the stack trace changes, but the problem is always the same. Same function in Apples framework wants to call deprecated accessibilityIsAttributeSettable function, but that one is no longer implemented in Apple's own classes. It's a code path which doesn't happen for all users, so only a few get the crash and maybe this is related to some accessibility setting.
Anyway, via a new InstallNSAccessibilityPatchMBS function in our plugin, we'll patch it and install a accessibilityIsAttributeSettable function to just return false every time. If the class has such a method, the class method is preferred, but we install a fallback to avoid the crash.
As you may know you can use MBS Plugins with Xojo and FileMaker to write PDFs with DynaPDF functions. The WriteFText functions accept formatting commands in the text, so you can create various formats. We got a few examples in the following Xojo source code:
Change text rise and size to get footnote references
Change font to get e.g. a bold font
Create lists with hierarchies, numbered entries or multiline entries.
Check the sample code here:
//setfontcall pdf.SetFont "Helvetica", 0, 12.0, true, pdf.kcpUnicode
dim y asDouble = 50//changefontsizeandraiseforfootnotereferences
text = "\FSHelloWorld\FS\TR123\TR\FSJustatest."call pdf.WriteFTextEx(50, y, 200, -1, pdf.ktaLeft, text)
y = y + 20//changefonttogetbold
text = "\FT[Helvetica]Hello\FT[Helvetica-Bold]World\FT[Helvetica]everyone."call pdf.WriteFTextEx(50, y, 200, -1, pdf.ktaLeft, text)
y = y + 20//changecolorinthetext
text = _
"\FC[" + str(DynaPDFMBS.RGB(255, 0, 0)) + "]Red"+_
"\FC[" + str(DynaPDFMBS.RGB(0, 255, 0)) + "]Green"+_
"\FC[" + str(DynaPDFMBS.RGB(0, 0, 255)) + "]Blue"+_
"\FC[" + str(DynaPDFMBS.RGB(0, 0, 0)) + "]Black"call pdf.WriteFTextEx(50, y, 200, -1, pdf.ktaLeft, text)
y = y + 20//makelist
text = _
"\LIThird\EL#"call pdf.WriteFTextEx(50, y, 200, -1, pdf.ktaLeft, text)
The same formatting texts can be used in FileMaker, Xojo and any other development tool supported by DynaPDF like C++, VB, PHP and Delphi.
We got the announcement of an update to ChartDirector:
Advanced Software Engineering is pleased to announce the immediate availability of ChartDirector 6.3.
ChartDirector 6.3 adds support for embedded resources in executables. As embedded resources are mostly used in desktop GUI applications (as opposed to web or command line scripts), so ChartDirector 6.3 is only released for C++ and .NET (C#, VB).
ChartDirector can use images for the chart background, pattern colors, scatter symbols, CDML icons, … In previous versions of ChartDirector, these images have to be provided using file system paths. ChartDirector 6.3 allows these images to be embedded in executables as resources, and uses "resource paths" to access them. This eliminates the need to redistribute image files with the executable.
Apart from images, font files can also be embedded as resources.
In our Xojo plugins we have the IconMBS and IconFamilyMBS classes. They use Apples frameworks with icon functions, but those are not well maintained the last few MacOS releases and we see more and more issues. Probably as a lot of functions are based on the deprecated QuickDraw framework. So we deprecate IconFamilyMBS class for the next prerelease plugin.
So please change code and move to newer functions. For example instead of IconFamilyMBS class to get an icon in various sizes, you can use NSWorkSpaceMBS class methods. IconForFile functions returns the icon for a file and than you can use NSImageMBS class to scale down. With the following code you can quite easily get a 2x picture for a FolderItem:
const SizeWanted = 256 dim file as FolderItem = SpecialFolder.Desktop.Child("test.rtf")
dim n as NSImageMBS = NSWorkspaceMBS.iconForFile(file) //setsizewewant
n.setSize SizeWanted*2, SizeWanted*2
//makepicture dim p as Picture = n.CopyPictureWithMask
//make2xpicturehere: dim q asnew Picture(SizeWanted, SizeWanted, array(p))
If you need an icon for a file type, you can use the IconForFileType function. If you need to add an icon to a file, please use SetIcon method in NSWorkSpaceMBS class.
Wer Interesse hat an einem Termin mit mir für Softwareentwicklung, Schulungen, Entwicklungshilfe, Plugin Empfehlungen, assistierte Fehlersuche, Code-Review und IT-Beratung, der darf sich gerne melden für eine baldige Terminfindung.
The November/December (16.6) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
Munich 2018 by Marc Zeedar
The MBS Xojo Conference in Germany gets bigger every year. This fall it was held in Munich and Marc went so you could stay home and read all about it.
Upgrading Xojo by Jim Meyer
No doubt you have a few older Xojo projects you haven't upgraded to the current version. How much trouble will it be to get them working in the latest IDE? Will it be worth it? Jim shares his experience.
Road Work by Marc Zeedar
These days, programmers can work almost anywhere there's Internet. Marc spent a few weeks in France testing the theory and has tips for working on the road.
Building a Controller by JC Cruz
Jose shows how to build a data-entry controller.
PLUS: Clipboards, database rules, database transactions, Xojo 2018r3, and more!
We got updated ChartDirector control example projects for HiDPI and Xojo 2018r3 coming with next MBS Plugins:
When using our plugin, you can set CDBaseChartMBS.ScaleFactor to 2 to get our plugin to multiply all numbers by 2 and get you a higher resolution of the graph. This makes it easy to adapt an application for higher resolutions.
For MBS Plugin there is a little change we will apply to next plugin release: The list of data types for SQL in the Xojo plugin SDK was extended and now includes all variants of integer from 8 to 64-bit and signed/unsigned. We''ll update our MBS Xojo SQL Plugin to make sure we can pass right data type to Xojo for UInt16 and others. The plugin will stay with old behavior for older Xojo versions.
This Xojo release looks great so far and we are moving a lot of projects from older versions to the new Xojo 2018r3 release. The labels on Windows are a big improvement as well as the other changes to reduce flicker on Windows. And the new Xojo version works with Xcode 10, which we need for MacOS 10.14 Mojave.
There is a move in software development to get us 64-bit only on Mac. We like to avoid the annoying dialogs for 32-bit for our customers and soon start implementing the notarization for our apps. There is an AppWrapper update (3.9) coming to help there. But usually it will be a shell script to do the signing, the notarization and build a dmg. We want to automate the build process as much as possible.
For old Real Studio, it may come the time to say good bye. MacOS 10.15 may no longer support 32-bit and not run it.
This is a PDF preview in Microsoft Edge. The PDF in question uses an OpenType font with postscript outlines with the variant without CID Font operators and this format is not supported by the Microsoft Edge PDF viewer.
For MacOS, the preview app shows the PDF, but when you print it, you get an empty paper.
We got a workaround for using this type of font with DynaPDF functions in our FileMaker and Xojo Plugins. So if you like to use such a font and get a working preview above, you need to not use the unicode encoding, but pick one of the 8-bit code pages like 1252.
Query the properties for font via GetSysFontInfos (Xojo) or DynaPDF.SysFontInfo (FileMaker) and check what you get back for BaseType. If the base type is OpenType. If it is open type and CIDOrdering property is empty, please don't use unicode code page for loading that font.
Or as I assume most clients do, is to trash the font and use one with proper character collection information. Otherwise having a checkbox to fall back to 1252 code page could be a checkbox to include for PDF output.
For testing, we used both the Smart Card Reader from König (left) and the SmartTerminal ST-1144UB from Cherry (right). Both do the job with a little difference. For the left device, you can connect and query status, even if there is no card. The right one only allows to connect when you have a card inserted. Other readers work probably as this uses a standard interface and drivers are built into the operation system.
For Xojo we got the new CryptoTokenKit classes in MBS Xojo Mac64bit Plugin for the modern way Apple likes to handle this with asynchron operation and delegates. Beside this, we also go the older cross platform way via PCSC API and the ReadFile method in and SmartCardMBS class.
Whatever function you use, you can pass the right file ID and read the files you need from the smart cards. We also got a function to split the data into the parts. See SmartCard.SplitValues for FileMaker and SmartCardMBS.SplitValues function for Xojo.
As you may know all Belgians have an identify card. We recently added classes for CryptoTokenKit framework on Mac and translated a sample project from Swift to Xojo to read those card. Works very well to get basic information, address details and the picture of the person.
The same could have been done with our SmartCard classes. And as those classes use the PCSC interface on MacOS, Windows and Linux you could even get it done cross platform.
With last plugin release we enabled the option for CURL to disallow you passing user name and password. As URLs are sent to proxy and may be logged at the web servers, we prefer to not include credentials in the URL. And if you use the email address for user name, the name in the URL never worked.
So for the future, please separate them and put the credentials in the relevant options:
G J P (Transparent Scree…): I’m a purchaser of your s… Sunil Abraham (MBS Xojo Plugins,…): Please update libXL in th… Steve Koger (Tip of the day: I…): This is broken in 2018rx … Markus (MBS Xojo Conferen…): > Sorry, there’s a typo i… Markus (Disable tab panel…): Mac only, I presume? claude Pirlot (FileMaker Cloud 1…): super Chaim Bacon (Plugin wishes for…): Apply a password to an Ex… Markus Winter (SSH tunnel in Xoj…): This seems wrong (extra E… Christian Schmitz… (Combine PDFs 5.3): We sent your key to the o… Kathy Mooney (Combine PDFs 5.3): I’m not sure which e-mail…