display: identify primary display with a black top bar and clock
This commit is contained in:
parent
a4ac7717da
commit
3337e01c00
1 changed files with 51 additions and 5 deletions
|
@ -1695,8 +1695,8 @@ paint_output (App *app, cairo_t *cr, int i)
|
||||||
get_geometry (output, &w, &h);
|
get_geometry (output, &w, &h);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
g_debug ("%s (%p) geometry %d %d %d", output->name, output,
|
g_debug ("%s (%p) geometry %d %d %d primary=%d", output->name, output->name,
|
||||||
w, h, output->rate);
|
w, h, output->rate, output->primary);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
viewport.height -= 2 * MARGIN;
|
viewport.height -= 2 * MARGIN;
|
||||||
|
@ -1729,7 +1729,6 @@ paint_output (App *app, cairo_t *cr, int i)
|
||||||
- x - (w * scale + 0.5) / 2,
|
- x - (w * scale + 0.5) / 2,
|
||||||
- y - (h * scale + 0.5) / 2);
|
- y - (h * scale + 0.5) / 2);
|
||||||
|
|
||||||
|
|
||||||
if (output == app->current_output)
|
if (output == app->current_output)
|
||||||
{
|
{
|
||||||
GtkStyle *style;
|
GtkStyle *style;
|
||||||
|
@ -1800,10 +1799,57 @@ paint_output (App *app, cairo_t *cr, int i)
|
||||||
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
|
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
|
||||||
|
|
||||||
pango_cairo_show_layout (cr, layout);
|
pango_cairo_show_layout (cr, layout);
|
||||||
|
g_object_unref (layout);
|
||||||
|
|
||||||
|
if (output->primary)
|
||||||
|
{
|
||||||
|
const char *clock_format;
|
||||||
|
char *text;
|
||||||
|
gboolean use_24;
|
||||||
|
GDateTime *dt;
|
||||||
|
|
||||||
|
/* top bar */
|
||||||
|
cairo_rectangle (cr, x, y, w * scale + 0.5, 20);
|
||||||
|
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||||
|
cairo_fill (cr);
|
||||||
|
|
||||||
|
/* clock */
|
||||||
|
/* FIXME: set 12/24 hour */
|
||||||
|
if (use_24)
|
||||||
|
clock_format = _("%a %R");
|
||||||
|
else
|
||||||
|
clock_format = _("%a %l:%M %p");
|
||||||
|
|
||||||
|
dt = g_date_time_new_now_local ();
|
||||||
|
text = g_date_time_format (dt, clock_format);
|
||||||
|
g_date_time_unref (dt);
|
||||||
|
|
||||||
|
layout = gtk_widget_create_pango_layout (GTK_WIDGET (app->area), text);
|
||||||
|
g_free (text);
|
||||||
|
pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER);
|
||||||
|
|
||||||
|
layout_set_font (layout, "Sans 4");
|
||||||
|
pango_layout_get_pixel_extents (layout, &ink_extent, &log_extent);
|
||||||
|
|
||||||
|
if (available_w < ink_extent.width)
|
||||||
|
factor = available_w / ink_extent.width;
|
||||||
|
else
|
||||||
|
factor = 1.0;
|
||||||
|
|
||||||
|
cairo_move_to (cr,
|
||||||
|
x + ((w * scale + 0.5) - factor * log_extent.width) / 2,
|
||||||
|
y + (20 - factor * log_extent.height) / 2);
|
||||||
|
|
||||||
|
cairo_scale (cr, factor, factor);
|
||||||
|
|
||||||
|
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
|
||||||
|
|
||||||
|
pango_cairo_show_layout (cr, layout);
|
||||||
|
g_object_unref (layout);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
cairo_restore (cr);
|
cairo_restore (cr);
|
||||||
|
|
||||||
g_object_unref (layout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue