NICKENICH, Germany (February 26th, 2013) -- Monkeybread Software releases version 2.3 of the MBS Xojo SOAP Kit.
With this SOAP Kit, you can parse the webservice description file (WSDL) and generate source code for all the methods, constants and classes defined in your webservice. You add this code to your project together with additional source code provided from MBS. Now you can call the web service methods like any other method in your code.
The new versions adds a new sample project for VAT service of European Union, improves handling of arrays and some keywords. The generated code now contains Clone methods, Copy and Value constructors for easier usage.
- Complete SOAP solution for professional Xojo (Real Studio) users
- Parses the description of your webservice as WSDL.
- Out SOAP Utility generates for you:
- Classes for each data type in the WSDL
- Modules with constants defined in the WSDL
- Modules with methods to call WSDL functions synchronously and asynchronously
- Includes shared code for common tasks:
- Error handling
- Verify WSDL matches between Client and Server.
- XML creation and parsing
- All source code generated for your application is not locked or encrypted.
More Information on the
SOAP Kit website.
Today I found a way to print to PDF file in Cocoa app with Xojo. Next plugin prerelease will have the required functions to have this code work:
Sub Action()
// print to PDF in Xojo Cocoa app
// change print info to go to
dim s as NSPrintInfoMBS = NSPrintInfoMBS.sharedPrintInfo
dim d as MemoryBlock = s.data // save old
s.SetSaveDestination SpecialFolder.Desktop.Child("test.pdf")
// now print something
dim g as Graphics = OpenPrinter
If g <> Nil Then
g.DrawString "Hello World PDF", 20, 20
End If
s.data = d // restore original settings
// now print something to regular printer
g = OpenPrinter
If g <> Nil Then
g.DrawString "Hello World Printer", 20, 20
End If
End Sub
PS: New plugin is in dropbox.
New in this prerelease of the 14.1 plugins:
- Added more CoreImage functions.
- Improved CFBookmarkMBS module with new overloaded methods using CFURLMBS.
- Added RenderPageToImageMT function to raster PDF pages in preemptive thread.
- Fixed an issue where plugin would call QuickTime function on Windows where no QuickTime is available.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
Today was a new
forum post with a job offer from Xojo, Inc:
Xojo, Inc. is looking for two qualified and enthusiastic individuals to join our global marketing team as a German Xojo Evangelist and an
Italian Xojo Evangelist. The ideal candidates would be passionate about Xojo and software development, comfortable answering technical and sales related questions, have some experience with other development tools to better enable them to answer technical questions (such as xcode, Live Code, Visual Studio, etc.) and be versed in social media.
Duties include:
- Conduct Xojo webinars for international audience modeled after English language webinars;
- Localize Xojo.com website into target language and maintain regularly for changes and new content;
- Localize provided Google Adwords to increase search traffic;
- Grow Xojo community by engaging with users on Twitter, Facebook, Google + and other social media websites;
- Localize press releases; and
- Assist with other activities unique to language.
This position is not a full-time position, estimate spending ~10 hours week.
While I like the idea of having more Xojo staff living in Europe, I fear that breaking up contracts with local distributors in German and Italian could have negative effects. We already lost translation of the IDE and still wait for the Xojo manuals in German. Also some people prefer to buy without credit card from a local company instead of buying from Xojo directly. Finally I hope the 10 hours per week is quickly extended because I bet you need more time just for answering support questions...
New in this prerelease of the 14.1 plugins:
- Changed GammaMBS for Mac, so you can have one GammaMBS object for each screen.
- Updated GammaMBS class to work on newer Macbooks with 1024 entries in the gamma table.
- Fixed issue with HTMLViewer.PrintDialogMBS function, so it actually prints a second time.
- Updated LCMS2 library to version 2.6.
- Added LCMS2ContextMBS class for context information. Now you need to pass objects of this class instead of variant.
- Updated DynaPDF library to version 3.0.32.83.
- Added SQLDateTimeMBS Constructor, DateValue and Set method to work better with normal date objects.
- Fixed bug with printing on HTMLViewer. PrintingPageMBS function returned nil.
- Added CFProxyMBS class to detect proxy on Mac.
- Added WinHTTPClientMBS class to detect proxy on Windows automatically.
- Improved event handling for CFSocket, Bonjour classes, FSEvents, Mac HID classes, IOIOPowerSourcesMBS and SleepNotificationMBS so it works better if you run it on a thread.
- Fixed problem with Graphicsmagick, so JPEG 2000 works again on Mac and Linux.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
BKeeney Software is happy to announce that we are offering our 2nd annual training day before the Xojo Developer Conference 2014 in Las Vegas, Nevada. Ask questions and meet the entire BKeeney Software staff. Learn from Xojo experts with over a decade of producing high quality desktop and web applications for clients all over the world! This full day of training consists of:
- Morning Session: It's all about Xojo desktop apps and some of the tricks and techniques that we use to make high quality applications
- Lunch
- Afternoon Session: It's all about Xojo web applications and how to make high quality web apps.
This year the training is more interactive and hands on. We also are asking you what topics you want us to cover (we ask at purchase checkout) so we can incorporate that into what's turning out to be a very full day of Xojo training.
All attendees get a complimentary three month subscription to our Real Studio and Xojo video training series. That's over 42 hours (and growing) of video and hundreds of project files.
For more information on the BKeeney Software training day please visit
bkeeney.com/xojo-training-2014/. For more information on the Xojo Developer Conference, please visit
xojo.com/xdc/.
This Friday is the last day to get our discounted price so save yourself some money by signing up sooner rather than later.
I look forward to seeing all of you in Las Vegas!
There is a problem with WebTextField. On certain browsers the user may have the field being autofilled and no event is triggered, so the Xojo runtime does not notice the change and the text property in code has not the new text.
For that there are two Feedback cases:
30289 and
30875.
Now a fix is possible like this:
dim s as string
s = "document.getElementById('"+TextField1.ControlID+"_inner').onchange = "+_
"function () { Xojo.controls['"+TextField1.ControlID+"'].fireAction(); };"
ExecuteJavaScript s
s = "document.getElementById('"+TextField1.ControlID+"_inner').onpropertychange = "+_
"function () { Xojo.controls['"+TextField1.ControlID+"'].fireAction(); };"
ExecuteJavaScript s
As you see we install onchange and onpropertychange event handlers in javascript and fire the action event for the control which causes the TextChange event to fire later. This way the xojo runtime knows something happened in the textfields. You can run this in a shown event, so the control is setup in the browser and you modify it early.
As far as I got the feedback, it seems to fix the problem here for a client.
Wow, the first Xojo developer conference to sell out.
PS: if you cancel, please let people know via xojo forum, so others can take the chance to get your seat.
NICKENICH, Germany (February 4th, 2014) -- Monkeybread Software releases version 14.0 of the MBS plug-in for Xojo and Real Studio.
The MBS plug-in comprises a collection of several plug-in parts which extend the Real Studio development environment with 1,900 classes featuring over 50,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console.
Some of the highlights on the 14.0 update:
Our new
SSH plugin allows you to remotely login to a computer. For the connection you can let the plugin connect a socket or pass an already connected TCPSocket to the plugin. This plugin is supported on Mac OS X, Windows and Linux and allows better integration into your app than running ssh via shell class.
For Cocoa we added a new
NSButtonCellMBS class. For various control classes we got new events like TextDidBeginEditing, TextDidEndEditing and TextDidChange. Our OpenDialogMBS class now has a Cocoa implementation and for OverlayMBS class the WindowHidden and WindowShown events work now on Cocoa target.
We updated our
AVFoundation plugin for Mac OS X 10.9 Mavericks. This adds more than 400 new functions and 18 new classes. For the events, we now can pass variant tags everywhere. This way you can pass context information to the events. With AVFoundationMBS.WriteCGImageToFile method you can save images in background for even better performance extracting frames from a video.
The SQL Plugin now has be updated to use properties instead of methods, so you see more values in debugger. The new fields and parameters dictionaries in the
SQLCommandMBS class allow you to see parameter and field values in the debugger. If you set our new RaiseExceptions property to false, you will not see
SQLErrorException, but you can check the Error properties.
For Linux we added support for the window transparency functions. The
GTKWindowMBS class can now be used to assign a new Icon to a window. Also we fixed some linker issues on Linux with plugins and no longer optimize away stack frames for better crash reports.
The
PictureMBS class now handles 16bit grayscale images for some operations. The new InputData property in CURL classes allows providing data for upload without using Read event. The GetVariantArrayMBS function allows casting any array of objects to an array of variants. With
CallDelegateOnMainThreadMBS method you can run methods on the main thread from any other thread. The
VerifyEmailMBS function can check emails for syntax and query if the domain has a valid mailbox server. Finally the
SignalHandlerMBS class can set a flag and ignore signals, so you can handle them later, e.g. catch Control-C in a console app and gracefully exit your app.
DynaPDF has been updated to version 3.0.32.82 and can now highlight text with ignoring case and accents. LibXL is updated to version 3.5.4 and the XMP Toolkit to version 5.5.
See
release notes for a complete list of changes.
If you have questions, please don't hesitate to contact us.
For our German speaking customers, we offer training days:
Für unsere deutschsprachigen Xojo Entwickler bieten wir dieses Jahr auch wieder eine Schulung an. Am 22. und 23. Mai 2014 im Viva Hotel in Konstanz. Lernen Sie neues über Xojo kennen, vertiefen Sie ihre Kenntnisse und tauschen Sie sich mit anderen Entwicklern aus. Das genaue Schulungsprogramm hängt natürlich davon ab, ob iOS am Tag der Schulung verfügbar ist in Xojo und welche Wünsche die Teilnehmer haben. Bitte bringen Sie Ihre Fragen mit.
Herzlich sind Sie auch eingeladen am 22. Mai abends vorbei zu schauen zu einem Xojo Stammtisch.
Das Programm aktuell:
21. Mai
ab 18:00 Abend vorher, Gemütliches Beisammensein.
22. Mai
ab 9:00 Xojo
Schulung: Xojo Grundlagen für Einsteiger um Umsteiger.
ab 18:00 Xojo
Stammtisch. Jedermann ist herzlich willkommen andere Xojo Entwickler kennen zu lernen.
23. Mai
ab 9:00 Xojo
Schulung: Xojo für Fortgeschrittene
Treffen Sie andere Xojo bzw. Real Studio Entwickler und lernen Sie neues kennen aus Ihrer Lieblingsentwicklungsumgebung.
Für die Schulung haben wir folgende Themen im Angebot:
* Einführung in Xojo, Rundgang durch die Entwicklungsumgebung.
* Entwicklung einer Beispiel Anwendung mit Datenbank sowohl mit Desktop als auch für das Web.
* Programme ausliefern: Web Apps installieren, Build Scripte nutzen, Programme signieren.
* Anpassung von Web Anwendungen an Mobile Geräte.
* Falls iOS verfügbar ist bis zur Schulung: iOS App Einführung (erster Tag) bzw. iOS Client/Server Anwendung entwickeln (zweiter Tag)
* Und vieles mehr nach den Wünschen der Teilnehmer.
Mehr Informationen und Anmeldung auf unserer Webseite.
Compared to the thing I found this morning, this one is even much better. We hide the whole WebFileUploader and move the invisible file selection area over a normal button. This way the file uploader works, but is invisible. This is a solution for feedback case 18068 and I hope Xojo, Inc. can make an official way to do this soon.
So here is the code for the shown event of the file uploader:
// connect + from FileUploader1 to Button1
js =
"document.getElementById('"+FileUploader1.ControlID+_
"_form').appendChild(document.getElementById('"+Button1.ControlID+
"'));"+_
"var chooser=document.getElementById('"+FileUploader1.ControlID+_
"_form').getElementsByClassName('chooser')[0];" +_
"var input = chooser.getElementsByTagName('input')[0];"+_
"chooser.style.cssText = 'position: absolute; left: 0px; bottom: 0px; width: "+str(button1.Width)+_
"px; height: "+str(button1.Height)+
"px; overflow: hidden;';"+_
"input.style.cssText = 'position: absolute; left: 0px; bottom: 0px; background-color: #FFFFFF;opacity: 0;filter: alpha(opacity=0);width: 100%;height: 100%;';"+_
"document.getElementById('"+Button1.ControlID+
"').appendChild(input);"
ExecuteJavaScript js
As you see it's not that difficult. We find the button and the input item from the uploader. Than we assign some css to keep the styles working and add the input area as a child to the button.
Example project:
InvisibleFileUploaderWithButton.zip
If you like to limit what file types can be accessed in a file uploader, you can set it like this:
dim js
as string =
"document.getElementById('" + FileUploader1.ControlID+ _
"').getElementsByTagName('input')[0].accept = 'image/jpeg';"
ExecuteJavaScript js
Put this code in a shown event if you like. It will lookup the file uploader control in javascript, look inside of the input element and set the accept parameter there to image/jpeg. Now you can only select jpeg images. Works of course only for the mime types known on the given PC running the app.
See also Feedback case 32040 for this topic and find there an example project.
In the last days I worked on updating the obfuscate plugin app for Xojo. We had some success with the xojo plugins, but there are still the internal plugins and the runtime library. But instead of changing the files inside the xojo app, we got another idea:
We simply post process the built app, changing all the library names.
Take a look on this screenshot:
As you see we renamed all libraries and also changed all the library references to the new names. So the app is still running perfectly.
Please try it. Project is here:
ObfuscateApp.zip or included with next plugins.
(for Mac app I copied the Frameworks folder out of the app so you see it on the screenshot)
New in this prerelease of the 14.0 plugins:
- Added SQLValueMBS.setAsBytes method taking string.
- Added Fields and Parameters dictionary properties to SQLCommandMBS. This way you can inspect field and parameters in debugger.
- Fixed bug with SQLConnectionMBS and SQLCommandMBS and new Tag property.
- Changed methods to properties for NSCellMBS class.
- Changed methods to properties for AVMetadataItemMBS class.
- Added NSButtonCellMBS class.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.