From 566b67f10ff62dbccb106dd0d77e0981d011ff09 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Tue, 28 May 2024 21:17:29 +0200 Subject: [PATCH] display.get_scroll_speed() gtk_style_context_set_state() ne change pas l'apparence des scroll_speed --- TODO (next version).txt | 246 ++++++++++++++++++++++++++++++++++++++++ src/ui/application.c | 2 +- src/ui/display.c | 8 ++ 3 files changed, 255 insertions(+), 1 deletion(-) diff --git a/TODO (next version).txt b/TODO (next version).txt index f41aeae..051aea6 100644 --- a/TODO (next version).txt +++ b/TODO (next version).txt @@ -44,3 +44,249 @@ Un buffer lignes pourrait donc avoir une taille fixe qui serait calculée selon Faut-il coder cette option ? + + + +-------------------------- notes, refs, doc, liens ------------------------- + +SIGNAL +------ +https://web.mit.edu/barnowl/share/gtk-doc/html/gobject/signal.html +https://docs.gtk.org/gobject/signals.html#Memory_management_of_signal_handlers +https://docs.gtk.org/gobject/func.signal_connect.html + + + +CSS +--- +https://www.w3.org/TR/CSS/#css +https://www.w3.org/Style/CSS/Overview.en.html +http://css.mammouthland.net/feuille-de-style-css-debutant.php + +https://docs.gtk.org/gtk3/method.Widget.set_name.html +Widgets can be named, which allows you to refer to them from a CSS file. +https://docs.w3cub.com/gtk~4.0/gtkstylecontext.html + +on peut déclarer les styles à différents endroits, et selon ces endroits ils seront plus ou moins prioritaires. +On obtient donc une cascade de styles. Par priorité décroissante : +- styles définis par l'utilisateur, s'il en déclare +- styles locaux : attributs d'éléments html pour des mises en forme ponctuelles +- styles en interne, dans l'en-tête de la page (ne vaudront que our cette page) +- feuille de style externe : c'est de loin la meilleure chose à faire et la plus pratique à maintenir + +On commence en général une feuille de style par un "reset" +pour mettre tous les navigateurs à peu près (!) dans le même état de départ... + +syntaxe : sélecteur {propriété: valeur;} + sélecteur = balise (X)HTML (body ; h1 ; p, etc.), l'identifiant (id) ou la classe (class) ; + propriété = attribut qu'on veut appliquer (font ; background ; margin ; etc.) + valeur = ce qui indique les caractéristiques de la propriété. + +unités + couleurs : utiliser plutôt les valeurs hexadécimales + tailles des polices de caractère : préférer les unité de longueur relatives aux unités absolues + +Pour que les couleurs des liens changent selon leur état (non visité, visité, survolé, actif, ayant le focus), +on utilise des pseudo-classes qui se déclarent par : link, :visited, :hover, :active et :focus. +Il est important de respecter cet ordre de déclarations. + +Feuille de style externe +Enregistrer le code CSS dans un fichier s'appelant (par exemple) "style.css", +et mettre dans l'en-tête de la page html (entre les balises ) : + + +Styles CSS dans le code +

lorem ipsum

