#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static GtkWidget *antialias;
static GtkWidget *subpixel;
static GtkWidget *hintstyle;
static void
set_font_options (GtkWidget *label)
{
cairo_antialias_t aa;
cairo_subpixel_order_t sp;
cairo_hint_style_t hs;
cairo_font_options_t *options;
aa = gtk_combo_box_get_active (GTK_COMBO_BOX (antialias));
sp = gtk_combo_box_get_active (GTK_COMBO_BOX (subpixel));
hs = gtk_combo_box_get_active (GTK_COMBO_BOX (hintstyle));
options = cairo_font_options_create ();
cairo_font_options_set_antialias (options, aa);
cairo_font_options_set_subpixel_order (options, sp);
cairo_font_options_set_hint_style (options, hs);
gtk_widget_set_font_options (label, options);
cairo_font_options_destroy (options);
gtk_widget_queue_draw (label);
}
int
main (int argc, char *argv[])
{
GtkWidget *window, *label, *grid, *demo;
gtk_init ();
window = gtk_window_new ();
grid = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (grid), 10 );
gtk_grid_set_column_spacing (GTK_GRID (grid), 10 );
gtk_window_set_child (GTK_WINDOW (window), grid);
label = gtk_label_new ("Default font options" );
gtk_grid_attach (GTK_GRID (grid), label, 0 , 0 , 2 , 1 );
demo = gtk_label_new ("Custom font options" );
gtk_grid_attach (GTK_GRID (grid), demo, 0 , 1 , 2 , 1 );
antialias = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "Default" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "None" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "Gray" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "Subpixel" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "Fast" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "Good" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (antialias), "Best" );
g_signal_connect_swapped (antialias, "changed" , G_CALLBACK (set_font_options), demo);
label = gtk_label_new ("Antialias" );
gtk_grid_attach (GTK_GRID (grid), label, 0 , 2 , 1 , 1 );
gtk_grid_attach (GTK_GRID (grid), antialias, 1 , 2 , 1 , 1 );
subpixel = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (subpixel), "Default" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (subpixel), "RGB" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (subpixel), "BGR" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (subpixel), "Vertical RGB" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (subpixel), "Vertical BGR" );
g_signal_connect_swapped (subpixel, "changed" , G_CALLBACK (set_font_options), demo);
label = gtk_label_new ("Subpixel" );
gtk_grid_attach (GTK_GRID (grid), label, 0 , 3 , 1 , 1 );
gtk_grid_attach (GTK_GRID (grid), subpixel, 1 , 3 , 1 , 1 );
hintstyle = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (hintstyle), "Default" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (hintstyle), "None" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (hintstyle), "Slight" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (hintstyle), "Medium" );
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (hintstyle), "Full" );
g_signal_connect_swapped (hintstyle, "changed" , G_CALLBACK (set_font_options), demo);
label = gtk_label_new ("Hintstyle" );
gtk_grid_attach (GTK_GRID (grid), label, 0 , 4 , 1 , 1 );
gtk_grid_attach (GTK_GRID (grid), hintstyle, 1 , 4 , 1 , 1 );
gtk_combo_box_set_active (GTK_COMBO_BOX (antialias), 0 );
gtk_combo_box_set_active (GTK_COMBO_BOX (subpixel), 0 );
gtk_combo_box_set_active (GTK_COMBO_BOX (hintstyle), 0 );
gtk_window_present (GTK_WINDOW (window));
while (TRUE )
g_main_context_iteration (NULL, TRUE );
return 0 ;
}
Messung V0.5 in Prozent C=98 H=90 G=94
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-07-02)
¤
*© Formatika GbR, Deutschland