X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbclistbox.C;h=7aec88685092efb556df0d992829e316258e06ff;hp=882c378be96f2bab80cb01c1b700aeda152b5706;hb=3ac8199743f244669cc87ceef9c3cd23710552f3;hpb=4d2d052cc767103a8699b1de0e3a1f36844ac04f diff --git a/cinelerra-5.1/guicast/bclistbox.C b/cinelerra-5.1/guicast/bclistbox.C index 882c378b..7aec8868 100644 --- a/cinelerra-5.1/guicast/bclistbox.C +++ b/cinelerra-5.1/guicast/bclistbox.C @@ -38,18 +38,10 @@ // ====================================================== scrollbars - -BC_ListBoxYScroll::BC_ListBoxYScroll(BC_ListBox *listbox, - int total_height, - int view_height, - int position) - : BC_ScrollBar(listbox->get_yscroll_x(), - listbox->get_yscroll_y(), - SCROLL_VERT, - listbox->get_yscroll_height(), - total_height, - position, - view_height) +BC_ListBoxYScroll::BC_ListBoxYScroll(BC_ListBox *listbox) + : BC_ScrollBar(listbox->get_yscroll_x(), listbox->get_yscroll_y(), + listbox->yscroll_orientation, listbox->get_yscroll_height(), + listbox->items_h, listbox->yposition, listbox->view_h) { this->listbox = listbox; } @@ -64,23 +56,10 @@ int BC_ListBoxYScroll::handle_event() return 1; } - - - - - - -BC_ListBoxXScroll::BC_ListBoxXScroll(BC_ListBox *listbox, - int total_width, - int view_width, - int position) - : BC_ScrollBar(listbox->get_xscroll_x(), - listbox->get_xscroll_y(), - SCROLL_HORIZ, - listbox->get_xscroll_width(), - total_width, - position, - view_width) +BC_ListBoxXScroll::BC_ListBoxXScroll(BC_ListBox *listbox) + : BC_ScrollBar(listbox->get_xscroll_x(), listbox->get_xscroll_y(), + listbox->xscroll_orientation, listbox->get_xscroll_width(), + listbox->items_w, listbox->xposition, listbox->view_w) { this->listbox = listbox; } @@ -96,12 +75,6 @@ int BC_ListBoxXScroll::handle_event() } - - - - - - BC_ListBoxToggle::BC_ListBoxToggle(BC_ListBox *listbox, BC_ListBoxItem *item, int x, @@ -361,6 +334,8 @@ BC_ListBox::BC_ListBox(int x, new_value = 0; need_xscroll = 0; need_yscroll = 0; + xscroll_orientation = SCROLL_HORIZ; + yscroll_orientation = SCROLL_VERT; bg_tile = 0; bg_draw = 1; drag_popup = 0; @@ -1234,6 +1209,13 @@ void BC_ListBox::set_autoplacement(ArrayList *data, } +void BC_ListBox::set_scroll_stretch(int xv, int yv) +{ + if( xv >= 0 ) xscroll_orientation = + !xv ? SCROLL_HORIZ : SCROLL_HORIZ + SCROLL_STRETCH; + if( yv >= 0 ) yscroll_orientation = + !yv ? SCROLL_VERT : SCROLL_VERT + SCROLL_STRETCH; +} int BC_ListBox::get_yscroll_x() { @@ -1970,11 +1952,8 @@ int BC_ListBox::get_scrollbars() { if(!xscrollbar) { - destination->add_subwindow(xscrollbar = - new BC_ListBoxXScroll(this, - w_needed, - view_w, - xposition)); + xscrollbar = new BC_ListBoxXScroll(this); + destination->add_subwindow(xscrollbar); xscrollbar->show_window(0); xscrollbar->bound_to = this; } @@ -1997,11 +1976,8 @@ int BC_ListBox::get_scrollbars() { if(!yscrollbar) { - destination->add_subwindow(yscrollbar = - new BC_ListBoxYScroll(this, - h_needed, - view_h, - yposition)); + yscrollbar = new BC_ListBoxYScroll(this); + destination->add_subwindow(yscrollbar); yscrollbar->show_window(0); yscrollbar->bound_to = this; }