From 97b5922a75b6f0337c2d3ae4bc62dc18347f861e Mon Sep 17 00:00:00 2001 From: Leonard Kugis Date: Sat, 13 Jan 2018 22:56:35 +0100 Subject: Funktionierendes settings GUI --- src/mandelbrot-zoom.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/mandelbrot-zoom.c (limited to 'src/mandelbrot-zoom.c') diff --git a/src/mandelbrot-zoom.c b/src/mandelbrot-zoom.c new file mode 100644 index 0000000..4f23696 --- /dev/null +++ b/src/mandelbrot-zoom.c @@ -0,0 +1,107 @@ +/* + * mandelbrot-zoom.c + * + * Created on: 13.01.2018 + * Author: Superleo1810 + */ + +#include "mandelbrot-zoom.h" + +int main(int argc, char **argv) +{ + GtkBuilder *builder; + gtk_init(&argc, &argv); + builder = gtk_builder_new(); + gtk_builder_add_from_file (builder, "C:/Users/Superleo1810/eclipse-workspace/mandelbrot-zoom/glade/settings.glade", NULL); // gtk = zu behindert für relative pfade + + ui.settings = GTK_WIDGET(gtk_builder_get_object(builder, "settings")); + //gtk_builder_connect_signals(builder, NULL); + ui.exportCb = GTK_WIDGET(gtk_builder_get_object(builder, "exportCb")); + ui.gifRd = GTK_WIDGET(gtk_builder_get_object(builder, "gifRd")); + ui.widthSp = GTK_WIDGET(gtk_builder_get_object(builder, "widthSp")); + ui.heightSp = GTK_WIDGET(gtk_builder_get_object(builder, "heightSp")); + ui.fpsRenderSp = GTK_WIDGET(gtk_builder_get_object(builder, "fpsRenderSp")); + ui.fpsVideoSp = GTK_WIDGET(gtk_builder_get_object(builder, "fpsVideoSp")); + ui.bitrateSp = GTK_WIDGET(gtk_builder_get_object(builder, "bitrateSp")); + ui.exportTf = GTK_WIDGET(gtk_builder_get_object(builder, "exportTf")); + ui.startBtn = GTK_WIDGET(gtk_builder_get_object(builder, "startBtn")); + ui.exitBtn = GTK_WIDGET(gtk_builder_get_object(builder, "exitBtn")); + + gtk_spin_button_set_increments((GtkSpinButton *)ui.widthSp, 1, 2); + gtk_spin_button_set_increments((GtkSpinButton *)ui.heightSp, 1, 2); + gtk_spin_button_set_increments((GtkSpinButton *)ui.fpsRenderSp, 1, 2); + gtk_spin_button_set_increments((GtkSpinButton *)ui.fpsVideoSp, 1, 2); + gtk_spin_button_set_increments((GtkSpinButton *)ui.bitrateSp, 1, 2); + + gtk_spin_button_set_value((GtkSpinButton *)ui.widthSp, 1920); + gtk_spin_button_set_value((GtkSpinButton *)ui.heightSp, 1080); + gtk_spin_button_set_value((GtkSpinButton *)ui.fpsRenderSp, 30); + gtk_spin_button_set_value((GtkSpinButton *)ui.fpsVideoSp, 30); + gtk_spin_button_set_value((GtkSpinButton *)ui.bitrateSp, 1000); + + gtk_spin_button_set_range((GtkSpinButton *)ui.widthSp, 1, 1920); + gtk_spin_button_set_range((GtkSpinButton *)ui.heightSp, 1, 1080); + gtk_spin_button_set_range((GtkSpinButton *)ui.fpsRenderSp, 1, 60); + gtk_spin_button_set_range((GtkSpinButton *)ui.fpsVideoSp, 1, 60); + gtk_spin_button_set_range((GtkSpinButton *)ui.bitrateSp, 1, 65535); + + g_signal_connect(ui.exportCb, "toggled", G_CALLBACK(on_exportCb_toggled), NULL); + g_signal_connect(ui.widthSp, "value-changed", G_CALLBACK(on_widthSp_valueChanged), NULL); + g_signal_connect(ui.heightSp, "value-changed", G_CALLBACK(on_heightSp_valueChanged), NULL); + g_signal_connect(ui.fpsRenderSp, "value-changed", G_CALLBACK(on_fpsRenderSp_valueChanged), NULL); + g_signal_connect(ui.fpsVideoSp, "value-changed", G_CALLBACK(on_fpsVideoSp_valueChanged), NULL); + g_signal_connect(ui.bitrateSp, "value-changed", G_CALLBACK(on_bitrateSp_valueChanged), NULL); + g_signal_connect(ui.exportTf, "changed", G_CALLBACK(on_exportTf_changed), NULL); + g_signal_connect(ui.startBtn, "clicked", G_CALLBACK(on_startBtn_clicked), NULL); + g_signal_connect(ui.exitBtn, "clicked", G_CALLBACK(on_exitBtn_clicked), NULL); + + g_object_unref(builder); + gtk_widget_show(ui.settings); + gtk_main(); + return 0; +} + +void on_exportCb_toggled() +{ + config.video = gtk_toggle_button_get_active((GtkToggleButton *)ui.exportCb); +} + +void on_exportTf_changed() +{ + config.path = CHAR_PTR(gtk_entry_get_text((GtkEntry *)ui.exportTf)); +} + +void on_widthSp_valueChanged() +{ + config.width = gtk_spin_button_get_value((GtkSpinButton *)ui.widthSp); +} + +void on_heightSp_valueChanged() +{ + config.height = gtk_spin_button_get_value((GtkSpinButton *)ui.heightSp); +} + +void on_fpsRenderSp_valueChanged() +{ + config.renderFPS = gtk_spin_button_get_value((GtkSpinButton *)ui.fpsRenderSp); +} + +void on_fpsVideoSp_valueChanged() +{ + config.videoFPS = gtk_spin_button_get_value((GtkSpinButton *)ui.fpsVideoSp); +} + +void on_bitrateSp_valueChanged() +{ + config.bitrate = gtk_spin_button_get_value((GtkSpinButton *)ui.bitrateSp); +} + +void on_startBtn_clicked() +{ + printf("config {\n\t.video = %u\n\t.filetype = %u\n\t.width = %u\n\t.height = %u\n\t.renderFPS = %u\n\t.videoFPS = %u\n\t.bitrate = %u\n\t.path = %s\n}\n", config.video, 0, config.width, config.height, config.renderFPS, config.videoFPS, config.bitrate, config.path); +} + +void on_exitBtn_clicked() +{ + gtk_main_quit(); +} -- cgit v1.2.1