Allow manual override of automatic knob size adjustment.
authorAlexander Koenig <alex@lisas.de>
Wed, 11 May 2016 22:03:00 +0000 (00:03 +0200)
committerAlexander Koenig <alex@lisas.de>
Wed, 11 May 2016 22:03:00 +0000 (00:03 +0200)
src/tX_dialog.cc
src/tX_global.c
src/tX_global.h
src/tX_knobloader.c
src/tX_mastergui.cc
src/tX_mastergui.h
src/tX_ui_interface.cc

index e38140b8f2a088d1da263ef52411209dc59393f9..34b11f2fad85f490050680387b89836f3d91814d 100644 (file)
@@ -119,6 +119,12 @@ void apply_options(GtkWidget *dialog) {
        globals.update_delay=(int) gtk_range_get_value(GTK_RANGE(lookup_widget(dialog, "update_delay")));
        globals.update_idle=(int) gtk_range_get_value(GTK_RANGE(lookup_widget(dialog, "update_idle")));
        globals.flash_response=gtk_range_get_value(GTK_RANGE(lookup_widget(dialog, "vumeter_decay")));
+
+       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "override_knob_size")))) {
+               globals.knob_size_override=gtk_range_get_value(GTK_RANGE(lookup_widget(dialog, "knob_size")));
+       } else {
+               globals.knob_size_override = 0;
+       }
        
        /* Audio Colors */
        
@@ -410,6 +416,13 @@ void init_tx_options(GtkWidget *dialog) {
        gtk_range_set_value(GTK_RANGE(lookup_widget(dialog, "vumeter_decay")), globals.flash_response);
        gtk_widget_set_tooltip_text(lookup_widget(dialog, "vumeter_decay"), "Defines how fast the maximum values of the VU meters should be decayed."); 
 
+
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "override_knob_size")), globals.knob_size_override > 0);
+       if (globals.knob_size_override) {
+               gtk_range_set_value(GTK_RANGE(lookup_widget(dialog, "knob_size")), globals.knob_size_override);
+       } else {
+               gtk_range_set_value(GTK_RANGE(lookup_widget(dialog, "knob_size")), 48);
+       }
        /* Audio Colors */
        int ctr=0;
        
