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 JoMoon2024, Today, 06:56 AM
    0 responses
    6 views
    0 likes
    Last Post JoMoon2024  
    Started by Haiasi, 04-25-2024, 06:53 PM
    2 responses
    17 views
    0 likes
    Last Post Massinisa  
    Started by Creamers, Today, 05:32 AM
    0 responses
    5 views
    0 likes
    Last Post Creamers  
    Started by Segwin, 05-07-2018, 02:15 PM
    12 responses
    1,786 views
    0 likes
    Last Post Leafcutter  
    Started by poplagelu, Today, 05:00 AM
    0 responses
    3 views
    0 likes
    Last Post poplagelu  
    Working...
    X