From ddc814df7dc7a6ed6a513b79a884741af37dbf97 Mon Sep 17 00:00:00 2001 From: Steffen Pohle Date: Sat, 23 Oct 2021 18:37:00 +0200 Subject: [PATCH] show object marker only when found --- video.cc | 71 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/video.cc b/video.cc index 3b699e2..a75aa91 100644 --- a/video.cc +++ b/video.cc @@ -141,45 +141,48 @@ void cb_videoda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data) cairo_stroke(cr); } else { - // - // draw red cross - cairo_set_line_width(cr, 1.0); - color.blue = 0.0; - color.red = 1.0; - color.green = 0.0; - color.alpha = 1.0; - gdk_cairo_set_source_rgba(cr, &color); - x = atoi (gtk_entry_get_text(GTK_ENTRY(e_x))); y = atoi (gtk_entry_get_text(GTK_ENTRY(e_y))); w1 = atoi (gtk_entry_get_text(GTK_ENTRY(e_w))); h1 = atoi (gtk_entry_get_text(GTK_ENTRY(e_h))); - cairo_move_to(cr, S_X(x), S_Y(y)-10); - cairo_line_to(cr, S_X(x), S_Y(y)+10); - cairo_move_to(cr, S_X(x)-10, S_Y(y)); - cairo_line_to(cr, S_X(x)+10, S_Y(y)); - cairo_stroke(cr); - - // - // green width border - color.blue = 0.0; - color.red = 0.0; - color.green = 1.0; - color.alpha = 1.0; - gdk_cairo_set_source_rgba(cr, &color); - - cairo_move_to(cr, S_X(x-w1/2), S_Y(y-h1/2)+10); - cairo_line_to(cr, S_X(x-w1/2), S_Y(y-h1/2)); - cairo_line_to(cr, S_X(x+w1/2), S_Y(y-h1/2)); - cairo_line_to(cr, S_X(x+w1/2), S_Y(y-h1/2)+10); - - cairo_move_to(cr, S_X(x-w1/2), S_Y(y+h1/2)-10); - cairo_line_to(cr, S_X(x-w1/2), S_Y(y+h1/2)); - cairo_line_to(cr, S_X(x+w1/2), S_Y(y+h1/2)); - cairo_line_to(cr, S_X(x+w1/2), S_Y(y+h1/2)-10); - - cairo_stroke(cr); + if (x >= (w1/2) && x < (pixbufw-w1/2) + && y >= (h1/2) && y < (pixbufh-h1/2)) { + // + // draw red cross + cairo_set_line_width(cr, 1.0); + color.blue = 0.0; + color.red = 1.0; + color.green = 0.0; + color.alpha = 1.0; + gdk_cairo_set_source_rgba(cr, &color); + + cairo_move_to(cr, S_X(x), S_Y(y)-10); + cairo_line_to(cr, S_X(x), S_Y(y)+10); + cairo_move_to(cr, S_X(x)-10, S_Y(y)); + cairo_line_to(cr, S_X(x)+10, S_Y(y)); + cairo_stroke(cr); + + // + // green width border + color.blue = 0.0; + color.red = 0.0; + color.green = 1.0; + color.alpha = 1.0; + gdk_cairo_set_source_rgba(cr, &color); + + cairo_move_to(cr, S_X(x-w1/2), S_Y(y-h1/2)+10); + cairo_line_to(cr, S_X(x-w1/2), S_Y(y-h1/2)); + cairo_line_to(cr, S_X(x+w1/2), S_Y(y-h1/2)); + cairo_line_to(cr, S_X(x+w1/2), S_Y(y-h1/2)+10); + + cairo_move_to(cr, S_X(x-w1/2), S_Y(y+h1/2)-10); + cairo_line_to(cr, S_X(x-w1/2), S_Y(y+h1/2)); + cairo_line_to(cr, S_X(x+w1/2), S_Y(y+h1/2)); + cairo_line_to(cr, S_X(x+w1/2), S_Y(y+h1/2)-10); + + cairo_stroke(cr); + } } };