|
|
|
@ -25,7 +25,7 @@ GdkPixbuf *detect_pixbuf = NULL;
|
|
|
|
|
|
|
|
|
|
GtkWidget *image_da = NULL;
|
|
|
|
|
GdkPixbuf *image_pixbuf = NULL;
|
|
|
|
|
|
|
|
|
|
std::string filename = "";
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//
|
|
|
|
@ -42,12 +42,18 @@ gboolean cb_window_delete_event (GtkWidget *widget, GdkEvent *event, gpointer
|
|
|
|
|
void cb_window_show (GtkWidget *widget, gpointer data) {
|
|
|
|
|
GtkWidget *btnstart = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn-video-rec"));
|
|
|
|
|
GtkWidget *btnstop = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "btn-video-stop"));
|
|
|
|
|
GtkWidget *w = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-w"));
|
|
|
|
|
GtkWidget *h = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-entry-h"));
|
|
|
|
|
|
|
|
|
|
printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__);
|
|
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(btnstart, true);
|
|
|
|
|
gtk_widget_set_sensitive(btnstop, false);
|
|
|
|
|
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(w),"600");
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(h),"600");
|
|
|
|
|
detect.SetObjectSize(600, 600);
|
|
|
|
|
|
|
|
|
|
g_timeout_add(2000, videoctrl_update, NULL);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -193,9 +199,58 @@ void cb_detect_btnset (GtkWidget *widget, gpointer data) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void cb_image_btnnew (GtkWidget *widget, gpointer data) {
|
|
|
|
|
filter.NewImage();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void cb_image_btnsave (GtkWidget *widget, gpointer data) {
|
|
|
|
|
GtkBuilder *builder = (GtkBuilder *) data;
|
|
|
|
|
GtkWindow *window = GTK_WINDOW (gtk_builder_get_object (builder, "window-main"));
|
|
|
|
|
GtkWidget *dialog;
|
|
|
|
|
GtkFileChooser *chooser;
|
|
|
|
|
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
|
|
|
|
|
GtkFileFilter *filter;
|
|
|
|
|
gint res;
|
|
|
|
|
|
|
|
|
|
if (image_pixbuf == NULL) return;
|
|
|
|
|
|
|
|
|
|
dialog = gtk_file_chooser_dialog_new ("Save File",
|
|
|
|
|
window,
|
|
|
|
|
action,
|
|
|
|
|
"_Cancel",
|
|
|
|
|
GTK_RESPONSE_CANCEL,
|
|
|
|
|
"_Save",
|
|
|
|
|
GTK_RESPONSE_ACCEPT,
|
|
|
|
|
NULL);
|
|
|
|
|
chooser = GTK_FILE_CHOOSER (dialog);
|
|
|
|
|
|
|
|
|
|
filter = gtk_file_filter_new();
|
|
|
|
|
gtk_file_filter_add_pattern(filter, "*.modbus");
|
|
|
|
|
gtk_file_filter_set_name(filter, "Test Modbus Config");
|
|
|
|
|
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
|
|
|
|
|
filter = gtk_file_filter_new();
|
|
|
|
|
gtk_file_filter_add_pattern(filter, "*.*");
|
|
|
|
|
gtk_file_filter_set_name(filter, "All Files");
|
|
|
|
|
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
|
|
|
|
|
|
|
|
|
|
gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE);
|
|
|
|
|
if (filename.length () == 0)
|
|
|
|
|
gtk_file_chooser_set_current_name (chooser, "capture-001.png");
|
|
|
|
|
else
|
|
|
|
|
gtk_file_chooser_set_filename (chooser, filename.c_str());
|
|
|
|
|
|
|
|
|
|
res = gtk_dialog_run (GTK_DIALOG (dialog));
|
|
|
|
|
|
|
|
|
|
if (res == GTK_RESPONSE_ACCEPT) {
|
|
|
|
|
char *filename;
|
|
|
|
|
|
|
|
|
|
filename = gtk_file_chooser_get_filename (chooser);
|
|
|
|
|
|
|
|
|
|
gdk_pixbuf_save(image_pixbuf, filename, "png", NULL, "quality", "100", NULL);
|
|
|
|
|
g_free (filename);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gtk_widget_destroy (dialog);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|