pre scale buttons are working

master
Steffen Pohle 3 years ago
parent f8a576e676
commit 5c1c0a94b4

@ -283,7 +283,8 @@ void Configuration::LoadConfig(std::string filename) {
printf ("%s:%d window '%s' set geometry %d,%d : %d x %d\n", __FILE__, __LINE__, name.c_str(), x, y, w, h); printf ("%s:%d window '%s' set geometry %d,%d : %d x %d\n", __FILE__, __LINE__, name.c_str(), x, y, w, h);
gtk_window_move (GTK_WINDOW(wnd), x, y); gtk_window_move (GTK_WINDOW(wnd), x, y);
gtk_window_resize (GTK_WINDOW(wnd), w, h); gtk_window_resize (GTK_WINDOW(wnd), w, h);
if (show) gtk_widget_show(wnd); gtk_widget_show(wnd);
if (!show) gtk_widget_hide(wnd);
} }
} }
} }

@ -59,11 +59,6 @@ void cb_window_show (GtkWidget *widget, gpointer data) {
GtkWidget *rboff = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-pos-cboff")); GtkWidget *rboff = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-pos-cboff"));
GtkWidget *rbcrossc = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-type-indet2")); GtkWidget *rbcrossc = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-type-indet2"));
// GtkWidget *win_detect = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-detect"));
// GtkWidget *win_input = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-input"));
// GtkWidget *win_output = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-output"));
// GtkWidget *win_histogram = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-histogram"));
// changing the value, will cause the 'change' event to be triggered // changing the value, will cause the 'change' event to be triggered
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rboff), true); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rboff), true);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rbcrossc), true); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rbcrossc), true);
@ -87,11 +82,6 @@ void cb_window_show (GtkWidget *widget, gpointer data) {
// //
// update the input video controls every 2 seconds. // update the input video controls every 2 seconds.
g_timeout_add(2000, videoctrl_update, NULL); g_timeout_add(2000, videoctrl_update, NULL);
// gtk_widget_show (win_detect);
// gtk_widget_show (win_input);
// gtk_widget_show (win_output);
// gtk_widget_show (win_histogram);
}; };

@ -82,7 +82,6 @@ G_MODULE_EXPORT gboolean cb_thread_video (gpointer data);
G_MODULE_EXPORT void cb_input_show_window (GtkWidget *widget, gpointer data); G_MODULE_EXPORT void cb_input_show_window (GtkWidget *widget, gpointer data);
G_MODULE_EXPORT void cb_input_btncapture (GtkWidget *widget, gpointer data); G_MODULE_EXPORT void cb_input_btncapture (GtkWidget *widget, gpointer data);
G_MODULE_EXPORT void cb_input_btnsnapshot (GtkWidget *widget, gpointer data); G_MODULE_EXPORT void cb_input_btnsnapshot (GtkWidget *widget, gpointer data);
G_MODULE_EXPORT void cb_input_btnflat (GtkWidget *widget, gpointer data);
G_MODULE_EXPORT void cb_input_btnscale (GtkWidget *widget, gpointer data); G_MODULE_EXPORT void cb_input_btnscale (GtkWidget *widget, gpointer data);

@ -523,13 +523,17 @@
<property name="spacing">8</property> <property name="spacing">8</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="width-request">96</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child> <child>
<object class="GtkLabel" id="lb_input_xpos"> <object class="GtkLabel" id="lb_input_xdelta">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-start">6</property> <property name="margin-start">6</property>
<property name="margin-end">6</property> <property name="margin-end">6</property>
<property name="label" translatable="yes">X: 00000</property> <property name="label" translatable="yes">X: 00000</property>
@ -541,9 +545,12 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="lb_input_ypos"> <object class="GtkLabel" id="lb_input_ydelta">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="label" translatable="yes">Y: 00000</property> <property name="label" translatable="yes">Y: 00000</property>
</object> </object>
<packing> <packing>
@ -555,7 +562,7 @@
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">False</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>

