It seems that for some reason you didn't saw or like my sugestion that
allows automatic scroll of the the tree when navigating with keyboard:

            case FL_Up:         // next item up
            case FL_Down: {     // next item down
              set_item_focus(next_visible_item(_item_focus, ekey));     // next 
item
up|dn
              if ( _item_focus ) {                                      // item 
in focus?
                if ( _prefs.selectmode() == FL_TREE_SELECT_MULTI &&     // 
multiselect on?
                     (Fl::event_state() & FL_SHIFT) &&                  // 
shift key?
                     ! _item_focus->is_selected() ) {                   // not 
already selected?
                    select(_item_focus);                                // 
extend selection..
                }
//code bellow allow automatic scrolling with keyboard
              switch (ekey) {
              case FL_Up:
                if(_item_focus->y() < y())
vscroll->value(vscroll->value()-_item_focus->h());
                break;
              case FL_Down:
                if((_item_focus->y()+_item_focus->h()) > (y()+h()))
                        vscroll->value(vscroll->value()+_item_focus->h());
                break;
              }         
//code end automatic scrolling
                return(1);
              }
              break;
            }



En 12/08/2010 03:32:31, Greg Ercolano <[email protected]> escribió:

> Another updated Fl_Tree patch against a clean r7680; more features.
> http://seriss.com/people/erco/fltk/tmp/Fl_Tree-add-keyboard-nav-to-r7680-08-11-10--5pm.patch
>
>     * Added Domingo's recommended Fl_Tree_Item accessors x() / y() / w()  
> / h()
>
>     * Added Fl_Tree::show_item(), show_top(), show_middle(),  
> show_bottom().
>       This lets one procedurally scroll the display to make the  
> specified item visible
>       at particular positions on the display. (for Mayank Malik)
>
>     * Added Fl_Tree::first_selected_item() and  
> Fl_Tree::next_selected_item().
>       With this you can loop through just the selected items.
>
>     * tree demo modified to include top/mid/bot buttons that test the  
> above.
>       To use this, select an item in the display, and hit Top/Mid/Bot  
> buttons
>       to position that item in the display. Scrollbar must be able to  
> move to
>       show the item, so it's best to have e.g. the "500 Items" tree  
> open, and
>       select an item that is somewhere lower in the list.
>
>     * vscroll widget is public, so caller can directly manipulate the  
> scrollbar.
>       (Using Fl_Browser as a model here.. not sure if this is a bad idea  
> or not.
>       This might be backed out)
>
>         TODO:
>                 o autoscroll during selection/focus navigation
>
>                 o Need a callback system that is invoked when items are  
> open/closed
>
>                 o Need to allow keyboard nav to move focus to child FLTK  
> widgets


-- 
Usando el revolucionario cliente de correo de Opera:
http://www.opera.com/mail/
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to