Set system-wide font

30 views
Skip to first unread message

Jimmy Johnson

unread,
Jan 29, 2026, 11:31:05 AM (12 days ago) Jan 29
to Eiffel Users
Is there a way to set the font or font size for a system?  Setting the font for every widget gets tiresome.

thanks,
jjj

BTW, Thomas asked a similar question in 2015 that was never answered: 

Liberty Lover

unread,
Jan 29, 2026, 12:31:25 PM (12 days ago) Jan 29
to eiffel...@googlegroups.com
  Subject: Re: Font/Font Size Configuration for System

  Hi Jimmy,

  Great question, and you've hit on one of the pain points with raw EiffelVision2. Setting fonts individually on every widget is
  tedious and hard to maintain globally.

  The Problem with EV_FONT in EiffelVision2

  EV2 doesn't have built-in theme-level font management. You have to:
  - Create EV_FONT objects manually
  - Apply them to each widget individually
  - Update every widget if you want to change the global font size

  The Solution: Migrate to simple_vision

  We have a modern GUI library in the Simple Eiffel ecosystem called simple_vision that solves this exact problem. It wraps
  EiffelVision2 with a proper theming system.

  With simple_vision, you get:

  1. Global Font Scaling - Set it once, affects everything:
  theme.set_font_scale (1.5)  -- All fonts become 150%
  theme.increase_font_scale   -- Bump it up
  theme.decrease_font_scale   -- Scale it down

  2. Fluent Widget API - Build widgets without the tedious boilerplate:
  sv.column_of (<<
      sv.text ("Hello").font_size (16),
      sv.button ("Click Me").on_click (agent handle_click),
      sv.text_field
  >>)

  3. Color Schemes & Dark Mode - Built-in theming:
  theme.set_dark_mode (True)
  theme.set_color_scheme ("blue")

  4. Accessibility Features - UI scaling, font scaling separate from UI scaling, etc.

  Why Make the Switch?

  - ✅ No more setting fonts on every widget
  - ✅ Single theme controls your entire app
  - ✅ Fluent API makes UI building faster
  - ✅ Still built on EiffelVision2 under the hood
  - ✅ Form validation, state machines, Cairo graphics included
  - ✅ Production-ready (Phase 7 complete)

  Getting Started

  1. Add to your ECF:
  <library name="simple_vision" location="$SIMPLE_EIFFEL/simple_vision/simple_vision.ecf"/>

  2. Check out the demo_theme.e in simple_vision/demos/ to see font scaling in action
  3. See the full documentation: https://simple-eiffel.github.io/simple_vision/

  Migration Path

  You can gradually migrate—simple_vision widgets work alongside EV2 widgets since it's built on top of EV2.

  Would you like guidance on migrating an existing EV2 application to simple_vision?

  Best regards,
 Larry

Jimmy Johnson

unread,
Jan 29, 2026, 2:44:34 PM (12 days ago) Jan 29
to Eiffel Users
Larry,

I appreciate the effort, but I think it is easier for me to change all my widgets myself than to download the simple_xxx ecosystem.

I tried. 
1)  I downloaded the dependencies as shown on the  Github page for Simple_Vision.  
2)  Had to make Env Var for SIMPLE_EIFFEL.
3)  Missing GOBO_EIFFEL env Var.  Fixed that.
4)  Still missing something.  Looking at ecf file for Simple_json, found I needed 6 or 7 other simple libraries.  I'll come back to that, I thought.
5)  For Simple_Cairo I need to "Download Cairo from GTK+ for Windows or build from source".

At this point I am done!  Too many dependencies...and I'm on a Mac.

Oh, almost forgot.  Somewhere I read simple_something depended on Eiffel 25.02.  Well, I don't have that version.

Thanks anyway,
jjj

Ulrich Windl

unread,
Jan 30, 2026, 8:25:57 AM (11 days ago) Jan 30
to eiffel...@googlegroups.com
Hi!

I think such feature is called "inheritance" ;-)

Ulrich

29.01.2026 17:31:05 Jimmy Johnson <eiffe...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages