X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcscrollbar.C;h=bc2e4f990305b37beaba07f4c6bab180ba7ccef9;hb=7b05ad287956f8bd00836d9b5fb39f899a5fb641;hp=5de4db6b79618a83d9bb3f79a3930e970c2b722e;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcscrollbar.C b/cinelerra-5.1/guicast/bcscrollbar.C index 5de4db6b..bc2e4f99 100644 --- a/cinelerra-5.1/guicast/bcscrollbar.C +++ b/cinelerra-5.1/guicast/bcscrollbar.C @@ -28,13 +28,8 @@ #include -BC_ScrollBar::BC_ScrollBar(int x, - int y, - int orientation, - int pixels, - int64_t length, - int64_t position, - int64_t handlelength, +BC_ScrollBar::BC_ScrollBar(int x, int y, int orientation, int pixels, + int64_t length, int64_t position, int64_t handlelength, VFrame **data) : BC_SubWindow(x, y, 0, 0, -1) { @@ -43,16 +38,15 @@ BC_ScrollBar::BC_ScrollBar(int x, this->handlelength = handlelength; this->selection_status = 0; this->highlight_status = 0; + this->stretch = orientation & SCROLL_STRETCH ? 1 : 0; + orientation &= ~SCROLL_STRETCH; this->orientation = orientation; this->pixels = pixels; - if(data) - this->data = data; - else - if(orientation == SCROLL_HORIZ) - this->data = BC_WindowBase::get_resources()->hscroll_data; - else - this->data = BC_WindowBase::get_resources()->vscroll_data; + if( !data ) data = orientation == SCROLL_HORIZ ? + BC_WindowBase::get_resources()->hscroll_data : + BC_WindowBase::get_resources()->vscroll_data ; + this->data = data; handle_pixel = 0; handle_pixels = 0; @@ -90,8 +84,6 @@ void BC_ScrollBar::set_images(VFrame **data) calculate_dimensions(w, h); } - - void BC_ScrollBar::calculate_dimensions(int &w, int &h) { switch(orientation) @@ -664,6 +656,7 @@ int BC_ScrollBar::update_value(int64_t value) int BC_ScrollBar::update_length(int64_t length, int64_t position, int64_t handlelength, int flush) { + if( stretch ) length += handlelength/4; this->length = length; this->position = position; this->handlelength = handlelength;