(re)enable navigation by up/down/left/right keys in Viewer and Composer windows...
left/right is mapped to 1 second leapse, up/down to 10 second ... this nicelly compliments the numerical keypad keys for moving around content. bye andraz
diff -ru --exclude-from exclude hvirtual-svn/cinelerra/cwindowgui.C hvirtual-2.1/cinelerra/cwindowgui.C --- hvirtual-svn/cinelerra/cwindowgui.C 2007-01-06 12:26:19.000000000 +0100 +++ hvirtual-2.1/cinelerra/cwindowgui.C 2007-02-11 12:56:08.000000000 +0100 @@ -724,6 +724,7 @@ this->mwindow = mwindow; this->cwindow = cwindow; set_precision(0.00001); + set_pagination(1.0, 10.0); } CWindowSlider::~CWindowSlider() diff -ru --exclude-from exclude hvirtual-svn/cinelerra/vwindowgui.C hvirtual-2.1/cinelerra/vwindowgui.C --- hvirtual-svn/cinelerra/vwindowgui.C 2007-01-06 12:26:19.000000000 +0100 +++ hvirtual-2.1/cinelerra/vwindowgui.C 2007-02-11 12:56:11.000000000 +0100 @@ -675,6 +675,7 @@ this->vwindow = vwindow; this->gui = gui; set_precision(0.00001); + set_pagination(1.0, 10.0); } VWindowSlider::~VWindowSlider() diff -ru --exclude-from exclude hvirtual-svn/guicast/bcslider.C hvirtual-2.1/guicast/bcslider.C --- hvirtual-svn/guicast/bcslider.C 2006-10-12 12:08:14.000000000 +0200 +++ hvirtual-2.1/guicast/bcslider.C 2007-02-11 12:52:43.000000000 +0100 @@ -206,11 +206,11 @@ switch(get_keypress()) { case UP: - increase_value(); + increase_value_big(); result = 1; break; case DOWN: - decrease_value(); + decrease_value_big(); result = 1; break; case LEFT: @@ -456,6 +456,22 @@ int BC_ISlider::decrease_value() { + value-=10; + if(value < minvalue) value = minvalue; + button_pixel = value_to_pixel(); + return 0; +} + +int BC_ISlider::increase_value_big() +{ + value+=10; + if(value > maxvalue) value = maxvalue; + button_pixel = value_to_pixel(); + return 0; +} + +int BC_ISlider::decrease_value_big() +{ value--; if(value < minvalue) value = minvalue; button_pixel = value_to_pixel(); @@ -544,6 +560,8 @@ this->maxvalue = maxvalue; this->value = value; this->precision = 0.1; + this->small_change = 0.1; + this->big_change = 1.0; } int BC_FSlider::value_to_pixel() @@ -604,7 +622,7 @@ int BC_FSlider::increase_value() { - value += precision; + value += small_change; if(value > maxvalue) value = maxvalue; button_pixel = value_to_pixel(); return 0; @@ -612,7 +630,23 @@ int BC_FSlider::decrease_value() { - value -= precision; + value -= small_change; + if(value < minvalue) value = minvalue; + button_pixel = value_to_pixel(); + return 0; +} + +int BC_FSlider::increase_value_big() +{ + value += big_change; + if(value > maxvalue) value = maxvalue; + button_pixel = value_to_pixel(); + return 0; +} + +int BC_FSlider::decrease_value_big() +{ + value -= big_change; if(value < minvalue) value = minvalue; button_pixel = value_to_pixel(); return 0; @@ -678,6 +712,12 @@ this->precision = value; } +void BC_FSlider::set_pagination(float small_change, float big_change) +{ + this->small_change = small_change; + this->big_change = big_change; +} + BC_PercentageSlider::BC_PercentageSlider(int x, @@ -709,22 +749,3 @@ return caption; } -int BC_PercentageSlider::increase_value() -{ - value += precision; - if(value > maxvalue) value = maxvalue; - button_pixel = value_to_pixel(); -//printf("BC_PercentageSlider::increase_value %f\n", value); - return 0; -} - -int BC_PercentageSlider::decrease_value() -{ - value -= precision; - if(value < minvalue) value = minvalue; - button_pixel = value_to_pixel(); -//printf("BC_PercentageSlider::decrease_value %f\n", value); - return 0; -} - - diff -ru --exclude-from exclude hvirtual-svn/guicast/bcslider.h hvirtual-2.1/guicast/bcslider.h --- hvirtual-svn/guicast/bcslider.h 2006-10-12 12:08:15.000000000 +0200 +++ hvirtual-2.1/guicast/bcslider.h 2007-02-11 12:53:56.000000000 +0100 @@ -44,6 +44,8 @@ int deactivate(); virtual int increase_value() { return 0; }; virtual int decrease_value() { return 0; }; + virtual int increase_value_big() { return 0; }; + virtual int decrease_value_big() { return 0; }; virtual char* get_caption() { return caption; }; private: @@ -100,6 +102,8 @@ int64_t get_length(); int increase_value(); int decrease_value(); + int increase_value_big(); + int decrease_value_big(); virtual int handle_event(); virtual char* get_caption(); @@ -133,8 +137,11 @@ float get_length(); virtual int increase_value(); virtual int decrease_value(); + virtual int increase_value_big(); + virtual int decrease_value_big(); virtual char* get_caption(); void set_precision(float value); + void set_pagination(float small_change, float big_change); private: int value_to_pixel(); @@ -142,6 +149,7 @@ int update_selection(int cursor_x, int cursor_y); float minvalue, maxvalue, value; float precision; + float small_change, big_change; }; class BC_PercentageSlider : public BC_FSlider @@ -158,8 +166,6 @@ int use_caption = 0, VFrame **data = 0); - virtual int increase_value(); - virtual int decrease_value(); char* get_caption(); private: };