Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Controls, such as those appearing in Manipulate constructs, are by default rendered depending on the operating system. Wrapping everything in Style[..., ControlsRendering->"Generic"] makes sure that the controls' appearance is independent of the operating system (right?).

My question now is split into three parts:

  1. Does the rendering depend on the version of Mathematica es well? Specifically, is there a difference between versions 7, 8 and 9?

  2. Is there a way to estimate how the controls will be rendered for another operating system? I.e. can I get a rough idea (I'm using Windows 7) how my Manipulate will look like on a machine with, e.g., Mac OS X 10.7? It would be enough for me to find out if any of the sizes of things like Slider2D or SetterBar objects change drastically. Does the ImageSize option for Slider2D ensure a consistent size even on different operating systems?

  3. Can one define a function that makes sure that the default rendering is used on machines with windows, and the "Generic" style is used for non-Windows computers?

share|improve this question
add comment

2 Answers

For 1. and 2., all I can say is that I did not notice any change (the generic style is used when exporting to Flash or PDF) and that I don't think you can find out what a control will look like without trying it on a different OS.

For 3., you can use

ControlsRendering -> Dynamic@If[$OperatingSystem === "Windows", Automatic, "Generic"]

The Dynamic will make sure that this will not be evaluated only once when you create the control, but will stay "inlined" in the notebook and will be re-run every time you open it.


(To avoid confusion, note that the syntax option -> Dynamic[...] will only work in a few places, and only in expressions which are handled by the front end, such as graphics, styling and controls. It won't work in a kernel function like FindRoot which is executed/*evaluated* as opposed to being just displayed like Style is.)

share|improve this answer
add comment

For #1. The appearance of the controls is set by the code in the file

FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "TextResources", "Controls.tr"}]

So if you have V7, 8, 9 make copies of that file and then cut and paste the code into a notebook and evaluate and see what the graphics look like.

enter image description here

For #2. I think the answer for #1 covers #2 as well.

For #3. @Szabolcs has answered this.

share|improve this answer
    
So the things accessible with FrontEndResource are all in the .tr files? –  Szabolcs Dec 18 '12 at 20:36
    
Yes -- lots of interesting things in there, but be careful making changes. I'm sure Wolfram would say never make changes. –  Mike Honeychurch Dec 18 '12 at 20:39
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.