sent-slide-number-1.0.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       sent-slide-number-1.0.diff (1898B)
       ---
            1 From dcd4dc269be453d7b4759d32971986da6040aba4 Mon Sep 17 00:00:00 2001
            2 From: =?UTF-8?q?Antoine=20Lonn=C3=A9?= <antoine@antoinelonne.dev>
            3 Date: Tue, 7 Nov 2023 21:49:25 +0100
            4 Subject: [PATCH] Add slide numbering and size configuration
            5 
            6 ---
            7  config.def.h |  3 +++
            8  sent.c       | 19 +++++++++++++++++++
            9  2 files changed, 22 insertions(+)
           10 
           11 diff --git a/config.def.h b/config.def.h
           12 index 60eb376..5b17cc9 100644
           13 --- a/config.def.h
           14 +++ b/config.def.h
           15 @@ -54,3 +54,6 @@ static Filter filters[] = {
           16          { "\\.ff.bz2$", "bunzip2" },
           17          { "\\.[a-z0-9]+$", "2ff" },
           18  };
           19 +
           20 +static const unsigned int slide_nb_margin = 10;
           21 +static const char *slide_nb_fnt[] = { "fixed:size=16", NULL };
           22 diff --git a/sent.c b/sent.c
           23 index dfadd3a..31fa3f5 100644
           24 --- a/sent.c
           25 +++ b/sent.c
           26 @@ -524,6 +524,8 @@ xdraw(void)
           27  {
           28          unsigned int height, width, i;
           29          Image *im = slides[idx].img;
           30 +    char slide_nb[16];
           31 +    unsigned int slide_nb_w, slide_nb_h;
           32  
           33          getfontsize(&slides[idx], &width, &height);
           34          XClearWindow(xw.dpy, xw.win);
           35 @@ -539,6 +541,23 @@ xdraw(void)
           36                                   0,
           37                                   slides[idx].lines[i],
           38                                   0);
           39 +
           40 +        if (idx > 0){
           41 +            snprintf(slide_nb, sizeof(slide_nb), "%d/%d", idx + 1, slidecount);
           42 +            Drw *d_small = malloc(sizeof(Drw));
           43 +            *d_small = *d;
           44 +            d_small->fonts = drw_fontset_create(d_small, slide_nb_fnt, 1);
           45 +            drw_font_getexts(d_small->fonts, slide_nb, strlen(slide_nb),
           46 +                             &slide_nb_w, &slide_nb_h);
           47 +            drw_text(d_small,
           48 +                     xw.w - slide_nb_w - slide_nb_margin,
           49 +                     xw.h - slide_nb_h - slide_nb_margin,
           50 +                     slide_nb_w,
           51 +                     slide_nb_h,
           52 +                     0,
           53 +                     slide_nb,
           54 +                     0);
           55 +        }
           56                  drw_map(d, xw.win, 0, 0, xw.w, xw.h);
           57          } else {
           58                  if (!(im->state & SCALED))
           59 -- 
           60 2.42.1
           61