+ + + + +à lire (puis à supprimer)... 2024-05-28 + +/* ----------------------------- */ +/* == reset */ +/* ----------------------------- */ + +/* base font-size corresponds to 10px and is adapted to rem unit */ +html { + font-size: 62.5%; +} +body { + background-color: #fff; + color: #000; + font-family: "Century Gothic", helvetica, arial, sans-serif; + font-size: 1.4em; /* equiv 14px */ + line-height: 1.5; /* adapt to your design */ +} + +/* font-sizing for content */ +/* preserve vertical-rythm, thanks to http://soqr.fr/vertical-rhythm/ */ +p, +ul, +ol, +dl, +blockquote, +pre, +td, +th, +label, +textarea, +caption, +details, +figure, +hgroup { + font-size: 1em; /* equiv 14px */ + line-height: 1.5; + margin: 1.5em 0 0; +} +h1, .h1-like { + font-size: 1.8571em; /* equiv 26px */ + font-weight: normal; + line-height: 1.6154em; + margin: .8077em 0 0 0; +} +h2, .h2-like { + font-size: 1.7143em; /* equiv 24px */ + font-weight: normal; + line-height: 1.75em; + margin: .875em 0 0 0; +} +h3, .h3-like { + font-size: 1.5714em; /* equiv 22px */ + font-weight: normal; + line-height: 1.909em; + margin: .9545em 0 0 0; +} +h4, .h4-like { + font-size: 1.4286em; /* equiv 20px */ + font-weight: normal; + line-height: 1.05em; + margin: 1.05em 0 0 0; +} +h5, .h5-like { + font-size: 1.2857em; /* equiv 18px */ + font-weight: normal; + line-height: 1.1667em; + margin: 1.1667em 0 0 0; +} +h6, .h6-like { + font-size: 1.1429em; /* equiv 16px */ + font-weight: normal; + line-height: 1.3125em; + margin: 1.3125em 0 0 0; +} + +/* alternate font-sizing */ +.smaller { + font-size: .7143em; /* equiv 10px */ + line-height: 2.1em; +} +.small { + font-size: .8571em; /* equiv 12px */ + line-height: 1.75em; +} +.big { + font-size: 1.1429em; /* equiv 16px */ + line-height: 1.3125em; +} +.bigger { + font-size: 1.2857em; /* equiv 18px */ + line-height: 1.1667em; +} +.biggest { + font-size: 1.4286em; /* equiv 20px */ + line-height: 1.05em; +} + +/* soft reset */ +html, +body, +textarea, +figure, +label { + margin: 0; + padding: 0; +} +ul, +ol { + padding-left: 2em; +} +code, +pre, +samp { + white-space: pre-wrap; + font-family: consolas, 'DejaVu Sans Mono', courier, monospace; +} +code { line-height: 1em; } +table { margin-bottom: 1.5em; } + +/* avoid top margins on first content element */ +p:first-child, +ul:first-child, +ol:first-child, +dl:first-child, +blockquote:first-child, +pre:first-child, +h1:first-child, +h2:first-child, +h3:first-child, +h4:first-child, +h5:first-child, +h6:first-child { + margin-top: 0; +} + +/* avoid margins on nested elements */ +li p, +li ul, +li ol { + margin-top: 0; + margin-bottom: 0; +} + +/* HTML5 tags */ +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { + display: block; +} + +/* max values */ +img, table, td, blockquote, code, pre, textarea, input, video { + max-width: 100%; +} + +/* you shall not pass */ +div, textarea, table, td, th, code, pre, samp { + word-wrap: break-word; + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + -o-hyphens: auto; + hyphens: auto; +} + +/* pictures */ +img { + width: auto; + height: auto; + vertical-align: middle; +} +a img { border: 0; } + +/* scripts */ +body > script {display: none !important;} + +/* skip-links */ +.skip-links { + position: absolute; +} +.skip-links a { + position: absolute; + left: -9999px; + padding: 0.5em; + background: #000; + color:#fff; + text-decoration: none; +} +.skip-links a:focus { + position: static; +} \ No newline at end of file diff --git a/src/ui/application.c b/src/ui/application.c index a480e76..68377b7 100644 --- a/src/ui/application.c +++ b/src/ui/application.c @@ -24,7 +24,7 @@ #include "../../include/ui.h" -#define COMMUTE 0 // 0 first design (2023) based on XML data +#define COMMUTE 1 // 0 first design (2023) based on XML data // 1 2024 May design, free of Builder & templates static int mode = 0; diff --git a/src/ui/display.c b/src/ui/display.c index 58fbb64..7106fd3 100644 --- a/src/ui/display.c +++ b/src/ui/display.c @@ -91,6 +91,14 @@ static GtkWidget *get_scroll_speed(){ GtkAdjustment *speed_adjust = gtk_adjustment_new (100, 0, 100, 1, 0, 0); GtkWidget *scroll_speed = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, speed_adjust); gtk_widget_set_size_request (GTK_WIDGET (scroll_speed), 120, 2); +// gtk_scale_set_has_origin (GTK_SCALE (scroll_speed), TRUE); +// gtk_scale_set_draw_value (GTK_SCALE (scroll_speed), TRUE); +// void value_changed ( GtkRange* self, gpointer user_data) + const gchar *new_name = "new_name"; gtk_widget_set_name (scroll_speed, new_name); +// const GtkWidgetPath* gtk_style_context_get_path (GtkStyleContext* context); +// + gtk_style_context_set_state (gtk_widget_get_style_context (scroll_speed), 100); + printf("display.get_scroll_speed() gtk_style_context_get_state (gtk_widget_get_style_context (scroll_speed)) = %d\n", gtk_style_context_get_state (gtk_widget_get_style_context (scroll_speed))); return scroll_speed; }