On 29 March 2018 at 15:12, rastersoft wrote: > > [get the Gtk font type and size] >>> >>> Ops, sorry: I'm reworking a backup utility that I wrote (cronopete), and >>> I added a timeline with the backups (you can see an screenshot at >>> http://www.rastersoft.com/cronopete_screenshot.png ). As you can see, at >>> the left is the timeline and it has the days, months and years. I think >>> those should use the same typography than the standard Gtk widgets, but >>> reducing the size to 2/3. The same for the titles in each "pseudowindow" >>> (they have a visual effect: they go forward and backwards when you move >>> through the timeline). >>> >>> ...I must be missing something here... >> You can change font size in a layout. The scrolling might be tricky, but >> just eyeballing it, sounds like something that can be done by showing >> the layout twice at different coords in different clips >> (cairo_save/cairo_restore brackets). >> >> So...? >> >> (Only thing I'm not quite sure about right now is if gtk fully initializes >> font description in a layout, cause I vaguely recall that it might >> not... though maybe that was just wrt. theming API...) >> >> > Mainly the problem is that I'm using cairo_show_text... That's the Cairo toy text API; you should only use it for tests or small examples; it's basically useless for anything user-facing. > I presume that what you say is that I should replace all that with > Pango... Now I have some problems: first, I'm using vala and I can't find > the "get_pango_layout" from a widget. It exists "create_pango_layout", so I > suppose that this is the call I need to create a layout. Yes, the function is `gtk_widget_create_pango_layout()`: https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-create-pango-layout > Now the big question is: does ANY widget return the right layout, or I > must use a widget designed to contain text (like a Gtk.Label) to get that > layout, paint into it, and paste it in the final Cairo canvas (which won't > be the same canvas than the Gtk.Label from which I created the layout)? > All widgets that need to render text call gtk_widget_create_pango_layout() internally, including GtkLabel. Ciao, Emmanuele. -- https://www.bassi.io [@] ebassi [@gmail.com] _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list