Re: Plans?

From: Dmitry Karasik <dmitry_at_karasik.eu.org>
Date: 06 Mar 2005 20:57:03 +0100
To: prima_at_prima.eu.org

        Hi vytautas!

 vytautas> What is planned for Prima-1.18? -
>> Nothing really, maximum some bugfixes. Any ideas?

Well that is quite an impressive wish list. I definitely can't promise
that I'll be implementing everything, but I'm pretty sure I will do
some.

 vytautas> "insert->" allows to insert a list of widgets, i would like to
 vytautas> insert a hierarchy of widgets. This could be implemented by
 vytautas> assigning a list of widgets to a "widgets" property. If this is
 vytautas> already possible, could i get an example?

Widget::insert(), for one, can insert more than one widget in a single
call ( just pass to it a list of widget profiles in an array ), but can't
do hierarchy. I think that this 'widgets' property would be a clean
way to implement tree-wise insertion, and cheap to implement too. I'll look
into it.

 vytautas> Extending functionality of list and outline.

 vytautas> Selected elements of list could be draged in between other
 vytautas> elements(like in a playlist of many audio players).

That, I think, is not a generic functionality. There is a design problem
here, because some List ( and Outline ) classes can be backed up not by
real data (array of text lines, for example), but a function of some kind.
That way, one can implement for example a list widget with numbers from
1 to 1e12 without actually allocating memory for the items. Thus, drag-
relocation of items is not straighforward for these ( although it is
for the data-backed lists). Hence, instead of actually writing relocation
procedure, it would be necessary to define a new notification, for example,
onMoveItems. Looks feasible, but not first priority.

 vytautas> Cntrl+click
 vytautas> would select a single item and shift+click would select a range
 vytautas> of items from the last selected(like in many file managers).

Multiple selection in Lists exists, but is not turned by default - there
are ::multiSelect and ::extendedSelect properties. The range
selection is not implemented, but I think can be done in one way or
another. I'm thinking of ::rangeSelect property, 1 by default.

 vytautas> Multiple selection in outlines.

This is a bit complicated issue. First, outline items are not represented by
integer indexes, but by a measure-less node scalar. Second, the fact that
outline items expand and collapse, makes multi selection management
complicated. Feasible, but still complicated.

 vytautas> DragDrop DragOver and EndDrag as i see it.

 vytautas> EndDrag - for dragging between widgets mouseup should have
 vytautas> additional parameter - a reference to widget where the mouse was
 vytautas> pressed. DragOver - a separate case of mouseover where
 vytautas> get_mouse_state is "something". DragDrop - mousedown with
 vytautas> checking some flags like in Outlines.pm.a

I've been long thinking about proper implemntation of the
platform-supported drag-n-drop, but never actually met a demand for
it. I'm also curious about getting into the DND guts, but never had
enough motivation. I hope I find it ( along with free time :) to hack
into it.

 vytautas> After sorting a list is scrolled to show the focused item. There
 vytautas> could be a scrollaftersort property enabling to choose a
 vytautas> scrollaftersorting mode something like 1 -> show the top 2 ->
 vytautas> dont scroll 3 -> scroll to show focused item

I'm afraid I'm not getting it - do you refer to the sort() action of the
DetailedList ?

Anyway, thank you for the input. The fact that there is none, often than
not, makes me concentrate on things other than Prima.

-- 
Thanks again,
	Dmitry Karasik
---
catpipe Systems ApS
*BSD solutions, consulting, development
www.catpipe.net
+45 7021 0050  
Received on Sun 06 Mar 2005 - 20:57:05 CET

This archive was generated by hypermail 2.2.0 : Sat 19 Mar 2011 - 18:35:05 CET