display.get_scroll_speed() gtk_style_context_set_state() ne change pas l'apparence des scroll_speed

This commit is contained in:
Jean Sirmai 2024-05-28 21:17:29 +02:00
parent 4e06b32e72
commit 566b67f10f
Signed by: jean
GPG Key ID: FB3115C340E057E3
3 changed files with 255 additions and 1 deletions

View File

@ -44,3 +44,249 @@ Un buffer lignes pourrait donc avoir une taille fixe qui serait calculée selon
Faut-il coder cette option ? 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 <head></head>) :
<link href="style.css" rel="stylesheet" media="all" type="text/css">
Styles CSS dans le code
<p style="text-align:center; color:red"> lorem ipsum </p>
à 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;
}

View File

@ -24,7 +24,7 @@
#include "../../include/ui.h" #include "../../include/ui.h"
#define COMMUTE 0 // 0 first design (2023) based on <gemgraph.ui> XML data #define COMMUTE 1 // 0 first design (2023) based on <gemgraph.ui> XML data
// 1 2024 May design, free of Builder & templates // 1 2024 May design, free of Builder & templates
static int mode = 0; static int mode = 0;

View File

@ -91,6 +91,14 @@ static GtkWidget *get_scroll_speed(){
GtkAdjustment *speed_adjust = gtk_adjustment_new (100, 0, 100, 1, 0, 0); GtkAdjustment *speed_adjust = gtk_adjustment_new (100, 0, 100, 1, 0, 0);
GtkWidget *scroll_speed = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, speed_adjust); GtkWidget *scroll_speed = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, speed_adjust);
gtk_widget_set_size_request (GTK_WIDGET (scroll_speed), 120, 2); 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; return scroll_speed;
} }