summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRose <rose@pinkro.se>2025-07-30 21:51:32 +0200
committerRose <rose@pinkro.se>2025-07-30 21:51:32 +0200
commit98f976fd48d577eaa77b196f706a748db257259f (patch)
treea2cefd73f2297285b0a226a4669ffcf255a00bb0 /src
parent55be25e016bf8172bf601223b6ddc9d39bcbd451 (diff)
downloadwlclock-master.tar.gz
wlclock-master.tar.bz2
Add number to mimick common analogue clocksmaster
Diffstat (limited to '')
-rw-r--r--src/render.c33
-rw-r--r--src/wlclock.c2
2 files changed, 26 insertions, 9 deletions
diff --git a/src/render.c b/src/render.c
index 9ed1963..341deb0 100644
--- a/src/render.c
+++ b/src/render.c
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
@@ -120,20 +121,36 @@ static void draw_clock_face (cairo_t *cairo, struct Wlclock_dimensions *dimensio
/* Radii are choosen to roughly mimic xclock. */
double cx = scale * (dimensions->center_x + (dimensions->center_size / 2));
double cy = scale * (dimensions->center_y + (dimensions->center_size / 2));
- double or = scale * 0.9 * dimensions->center_size / 2;
- double ir = scale * 0.85 * dimensions->center_size / 2;
- double bir = scale * 0.8 * dimensions->center_size / 2;
+ double orT = scale * 0.9 * dimensions->center_size / 2;
+ double orTL = scale * 0.83 * dimensions->center_size / 2;
+ double orL = scale * 0.8 * dimensions->center_size / 2;
+ double ir = scale * 0.75 * dimensions->center_size / 2;
double phi, phi_step = 2 * PI / 60;
cairo_save(cairo);
+ cairo_set_source_rgb(cairo, 1,1,1);
for (int i = 0; i < 60; i++)
{
phi = i * phi_step;
- cairo_move_to(cairo, cx + or * cos(phi), cy + or * sin(phi));
- if ( i % 5 == 0 )
- cairo_line_to(cairo, cx + bir * cos(phi), cy + bir * sin(phi));
- else
- cairo_line_to(cairo, cx + ir * cos(phi), cy + ir * sin(phi));
+ if ( i % 5 == 0) {
+ char *num;
+ int x = cx+orT*cos(phi);
+ int y = cy+orT*sin(phi);
+ cairo_move_to(cairo, x-4, y+3);
+ asprintf(&num, "%0.f", (((i+15)%60)*0.2));
+ cairo_show_text (cairo, num);
+
+ x = cx+orTL*cos(phi);
+ y = cy+orTL*sin(phi);
+ cairo_move_to(cairo, x, y);
+ cairo_line_to(cairo, cx + ir * cos(phi), cy + ir * sin(phi));
+ } else {
+ int x = cx+orL*cos(phi);
+ int y = cy+orL*sin(phi);
+ cairo_move_to(cairo, x, y);
+ cairo_line_to(cairo, cx + ir * cos(phi), cy + ir * sin(phi));
+ }
+
}
cairo_set_line_width(cairo, context.marking_width * scale);
colour_set_cairo_source(cairo, &context.clock_colour);
diff --git a/src/wlclock.c b/src/wlclock.c
index 2b4bfd1..dde8e89 100644
--- a/src/wlclock.c
+++ b/src/wlclock.c
@@ -630,7 +630,7 @@ static void clock_run ()
clocklog(0, "ERROR: poll: %s\n", strerror(errno));
continue;
}
-
+
/* Wayland events */
if ( fds[wayland_fd].revents & POLLIN && wl_display_dispatch(context.display) == -1 )
{