diff -Naur gtick-0.3.7/src/help.c gtick-0.3.7.new/src/help.c --- gtick-0.3.7/src/help.c 2005-10-03 12:35:52.000000000 -0500 +++ gtick-0.3.7.new/src/help.c 2005-12-02 12:38:42.000000000 -0600 @@ -136,8 +136,8 @@ /* vbox area */ gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(window)->vbox), 0); - table = gtk_table_new(4, 2, FALSE); - gtk_container_set_border_width(GTK_CONTAINER(table), 10); + table = gtk_table_new(15, 2, FALSE); + gtk_container_set_border_width(GTK_CONTAINER(table), 15); label = gtk_label_new(_("Ctrl-S")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); @@ -162,7 +162,79 @@ gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, 10, 5); gtk_widget_show(label); + + label = gtk_label_new(_("Alt-w")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 4, 5, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Alt-q")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Alt-a")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 6, 7, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Alt-s")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 7, 8, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Alt-z")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 8, 9, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Alt-x")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 9, 10, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + label = gtk_label_new(_("Shift-w")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 10, 11, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Shift-q")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 11, 12, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Shift-a")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 12, 13, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Shift-s")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 13, 14, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Shift-z")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 14, 15, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Shift-x")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 15, 16, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + label = gtk_label_new(_("Start/Stop")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 1, 2, 0, 1, @@ -187,6 +259,81 @@ GTK_EXPAND | GTK_FILL, 0, 10, 5); gtk_widget_show(label); + label = gtk_label_new(_("Double Speed")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 4, 5, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Half Speed")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 5, 6, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Speed: -10")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 6, 7, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Speed: +10")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 7, 8, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Speed: -2")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 8, 9, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Speed: +2")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 9, 10, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Double Volume")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 10, 11, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Half Volume")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 11, 12, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Volume: -10")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 12, 13, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Volume: +10")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 13, 14, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Volume: -2")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 14, 15, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Volume: +2")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach(GTK_TABLE(table), label, 1, 2, 15, 16, + GTK_EXPAND | GTK_FILL, 0, 10, 5); + gtk_widget_show(label); + + + + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox), table, TRUE, FALSE, 0); gtk_widget_show(table); diff -Naur gtick-0.3.7/src/metro.c gtick-0.3.7.new/src/metro.c --- gtick-0.3.7/src/metro.c 2005-10-03 12:35:52.000000000 -0500 +++ gtick-0.3.7.new/src/metro.c 2005-12-02 12:38:49.000000000 -0600 @@ -1112,7 +1112,7 @@ free(closure_data); } -/* speed shortcuts */ + static void set_speed_shortcut_cb_plus(metro_t* metro) { gdouble speed = gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); @@ -1122,6 +1122,26 @@ speed + 1); } } +static void set_speed_shortcut_cb_plusTwo(metro_t* metro) { + gdouble speed = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); + + if (speed + 1 <= GTK_ADJUSTMENT(metro->speed_adjustment)->upper) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->speed_adjustment), + speed + 2); + } +} + +static void set_speed_shortcut_cb_plusTen(metro_t* metro) { + gdouble speed = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); + + if (speed + 10 <= GTK_ADJUSTMENT(metro->speed_adjustment)->upper) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->speed_adjustment), + speed + 10); + } +} + static void set_speed_shortcut_cb_minus(metro_t* metro) { gdouble speed = gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); @@ -1132,8 +1152,118 @@ } } +static void set_speed_shortcut_cb_minusTwo(metro_t* metro) { + gdouble speed = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); + + if (speed - 1 >= GTK_ADJUSTMENT(metro->speed_adjustment)->lower) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->speed_adjustment), + speed - 2); + } +} + +static void set_speed_shortcut_cb_minusTen(metro_t* metro) { + gdouble speed = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); + + if (speed - 10 >= GTK_ADJUSTMENT(metro->speed_adjustment)->lower) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->speed_adjustment), + speed - 10); + } +} + +static void set_speed_shortcut_cb_double(metro_t* metro) { + gdouble speed = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); + + if (speed * 2 <= GTK_ADJUSTMENT(metro->speed_adjustment)->upper) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->speed_adjustment), + speed *= 2); + } +} + + +static void set_speed_shortcut_cb_half(metro_t* metro) { + gdouble speed = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->speed_adjustment)); + + if (speed / 2 >= GTK_ADJUSTMENT(metro->speed_adjustment)->lower) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->speed_adjustment), + speed /= 2); + } +} + + + +static void set_volume_shortcut_cb_plusTwo(metro_t* metro) { + gdouble volume = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->volume_adjustment)); + + if (volume + 1 <= 100) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume + 2); + } +} + +static void set_volume_shortcut_cb_minusTwo(metro_t* metro) { + gdouble volume = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->volume_adjustment)); + + if (volume - 1 >= 0) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume - 2); + } +} + +static void set_volume_shortcut_cb_plusTen(metro_t* metro) { + gdouble volume = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->volume_adjustment)); + + if (volume + 10 <= 100) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume + 10); + } +} + +static void set_volume_shortcut_cb_minusTen(metro_t* metro) { + gdouble volume = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->volume_adjustment)); + + if (volume - 10 >= 0) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume - 10); + } +} + + +static void set_volume_shortcut_cb_double(metro_t* metro) { + gdouble volume = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->volume_adjustment)); + + if (volume * 2 <= 100) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume *= 2); + } + else { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume = 100); + } +} + +static void set_volume_shortcut_cb_half(metro_t* metro) { + gdouble volume = + gtk_adjustment_get_value(GTK_ADJUSTMENT(metro->volume_adjustment)); + + if (volume / 2 >= 0) { + gtk_adjustment_set_value(GTK_ADJUSTMENT(metro->volume_adjustment), + volume /= 2); + } +} + + + /* - * returns a new metro object + * returns a new metro objecta */ metro_t* metro_new(void) { metro_t* metro; @@ -1552,8 +1682,43 @@ gtk_accel_group_connect(metro->accel_group, '+', GDK_CONTROL_MASK, 0, g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_plus), metro, NULL)); gtk_accel_group_connect(metro->accel_group, '-', GDK_CONTROL_MASK, 0, - g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_minus),metro, NULL)); + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_minus),metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'x', GDK_MOD1_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_plusTwo), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'z', GDK_MOD1_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_minusTwo),metro, NULL)); + + gtk_accel_group_connect(metro->accel_group, 'd', GDK_CONTROL_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_double), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'h', GDK_CONTROL_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_half), metro, NULL)); + + gtk_accel_group_connect(metro->accel_group, 'w', GDK_MOD1_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_double), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'q', GDK_MOD1_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_half), metro, NULL)); + + gtk_accel_group_connect(metro->accel_group, 's', GDK_MOD1_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_plusTen), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'a', GDK_MOD1_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_speed_shortcut_cb_minusTen), metro, NULL)); + + gtk_accel_group_connect(metro->accel_group, 'x', GDK_SHIFT_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_volume_shortcut_cb_plusTwo), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'z', GDK_SHIFT_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_volume_shortcut_cb_minusTwo),metro, NULL)); + + gtk_accel_group_connect(metro->accel_group, 's', GDK_SHIFT_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_volume_shortcut_cb_plusTen), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'a', GDK_SHIFT_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_volume_shortcut_cb_minusTen),metro, NULL)); + + gtk_accel_group_connect(metro->accel_group, 'w', GDK_SHIFT_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_volume_shortcut_cb_double), metro, NULL)); + gtk_accel_group_connect(metro->accel_group, 'q', GDK_SHIFT_MASK, 0, + g_cclosure_new_swap(G_CALLBACK(set_volume_shortcut_cb_half),metro, NULL)); + option_register(&metro->options->option_list, "VisualTick", (option_new_t) new_visualtick,