@ -119,10 +119,13 @@ void cb_videoda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data)
char txt2[255]; char txt2[255];
GdkRGBA color; GdkRGBA color;
GtkWidget *e_x = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-posx")); static GtkWidget *e_x = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-posx"));
GtkWidget *e_y = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-posy")); static GtkWidget *e_y = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-posy"));
GtkWidget *e_w = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-w")); static GtkWidget *e_w = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-w"));
GtkWidget *e_h = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-h")); static GtkWidget *e_h = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-h"));
static GtkWidget *lbX = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "lb_input_xdelta"));
static GtkWidget *lbY = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "lb_input_ydelta"));
int x, y, w1, h1; int x, y, w1, h1;
if (video_da == NULL) return; if (video_da == NULL) return;
@ -227,8 +230,11 @@ void cb_videoda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data)
} }
// draw movement vector to screen // draw movement vector to screen
snprintf (txt1, 255, "%f", detectedpos_data.dx); snprintf (txt1, 255, "X: %f", detectedpos_data.dx);
snprintf (txt2, 255, "%f", detectedpos_data.dy); snprintf (txt2, 255, "Y: %f", detectedpos_data.dy);
gtk_label_set_text(GTK_LABEL(lbX), txt1);
gtk_label_set_text(GTK_LABEL(lbY), txt2);
/* drawing the text on the screen disabled
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
int dx, dy; int dx, dy;
@ -265,7 +271,7 @@ void cb_videoda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data)
cairo_move_to (cr, 10+dx, 30+dy); cairo_move_to (cr, 10+dx, 30+dy);
cairo_show_text(cr, txt2); cairo_show_text(cr, txt2);
cairo_stroke(cr); cairo_stroke(cr);
} } */
}; };
@ -806,23 +812,38 @@ void cb_input_btnsnapshot (GtkWidget *widget, gpointer data) {
}; };
void cb_input_btnflat (GtkWidget *widget, gpointer data) { /*
printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__); * resize windows depending on the button which was pressed
}; */
void cb_input_btnscale (GtkWidget *widget, gpointer data) { void cb_input_btnscale (GtkWidget *widget, gpointer data) {
printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__); int dw, dh, ww, wh;
float scale = 1.0; float scale = 1.0;
printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__);
if (videodev == NULL || video_da == NULL) return;
//
// what scale button was pressed
GtkWidget *btn11 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn_inputscale11")); GtkWidget *btn11 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn_inputscale11"));
GtkWidget *btn12 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn_inputscale12")); GtkWidget *btn12 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn_inputscale12"));
GtkWidget *btn14 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn_inputscale14")); GtkWidget *btn14 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn_inputscale14"));
if (widget == btn11) scale = 1.0; if (widget == btn11) scale = 1.0;
if (widget == btn12) scale = 0.5; if (widget == btn12) scale = 0.5;
if (widget == btn14) scale = 0.25; if (widget == btn14) scale = 0.25;
scale *= 1.0; //
// read our video size from gui and calculate size of gui elements
GtkWidget *win = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-input"));
gtk_window_get_size(GTK_WINDOW(win), &ww, &wh);
dh = gtk_widget_get_allocated_height(video_da);
dw = gtk_widget_get_allocated_width(video_da);
dw = ww-dw;
dh = wh-dh;
videodev->GetVideoInfo(&ww, &wh, NULL);
ww = dw + (scale * ww);
wh = dh + (scale * wh);
gtk_window_resize(GTK_WINDOW(win), ww, wh);
}; };

@ -214,9 +214,9 @@ void VideoDev::Stop() {
void VideoDev::GetVideoInfo(int *w, int *h, std::string *format) { void VideoDev::GetVideoInfo(int *w, int *h, std::string *format) {
*format = conf_format; if (format != NULL) *format = conf_format;
*w = conf_width; if (w != NULL) *w = conf_width;
*h = conf_height; if (h != NULL) *h = conf_height;
} }

Loading…
Cancel
Save