index 276668fef049a4a30c9abcc9ba3e5f4e1e7d5f18..b99b51f5790ec92a0d177c2846bdf4d990d4a063 100644 (file)
@@ -102,6 +102,7 @@ void set_global_defaults() {
        globals.gui_wrap=3;
        
        globals.flash_response=0.95;
+       globals.knob_size_override=0;
        
        globals.button_type=BUTTON_TYPE_BOTH;
                
@@ -220,6 +221,7 @@ int load_globals_xml() {
                        restore_float("pitch", globals.pitch);
                        restore_float("volume", globals.volume);
                        restore_float("flash_response", globals.flash_response);
+                       restore_int("knob_size_override", globals.knob_size_override);
                        restore_int("button_type", globals.button_type);
                        restore_string("tables_filename", globals.tables_filename);
                        restore_string("record_filename", globals.record_filename);
@@ -343,6 +345,7 @@ void store_globals() {
                store_float("pitch", globals.pitch);
                store_float("volume", globals.volume);
                store_float("flash_response", globals.flash_response);
+               store_int("knob_size_override", globals.knob_size_override);
                store_int("button_type", globals.button_type);
                store_string("tables_filename", globals.tables_filename);
                store_string("record_filename", globals.record_filename);
index d9e5477ca1f721aad604e90841195ed0cbb675c9..7a35fa4d02545809f007e25e100d6f7a824f225f 100644 (file)
@@ -114,9 +114,10 @@ typedef struct {
        int autoname;
        
        float flash_response;
+       int knob_size_override;
        
        int button_type;
-       
+
        char file_editor[PATH_MAX];
        int true_block_size;
        int update_delay; 
index e7cdfbe643180bfd46887cfcf66a562ecccb241c..adf040ac228f81b78cdee2b3e7ec0dea47e4d1a7 100644 (file)
@@ -87,7 +87,11 @@ void load_knob_pixs(int fontHeight, int scaleFactor)
 {
        int i;
        GError *error;
-       tX_knob_size = fontHeight * 3 * scaleFactor;
+       if (globals.knob_size_override > 0) {
+               tX_knob_size = globals.knob_size_override;                      
+       } else {
+               tX_knob_size = fontHeight * 3 * scaleFactor;
+       }
        tX_debug("load_knob_pix(): knob size is %i", tX_knob_size);
        
        for (i=0; i<MAX_KNOB_PIX; i++) {
index ba8604e6017f2bd5fd386469ba222d35a39a8845..8b8592bf7ecd3eec0fc8a157eaad2c10049df839 100644 (file)
@@ -1600,9 +1600,10 @@ void tx_note(const char *message, bool isError, GtkWindow *window)
 {
        if (!window) window=GTK_WINDOW(main_window);
        
-       GtkWidget *dialog=gtk_message_dialog_new(window,
+       GtkWidget *dialog=gtk_message_dialog_new_with_markup(window,
                GTK_DIALOG_DESTROY_WITH_PARENT,
-               isError ? GTK_MESSAGE_ERROR : GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", message);
+               isError ? GTK_MESSAGE_ERROR : GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", "");
+       gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(dialog), message);
        gtk_dialog_run(GTK_DIALOG(dialog));
        gtk_widget_destroy(dialog);     
 }
index ca26e44368143edff2143d8d34220bb724df8338..a03314de3801a510c8783242af8c4a0796c1ad80 100644 (file)
 #include <X11/Xlib.h>
 
 #include "tX_seqpar.h"
+#include "tX_mouse.h"
 
 extern int audioon;
+extern tx_mouse mouse;
 extern Window x_window;
 extern GdkWindow* top_window;
 
index d161355c94b40c6925f5fff420458bc06b29876b..3ecea1991be18095ecbca16deb09763902f455f0 100644 (file)
@@ -184,6 +184,12 @@ create_tx_options (void)
   GtkWidget *update_idle;
   GtkWidget *update_delay;
   GtkWidget *vumeter_decay;
+
+  GtkWidget *label_override;
+  GtkWidget *label_knob_size;
+  GtkWidget *knob_size;
+  GtkWidget *override_knob_size;
+
   GtkWidget *label14;
   GtkWidget *startup_nagbox;
   GtkWidget *label12;
@@ -592,6 +598,27 @@ create_tx_options (void)
   gtk_widget_show (filename_length);
   gtk_grid_attach (GTK_GRID (grid2), filename_length, 1, 6, 1, 1);
 
+       label_override = gtk_label_new ("Knob size:");
+       gtk_widget_show(label_override);
+       gtk_grid_attach(GTK_GRID(grid2), label_override, 0, 7, 1, 1);
+       gtk_misc_set_alignment(GTK_MISC(label_override), 0, 0.5);
+
+  override_knob_size = gtk_check_button_new_with_mnemonic ("Override automatic adjustment");
+  gtk_widget_show (override_knob_size);
+  gtk_grid_attach (GTK_GRID (grid2), override_knob_size, 1, 7, 1, 1);
+  gtk_widget_set_tooltip_text(override_knob_size, "Only when this option is activated the configured value for knob size will be used. Otherwise the size is adjusted automatically.");
+
+       label_knob_size = gtk_label_new ("Size (override):");
+  gtk_widget_show(label_knob_size);
+  gtk_grid_attach(GTK_GRID(grid2), label_knob_size, 0, 8, 1, 1);
+  gtk_misc_set_alignment(GTK_MISC(label_knob_size), 0, 0.5);
+  
+  knob_size = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (48, 16, 169, 1, 1, 1)));
+  gtk_widget_show (knob_size);
+  gtk_grid_attach (GTK_GRID (grid2), knob_size, 1, 8, 1, 1);
+  gtk_scale_set_value_pos (GTK_SCALE (knob_size), GTK_POS_LEFT);
+  gtk_scale_set_digits (GTK_SCALE (knob_size), 0);
+
   label2 = gtk_label_new ("User Interface");
   gtk_widget_show (label2);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 4), label2);
@@ -984,6 +1011,10 @@ create_tx_options (void)
   TX_UI_HOOKUP_OBJECT (tx_options, pref_cancel, "pref_cancel");
   TX_UI_HOOKUP_OBJECT (tx_options, pref_apply, "pref_apply");
   TX_UI_HOOKUP_OBJECT (tx_options, pref_ok, "pref_ok");
+  TX_UI_HOOKUP_OBJECT (tx_options, label_override, "label_override");
+  TX_UI_HOOKUP_OBJECT (tx_options, label_knob_size, "label_knob_size");
+  TX_UI_HOOKUP_OBJECT (tx_options, knob_size, "knob_size");
+  TX_UI_HOOKUP_OBJECT (tx_options, override_knob_size, "override_knob_size");
 
   return tx_options;
 }