From 9d46c7e44b0c8e0625894dbb688e9b2804d83c9d Mon Sep 17 00:00:00 2001 From: Leonard Kugis Date: Sun, 14 Jan 2018 18:10:06 +0100 Subject: Color selection added, not working for now --- .settings/language.settings.xml | 4 +- glade/main.glade | 373 ---------------------------------------- glade/settings.glade | 229 +++++++++++++++++++++++- src/mandelbrot-zoom.c | 103 +++++++---- src/mandelbrot-zoom.h | 31 ++-- src/settings.h | 7 +- 6 files changed, 318 insertions(+), 429 deletions(-) delete mode 100644 glade/main.glade diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 4ffde01..76dd30c 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/glade/main.glade b/glade/main.glade deleted file mode 100644 index 0457784..0000000 --- a/glade/main.glade +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - False - False - 300 - 300 - - - True - False - - - True - False - 0 - - - True - False - 12 - - - True - False - - - Export to file - True - True - False - True - - - True - True - 0 - - - - - True - False - 0 - none - - - True - False - 12 - - - GIF - True - True - False - True - True - - - - - - - True - False - File type - True - - - - - True - True - 1 - - - - - True - False - Choose export file - - - True - True - 2 - - - - - True - False - 5 - 2 - - - True - False - Render width - - - - - True - False - Render height - - - 1 - 2 - - - - - True - False - Render FPS - - - 2 - 3 - - - - - True - False - Video FPS - - - 3 - 4 - - - - - True - False - Video bitrate (kbit/s) - - - 4 - 5 - - - - - True - True - - False - False - True - True - - - 1 - 2 - - - - - True - True - - False - False - True - True - - - 1 - 2 - 1 - 2 - - - - - True - True - - False - False - True - True - - - 1 - 2 - 2 - 3 - - - - - True - True - - False - False - True - True - - - 1 - 2 - 3 - 4 - - - - - True - True - - False - False - True - True - - - 1 - 2 - 4 - 5 - - - - - True - True - 3 - - - - - - - - - True - False - Video settings - True - - - - - True - True - 0 - - - - - True - False - 0 - - - True - False - 12 - - - True - False - 2 - 2 - - - True - False - Zoom in - - - - - True - False - Zoom out - - - 1 - 2 - - - - - True - False - - - 1 - 2 - - - - - True - False - - - 1 - 2 - 1 - 2 - - - - - - - - - True - False - Control settings - True - - - - - True - True - 1 - - - - - True - False - - - Start - True - True - True - - - True - True - 0 - - - - - Exit - True - True - True - - - True - True - 1 - - - - - True - True - 2 - - - - - - diff --git a/glade/settings.glade b/glade/settings.glade index 10affe9..52029c8 100644 --- a/glade/settings.glade +++ b/glade/settings.glade @@ -2,6 +2,74 @@ + + False + 5 + dialog + + + True + False + #000000000000 + + + True + False + Select a color + + + True + True + 1 + + + + + + colorsel-help_button1 + colorsel-cancel_button1 + colorsel-ok_button1 + + + + button + True + True + True + + + + colorsel-help_button1 + colorsel-cancel_button1 + colorsel-ok_button1 + + + + button + True + True + True + + + + colorsel-help_button1 + colorsel-cancel_button1 + colorsel-ok_button1 + + + + button + True + True + True + + + + colorsel-help_button1 + colorsel-cancel_button1 + colorsel-ok_button1 + + False False @@ -11,6 +79,159 @@ True False + + + True + False + 0 + + + True + False + 12 + + + True + False + 2 + 2 + True + + + True + False + Max. iterations + + + + + True + True + + False + False + True + True + + + 1 + 2 + + + + + True + False + + + True + False + + + True + False + from + + + True + True + 0 + + + + + Select... + True + True + True + + + True + True + 1 + + + + + True + True + 0 + + + + + True + False + + + True + False + to + + + True + True + 0 + + + + + Select... + True + True + True + + + True + True + 1 + + + + + True + True + 1 + + + + + 1 + 2 + 1 + 2 + + + + + True + False + Color (from < to) + + + 1 + 2 + + + + + + + + + True + False + General settings + True + + + + + True + True + 0 + + True @@ -44,7 +265,6 @@ True False 0 - none True @@ -235,6 +455,7 @@ True C:\path\to\file.format + True False False True @@ -270,7 +491,7 @@ True True - 0 + 1 @@ -345,7 +566,7 @@ True True - 1 + 2 @@ -382,7 +603,7 @@ True True - 2 + 3 diff --git a/src/mandelbrot-zoom.c b/src/mandelbrot-zoom.c index 4f23696..7aecae4 100644 --- a/src/mandelbrot-zoom.c +++ b/src/mandelbrot-zoom.c @@ -14,37 +14,47 @@ int main(int argc, char **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 fr relative pfade - ui.settings = GTK_WIDGET(gtk_builder_get_object(builder, "settings")); + ui.settings = GTK_WINDOW(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); - + ui.iterationsSp = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "iterationsSp")); + ui.colorFromBtn = GTK_BUTTON(gtk_builder_get_object(builder, "colorFromBtn")); + ui.colorToBtn = GTK_BUTTON(gtk_builder_get_object(builder, "colorToBtn")); + ui.exportCb = GTK_CHECK_BUTTON(gtk_builder_get_object(builder, "exportCb")); + ui.gifRd = GTK_RADIO_BUTTON(gtk_builder_get_object(builder, "gifRd")); + ui.widthSp = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "widthSp")); + ui.heightSp = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "heightSp")); + ui.fpsRenderSp = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "fpsRenderSp")); + ui.fpsVideoSp = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "fpsVideoSp")); + ui.bitrateSp = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "bitrateSp")); + ui.exportTf = GTK_ENTRY(gtk_builder_get_object(builder, "exportTf")); + ui.startBtn = GTK_BUTTON(gtk_builder_get_object(builder, "startBtn")); + ui.exitBtn = GTK_BUTTON(gtk_builder_get_object(builder, "exitBtn")); + ui.colorDialog = GTK_COLOR_SELECTION_DIALOG(gtk_builder_get_object(builder, "colorDialog")); + + gtk_spin_button_set_increments(ui.iterationsSp, 1, 2); + gtk_spin_button_set_increments(ui.widthSp, 1, 2); + gtk_spin_button_set_increments(ui.heightSp, 1, 2); + gtk_spin_button_set_increments(ui.fpsRenderSp, 1, 2); + gtk_spin_button_set_increments(ui.fpsVideoSp, 1, 2); + gtk_spin_button_set_increments(ui.bitrateSp, 1, 2); + + gtk_spin_button_set_value(ui.iterationsSp, 1000); + gtk_spin_button_set_value(ui.widthSp, 1920); + gtk_spin_button_set_value(ui.heightSp, 1080); + gtk_spin_button_set_value(ui.fpsRenderSp, 30); + gtk_spin_button_set_value(ui.fpsVideoSp, 30); + gtk_spin_button_set_value(ui.bitrateSp, 1000); + + gtk_spin_button_set_range(ui.iterationsSp, 1, 16777215); // 3 bytes 8 bit = 24 bit + gtk_spin_button_set_range(ui.widthSp, 1, 1920); + gtk_spin_button_set_range(ui.heightSp, 1, 1080); + gtk_spin_button_set_range(ui.fpsRenderSp, 1, 60); + gtk_spin_button_set_range(ui.fpsVideoSp, 1, 60); + gtk_spin_button_set_range(ui.bitrateSp, 1, 65535); + + g_signal_connect(ui.iterationsSp, "value-changed", G_CALLBACK(on_iterationsSp_valueChanged), NULL); + g_signal_connect(ui.colorFromBtn, "clicked", G_CALLBACK(on_colorFromBtn_clicked), NULL); + g_signal_connect(ui.colorToBtn, "clicked", G_CALLBACK(on_colorToBtn_clicked), NULL); 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); @@ -56,44 +66,61 @@ int main(int argc, char **argv) g_signal_connect(ui.exitBtn, "clicked", G_CALLBACK(on_exitBtn_clicked), NULL); g_object_unref(builder); - gtk_widget_show(ui.settings); + gtk_widget_show(GTK_WIDGET(ui.settings)); gtk_main(); return 0; } +void on_iterationsSp_valueChanged() +{ + config.iterations = gtk_spin_button_get_value(ui.widthSp); +} + +void on_colorFromBtn_clicked() +{ + currentColor = COLOR_FROM; + gtk_dialog_run(ui.colorDialog); +} + +void on_colorToBtn_clicked() +{ + currentColor = COLOR_TO; + gtk_dialog_run(ui.colorDialog); +} + void on_exportCb_toggled() { - config.video = gtk_toggle_button_get_active((GtkToggleButton *)ui.exportCb); + config.video = gtk_toggle_button_get_active(ui.exportCb); } void on_exportTf_changed() { - config.path = CHAR_PTR(gtk_entry_get_text((GtkEntry *)ui.exportTf)); + config.path = CHAR_PTR(gtk_entry_get_text(ui.exportTf)); } void on_widthSp_valueChanged() { - config.width = gtk_spin_button_get_value((GtkSpinButton *)ui.widthSp); + config.width = gtk_spin_button_get_value(ui.widthSp); } void on_heightSp_valueChanged() { - config.height = gtk_spin_button_get_value((GtkSpinButton *)ui.heightSp); + config.height = gtk_spin_button_get_value(ui.heightSp); } void on_fpsRenderSp_valueChanged() { - config.renderFPS = gtk_spin_button_get_value((GtkSpinButton *)ui.fpsRenderSp); + config.renderFPS = gtk_spin_button_get_value(ui.fpsRenderSp); } void on_fpsVideoSp_valueChanged() { - config.videoFPS = gtk_spin_button_get_value((GtkSpinButton *)ui.fpsVideoSp); + config.videoFPS = gtk_spin_button_get_value(ui.fpsVideoSp); } void on_bitrateSp_valueChanged() { - config.bitrate = gtk_spin_button_get_value((GtkSpinButton *)ui.bitrateSp); + config.bitrate = gtk_spin_button_get_value(ui.bitrateSp); } void on_startBtn_clicked() diff --git a/src/mandelbrot-zoom.h b/src/mandelbrot-zoom.h index 9f1b454..5032087 100644 --- a/src/mandelbrot-zoom.h +++ b/src/mandelbrot-zoom.h @@ -14,6 +14,7 @@ #include "conversion.h" typedef struct config { + u32 iterations; bool video; u8 filetype; u16 width; @@ -26,23 +27,31 @@ typedef struct config { } Config; typedef struct ui_settings { - GtkWidget *settings; - GtkWidget *exportCb; - GtkWidget *gifRd; - GtkWidget *widthSp; - GtkWidget *heightSp; - GtkWidget *fpsRenderSp; - GtkWidget *fpsVideoSp; - GtkWidget *bitrateSp; - GtkWidget *exportTf; - GtkWidget *startBtn; - GtkWidget *exitBtn; + GtkWindow *settings; + GtkSpinButton *iterationsSp; + GtkButton *colorFromBtn; + GtkButton *colorToBtn; + GtkCheckButton *exportCb; + GtkRadioButton *gifRd; + GtkSpinButton *widthSp; + GtkSpinButton *heightSp; + GtkSpinButton *fpsRenderSp; + GtkSpinButton *fpsVideoSp; + GtkSpinButton *bitrateSp; + GtkEntry *exportTf; + GtkButton *startBtn; + GtkButton *exitBtn; + GtkColorSelectionDialog *colorDialog; } ui_settings; ui_settings ui; Config config; +u8 currentColor; int main(int argc, char **argv); +void on_iterationsSp_valueChanged(); +void on_colorFromBtn_clicked(); +void on_colorToBtn_clicked(); void on_exportCb_toggled(); void on_exportTf_changed(); void on_widthSp_valueChanged(); diff --git a/src/settings.h b/src/settings.h index e8c99f4..89f40b8 100644 --- a/src/settings.h +++ b/src/settings.h @@ -8,6 +8,11 @@ #ifndef SETTINGS_H_ #define SETTINGS_H_ -#define FILETYPE_GIF 1; +// FILETYPES +#define FILETYPE_GIF 0; + +// COLOR SELECTORS +#define COLOR_FROM 0; +#define COLOR_TO 1; #endif /* SETTINGS_H_ */ -- cgit v1.2.1