Bump -- would like to proceed with a check in.

Last patch in STR#1758 is a 'combined' patch that implements all 3:
http://www.fltk.org/str.php?L1758

Greg Ercolano wrote:
> (This is regarding solving STR#1758 and STR#1113 simultaneously)
> 
> Fl_Menu is lacking a few needed functions, namely:
> 
>         insert()         -- a way to insert a new Fl_Menu_Item at a specified 
> position
>         clear_submenu()  -- a way to clear a submenu (given either an item or 
> item pathname)
>         find_index()     -- similar to existing find_item(), returns the 
> index instead of the item*
> 
> REASONS FOR ADDITIONS
> 
>     insert() is almost impossible to implemented outside of fltk (eg. by 
> deriving a class).
>     clear_submenu() is useful for repopulating dynamically created submenus 
> (like File -> Recent -> ..)
>     find_index() is needed because sometimes you really need the index.
> 
> SUGGESTED INTERFACE
> 
>     int insert(int index, ..)
> 
>         Similar to add(), but inserts the new item at 'index'.
>         If index == -1, the new item is added to the end of the array (same 
> as 'add()')
>         The return value would be the same as add().
> 
>         '..' would be the exact calling parameters of the existing two public 
> add() methods.
> 
>         Since there are currently two overloads of add(), insert() would have 
> similarly
>         two equivalents. (They differ by the shortcuts, which can be either a 
> char* or int)
> 
>         To implement should be fairly easy; I plan to change the existing 
> add()
>         methods to call insert() to do their work, and move the existing code 
> for add()
>         to insert(). (The functionality of add() is really a subset of 
> insert())
> 
>     int clear_submenu(int submenu_index)
>     int clear_submenu(Fl_Menu_Item *submenu)
>     int clear_submenu(const char *submenu_pathname)
> 
>         Clears the specified submenu of all items (from one end to the other).
>         Submenu can either be specified as an index, item, or pathname.
>         Returns -1 if the specified submenu is not a submenu.
> 
>       Similar to add(), this would have to first check to see if the
>       menu has been malloc()ed, and if not, make a malloc copy of it first
>       before doing any operations.
> 
>     int find_index(Fl_Callback *cb) const
>     int find_index(const char *pathname) const
>     int find_index(Fl_Menu_Item *item) const
> 
>         Same as find_item(), only returns the index number instead of the 
> item*.
>         Returns -1 if item was not found.
>         The last case makes it possible to easily convert an item into an 
> index,
>       a functionality that has been lacking for a while, and simply involves
>       a math operation on the array pointers that can involve safe bounds 
> checks
>       for sanity.
_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to