Omnis Weblib for Studio 5 -- Work in Progress
David McKeone
david at artsman.com
Wed Aug 13 19:23:04 EDT 2014
Hi Everyone,
I have some positive news on the Mac front. Thanks to some amazing by Stefan Csomor the external is now drawing pretty well in the window on Mac. I’d also like to thank Kelly Burgess, Bastiaan Olij, Derek Delpero, and Mitford House for their feedback as well. There is still work to be done, but we are getting closer. This component requires the drawing of a Cocoa View within the older Carbon/Quickdraw Omnis windows, so it’s been a bit of a battle, but I’m still optimistic.
To see the (very hacky) Mac prototype project download it here: http://www2.artsman.com/omnis/Omnis-weblib-mac.zip
If you just want to give it a try without digging into C++ code you must:
1) Extract the zip file to a directory. E.g. Macintosh HD:omnis-weblib
2) Open "deploy" folder. Macintosh HD:omnis-weblib:deploy:Mac
3) Copy the weblib.u_xcomp into your Omnis.app package E.g. /Applications/Omnis Studio.app/MacOS/Contents/xcomp
4) Copy Awesomium.framework from “deploy/bin/ext/web/browser/system-mac” to /Library/Frameworks
5) Set permissions on the framework package:
sudo chown -R root:admin /Library/Frameworks/Awesomium.framework
5) Open (but do not move!) the library "demo5.lbs" in the "lbs" folder. E.g. C:\omnis-weblib\lbs\demo5.lbs
Florian:
—————————
Thank so much for getting us this far. I’m happy to take over the project maintenance, if everyone is ok with that. My fork is at https://github.com/dmckeone/omnis-weblib and all the changes I’m making will end up there.
Brian:
————————
I believe Awesomium allows pretty close interaction with Javascript (I know that the underlying Chromium allows a lot of options). If Awesomium allows it (http://wiki.awesomium.com/), then it should be fairly easy to wire it up into Omnis.
On the component store front, I think it would be great if other Omnis developers created sub-windows that could wrap this external to give a nice Omnis API interface to underlying JS components. It could really open things up to new types of interactions without losing the power of Omnis.
__________________________________
David McKeone
Arts Management Systems Ltd.
mailto:david at artsman.com
http://www.artsman.com
Phone: (403) 536-1203 Fax: (403) 536-1210
On Aug 13, 2014, at 6:04 AM, Brian Steerwood <B.Steerwood at wigasoft.ch> wrote:
> Hi Florian and David
>
> Florian, a big thanks from me too. What you have created is really a huge step forward in the right direction. This opens up possibilities beyond our current imagination. Just a thought, now we reduce the component store to just this plugin... :-)
>
> And thank you David for your personal commitment and work on this project and making it Studio 5+ compatible and maybe even cross-platform.
>
> I have one question regarding the communication between Omnis und JS. Are there more events than evCloseModule and evShowMsg? Or to be more precise, is there a more generic way to communicate with Omnis and/or is it possible to extend this interface without changing internal methods inside the external?
>
> Thank you
>
> Brian Steerwood
>
>
> -----Ursprüngliche Nachricht-----
> Von: omnisdev-en-bounces at lists.omnis-dev.com [mailto:omnisdev-en-bounces at lists.omnis-dev.com] Im Auftrag von DATAX AG, Florian Binder
> Gesendet: Dienstag, 12. August 2014 10:45
> An: OmnisDev List - English
> Betreff: AW: Omnis Weblib for Studio 5 -- Work in Progress
>
> Dear List,
>
> thank you all for the kind words. I hope you all enjoy these new possibilities.
>
> We are currently not planning to continue developing the open source version of this component, since the version we released is a fork of our component we use in our application.
>
> In the future it might be possible the we release another version or contribute to a fork if we achieve something worth motioning.
>
> Mit freundlichen Gruessen
> DATAX AG Unternehmensberatung
>
>
> i.A.
> Florian Binder
> _____________________________
> DATAX AG Unternehmensberatung
> Aixheimer Strasse 12
> 70619 Stuttgart
> Deutschland
> Fon: +49 711 47667-0
> Fax: +49 711 47667-29
> fb at datax-ag.de
> www.datax-ag.de
> _________________________________________________
> Vorstand: Christian Hirzel (Vorstandsvorsitzender), Jakob Hirzel Vorsitzender des Aufsichtsrats: Herbert Graef Amtsgericht Stuttgart HRB 13 127
>
>
> -----Ursprüngliche Nachricht-----
> Von: omnisdev-en-bounces at lists.omnis-dev.com [mailto:omnisdev-en-bounces at lists.omnis-dev.com] Im Auftrag von David McKeone
> Gesendet: Montag, 11. August 2014 19:06
> An: OmnisDev List - English
> Betreff: Omnis Weblib for Studio 5 -- Work in Progress
>
> Hi Everyone,
>
> Big thanks again to Florian Binder and DataX for getting the ball rolling on the modern HTML5-compliant browser component.
>
> I'm extremely excited about this, and I know that others must be as well, so I thought I'd do my work to convert over to Studio 5 out in the open, and post regular Work in Progress (WIP) builds to our website so that everyone can follow along. I will definitely submit all of these changes back to the main project, but I'm not ready to do that just yet, since the main project will need to be both Studio 4 and 5 out of the box -- and some of my changes to the project have broken Studio 4 compatibility.
>
> If you aren't excited about this, then take a look at some of these HTML5/JS graphing libraries and imagine that they could be in your apps:
>
> - http://raphaeljs.com/
> - http://nvd3.org/
>
> It also supports WebGL (http://media.tojicode.com/q3bsp), video (e.g. YouTube), and all the usual HTML5 goodies (http://html5rocks.com). Of course to use a lot of this stuff you'll have to become more familiar with HTML, CSS, and Javascript, but that's just how it goes these days ("Any application that can be written in Javascript, will eventually be written in Javascript": http://blog.codinghorror.com/the-principle-of-least-power.
>
>
> If there are any questions, it's a probably good idea to keep things open and ask them on this list so that everyone can benefit.
>
> Link: http://www2.artsman.com/omnis/OmnisWeblib5-20140811-WIP-Windows.zip (Binary xcomps for Studio 5+ on Windows)
>
> NOTE: awesomium.dll and some other dlls and files in the directory come from the Awesomium project (http://www.awesomium.com/), and were placed in their appropriate directories based on instructions from https://github.com/fb-datax/omnis-weblib. I'm putting them here for your convenience (and I hope it all works without the installer), but in the long run you will probably also want to download the installer for Awesomium and check the distribution requirements and costs. This preview shouldn't be misconstrued as a distribution of any kind from Artsman, it's merely an early alpha look at the work I'm doing personally, and I'm using the Artsman server to host some of my open source work because the file is too big too email directly.
>
>
> Differences between this project directory and Florian's github version:
>
> - Addition of "isunicode", "UNICODE", and "_UNICODE" pre-processor flags for building Studio 5+
> - Added /Zc:wchar_t- build setting (Treat wchar_t as built-in type: No -- Studio 5 externals always need this AFAIK)
> - Added /Zc:forScope- build setting (Force Conformance In For Loop Scope: No -- Studio 5 externals always need this AFAIK)
> - Copied some functions from my OmnisTools helpers (https://github.com/dmckeone/NVObjTemplate) to assist with string handling
> - Consolidation of some string handling to make it easier to have a single non-unicode/unicode code base.
> - Change "logToTrace" to use regular C-strings instead of the Omnis str255 type, and convert C-Strings to str255 only when calling ECOaddTraceLine (easier Studio 4/5+ compatibility)
> - Add 'object->shutDownWebView()' on line 475 of weblib.cpp to prevent a crash when closing the browser window on Studio 5.
>
> - (Personal Preference) Change 'Output Directory' for Debug builds to: C:\TigerLogic\OS523\xcomp (which is where my current Omnis Studio 5 copy is installed) -- Allows me to just push the "Play" button in Visual Studio to start debugging. If you are going to do your own builds, you'll likely need to change this setting.
>
>
>
> If you want to install this on your own machine and test it in Omnis Studio 5+ (even if you don't have Visual Studio), I've included binary xcomps in the package. To install the xcomps:
>
> 1) Download the project zip file: http://www2.artsman.com/omnis/OmnisWeblib5-20140811-WIP-Windows.zip
> 2) Extract the zip file toa directory. E.g. C:\omnis-weblib
> 3) Open "deploy" folder. E.g. C:\omnis-weblib\deploy
> 4) Install DLLs in your Omnis directory
> a) Copy "awesomium.dll" from "next_to_omnis_exe" folder to be next to "omnis.exe" in the top-level Omnis Studio directory
> b) Copy "weblib.dll" from "to_xcomp" folder to be in the Omnis Studio "xcomp" folder (one level deep from the top-level Omnis Studio directory)
> 5) Open (but do not move!) the library "demo5.lbs" in the "lbs" folder. E.g. C:\omnis-weblib\lbs\demo5.lbs
>
> If you want to move the library to a different directory (or use the external in your own application) then you also need to move the 'deploy' directory, and you need to change the code in Startup_Task.$construct to point to the new location.
>
>
> Good luck!
>
> -David McKeone
>
>
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
More information about the omnisdev-en
mailing list