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);
gtk_window_move (GTK_WINDOW(wnd), x, y);
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 *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
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rboff), 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.
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_btncapture (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);

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

@ -119,10 +119,13 @@ void cb_videoda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data)
char txt2[255];
GdkRGBA color;
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"));
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_x = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-posx"));
static GtkWidget *e_y = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-posy"));
static GtkWidget *e_w = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-w"));
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;
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
snprintf (txt1, 255, "%f", detectedpos_data.dx);
snprintf (txt2, 255, "%f", detectedpos_data.dy);
snprintf (txt1, 255, "X: %f", detectedpos_data.dx);
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++) {
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_show_text(cr, txt2);
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) {
printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__);
int dw, dh, ww, wh;
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 *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"));
if (widget == btn11) scale = 1.0;
if (widget == btn12) scale = 0.5;
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) {
*format = conf_format;
*w = conf_width;
*h = conf_height;
if (format != NULL) *format = conf_format;
if (w != NULL) *w = conf_width;
if (h != NULL) *h = conf_height;
}

Loading…
Cancel
Save