Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

SimpleFont Size

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    SimpleFont Size

    This may have been hashed over endlessly -- if so, please just point me there. My searching did not find it. My concern is that the GUI will not be doing what users expect with respect to font sizes. I believe that users expect to specify font sizes in points, not pixels -- device-independent or otherwise. I hope this is not too nit-picky, but it seems like gratuitously breaking user expectations.

    =====
    The issue is that SimpleFont does not take points for its size, it takes device independent pixels. That's fine internally, but should not be allowed to make it all the way to the GUI. When a SimpleFont object appears in the GUI, such as on the Indicators dialog, it asks for the size in "px" instead of "pt". I see a couple of usability issues with that.

    The primary usability issue is that users are used to specifying font sizes in points. Note that points are just as device independent as the SimpleFont Size units. To illustrate my point, here is one of the first things I turned up when searching:

    Tech support (NinjaTrader_ZacharyG) erroneously said
    Here's an example to change the font to 12 point Times New Roman:

    NinjaTrader.Gui.Tools.SimpleFont sf = new NinjaTrader.Gui.Tools.SimpleFont("Times New Roman", 12);
    TextFormat textFormat = sf.ToDirectWriteTextFormat();
    A little further down in the same stream koganam said the same thing. Both of those people are well-respected and know enough to know better, so if even they are mistaken, then what about normal users? How many users are going to know, and find convenient, that to get a point size they are used to they need to specify a size that is 96/72 times the point size they want? Wouldn't it be better to ask the user for points to begin with, and have the code internally convert that by the 96/72 factor?

    As another example, I notice that the code breaking changes documentation warns "Objects which previously used System.Drawing.Font now uses new NinjaTrader.Gui.Tools.SimpleFont class:" which is fine as far as it goes. The example it gives, though, is
    Gui.Tools.SimpleFontmyFont=newGui.Tools.SimpleFont("Arial",12);
    I could be wrong, but I believe the author had in mind the common 12-point Arial font. Perhaps I am wrong and the author really was intending a 9-point Arial font, but I doubt it.

    My point is just that everyone is used to thinking of font sizes in points, so the GUI should go along with that and let the code do otherwise internally if that is desired.

    =====
    Second, but I would think less serious, is that the Size is in device-independent pixels. How many non-technical users are going to realize that they are specifying in imaginary pixels that are 96 per inch rather than physical pixels on their monitor? The difference is not much with traditional monitors (which is why 96 per inch got picked), but will become more pronounced with higher resolution monitors, such as 4K.

    --EV
    Last edited by ETFVoyageur; 07-29-2016, 06:05 AM.

    #2
    Hello ETFVoyageur,

    Thank you for your post.

    I will bring your concerns to the Development Team.

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by burtoninlondon, Today, 12:38 AM
    0 responses
    9 views
    0 likes
    Last Post burtoninlondon  
    Started by AaronKoRn, Yesterday, 09:49 PM
    0 responses
    14 views
    0 likes
    Last Post AaronKoRn  
    Started by carnitron, Yesterday, 08:42 PM
    0 responses
    11 views
    0 likes
    Last Post carnitron  
    Started by strategist007, Yesterday, 07:51 PM
    0 responses
    13 views
    0 likes
    Last Post strategist007  
    Started by StockTrader88, 03-06-2021, 08:58 AM
    44 responses
    3,983 views
    3 likes
    Last Post jhudas88  
    Working...
    X