WebDialogs - The Lost Manual — R1 09 November 2009
-
Thanks for doing this Thomas.
-
Revision 1
Updated info about async vs sync behaviour. -
-
@unknownuser said:
Finally, there is a difference in the way that the Mac boots up SketchUp that you should be cautious about: there is no Sketchup.active_model when the Ruby scripts are first loaded. So if your script is making changes to the active_model at load time, it will not work on the Mac. The answer? Ensure code that references the active model is part of a UI event handler, responding to the user selecting a tool or a menu item. You can also use an AppObserver to get a callback whenever a new model is opened, at which point it's safe to talk to the active_model.
I didn't see this anywhere. I don't remember where it comes from.
How about marking topics and posts with [WebDialog]?
Good work - most generous with your time.
Chris
-
I hope that people will point out things that are not clear. Writing has never been my strongest skill, actually - its one of my poor, so please point out the weaknesses.
-
Thank you!
-
Hi Thom,
thanks for sharing this really usefull information!
Just as a side note:
We have found a bug, which cuts decimal value sent from SketchUp to WebDialog (only in SU6 on Mac). If we i.e. want to update the value of some input box like this:
web_dialog.execute_script("updateInputBox('varName', '12,345')")
only 12 is shown in the varnName inputbox, everything behind (and including) comma is being cut off. But it works in SU7 on Mac and on both, 6 and 7 versions of SU on Windows. -
Ah, is that whatæs being mentioned in the release notes: http://code.google.com/apis/sketchup/docs/releases.html
@unknownuser said:
Fixed Mac support for WebDialogs execute_script
WebDialog.execute_script('alert("Bug is Fixed!")');
Does it work if you escape the comma? If not, replace it with another character?
-
No, escaping doesn't seem to help. Only way to pass the float value is to write it using dot (1.12) not comma (1,12)...
For now we have not found a workaround, but we intend to make some more tests to see if the problem can be bypassed. -
I wonder, if you make a special receiving javascript function, and send all command base64 encoded to that function and have it decode and eval it..?
# made up methods - haven't checked the real methods jscall = base64encode("updateInputBox('varName', '12,345')") WebDialog.execute_script("decode(#{jscall})");
function decode(base64str) eval(decode64(base64str)); end
-
-
You won't be able to use HTML5 in webdialogs - not until IE adds support for it. Think I read somewhere that they where adding support for it in IE9. Being able to use CANVAS sure would be nice.
-
@thomthom said:
You won't be able to use HTML5 in webdialogs - not until IE adds support for it.
I am using excanvas http://code.google.com/p/explorercanvas/ which provides a canvas object in IE.
Thomas
-
@tbleicher said:
@thomthom said:
You won't be able to use HTML5 in webdialogs - not until IE adds support for it.
I am using excanvas http://code.google.com/p/explorercanvas/ which provides a canvas object in IE.
Thomas
That's very interesting! I've been wanting for a good solution to dynamically draw graphics in webdialogs. Probably be of interest for Whaat as well... ...thinking Profile Builder...
-
And just to have more options, there is also chrome frame.
-
@jim said:
And just to have more options, there is also chrome frame.
Yea, but this requires the user to install a browser plugin.
explorercanvas is a simple JS library which the developer includes in the project without the user ever having to install any browser extension. That's what's appeal to me. -
this seems to be very interesting
Have to dig into this. -
One thing driven discovered was that if for some reason there is whitespace as here -
cmd = "fImportReturn('#{array}');" @dlg.execute_script (cmd) instead of @dlg.execute_script(cmd)
it is OK on PCs but not Macs. This maybe of interest to coders who use this style (Jim).
-
Would a kind Mac user (or 2) open the Ruby Console, and give the result from entering:
$VERBOSE
and
$DEBUG
and
$-w
-
@jim said:
Would a kind Mac user (or 2) open the Ruby Console, and give the result from entering:
$VERBOSE
and
$DEBUG
and
$-w
> $VERBOSE false > $DEBUG false > $-w false
SU 7.1.6859
OSX 10.4
Advertisement