aboutsummaryrefslogtreecommitdiff
path: root/src/mandelbrot-zoom.c
diff options
context:
space:
mode:
authorLeonard Kugis <leonardkugis@gmail.com>2018-01-13 22:56:35 +0100
committerLeonard Kugis <leonardkugis@gmail.com>2018-01-13 22:56:35 +0100
commit97b5922a75b6f0337c2d3ae4bc62dc18347f861e (patch)
tree9a11aa45941d35061cefd59e787e93696f5b35c7 /src/mandelbrot-zoom.c
parent78109333d989fa678c3c864defc4ef9d170f58ce (diff)
Funktionierendes settings GUI
Diffstat (limited to 'src/mandelbrot-zoom.c')
-rw-r--r--src/mandelbrot-zoom.c107
1 files changed, 107 insertions, 0 deletions
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();
+}