On 12/16/2009 04:30 PM, Marius Dumitru Florea wrote:
> Sergiu Dumitriu wrote:
>> On 12/16/2009 11:22 AM, Marius Dumitru Florea wrote:
>>> Guillaume Lerouge wrote:
>>>> Hi,
>>>>
>>>> On Wed, Dec 16, 2009 at 9:48 AM, Thomas Mortagne
>>>> <[email protected]>wrote:
>>>>
>>>>> On Wed, Dec 16, 2009 at 08:30, Marius Dumitru Florea
>>>>> <[email protected]>   wrote:
>>>>>> Hi devs,
>>>>>>
>>>>>> Currently we have this behavior:
>>>>>>
>>>>>> * simple click to select a macro
>>>>>> * simple click to toggle between collapsed and expanded state of a
>>>>>> previously selected macro
>>>>>> * double click to edit the macro properties
>>>>>>
>>>>>> The problem is that the double click event consists, as its name
>>>>>> suggests, in two consecutive click events. As a consequence, when you
>>>>>> double click to edit a macro you also toggle its visibility state.
>>>>>> Besides being annoying, this can lead sometimes to an unexpected result:
>>>>>>
>>>>>> -----<details>   -----
>>>>>> I inserted a really long code macro (paste an entire Java source file).
>>>>>> and them selected the macro and double clicked somewhere in the middle
>>>>>> to edit its properties. This is what happened:
>>>>>>
>>>>>> * The first click event collapsed the macro
>>>>>> * The second click event was not fired on the macro but on document
>>>>>> body, because after the macro collapsed the place where I clicked was in
>>>>>> the middle of nowhere. As a result the macro was unselected.
>>>>>> * the (logical) double click event was still fired on the macro (I guess
>>>>>> because the target of the first click was the macro container) and thus
>>>>>> the edit macro dialog opened
>>>>>> * I changed the macro properties and closed the dialog. As a result the
>>>>>> macro was duplicated. The edit dialog should have replaced the selected
>>>>>> macro but there was no selected macro..
>>>>>> -----</details>   -----
>>>>>>
>>>>>> Therefore I propose to use a modifier key with click to collapse/expand
>>>>>> a macro. I'm not sure which modifier key is the best. I think we should
>>>>>> choose between Alt and Meta. The behavior would become:
>>>>>>
>>>>>> * simple click to select a macro
>>>>>> * [Alt or Meta] + simple click to toggle the collapsed and expanded state
>>>>>> * double click to edit
>>>>>>
>>>>>> I'm +1 for Alt key.
>>>>>>
>>>>>> WDYT?
>>>>> What about having to click in a specific area like a +/- in the top
>>>>> left corner to  toggle the collapsed and expanded state ? This sounds
>>>>> a lot easier and natural for a user, most of users will never remember
>>>>> how to do it if it's " [Alt or Meta] + simple click".
>>>>>
>>>> Yes, that's what I was thinking about too. A "minimize" button at the top
>>>> right of the macro displayer would be better.
>>> IMO macros should look as in view mode when expanded. Right now this is
>>> not happening all the time due to the current implementation which uses
>>> buttons to protect the macro output and buttons have an inherent
>>> inline-block display. But in the future, when the contentEditable
>>> attribute will be fully supported, we should have:
>>>
>>> before |this is a multiple line macro output blah blah
>>> blah blah blah blah blah| after
>>>
>>> instead of
>>>
>>> before |this is a multiple | after
>>>           |line macro output  |
>>>           |blah blah blah blah|
>>>           |blah blah blah     |
>>>
>>> Thus putting a +/- sign in the top left corner seems artificial to me,
>>> considering that the macro output is not necessarily a box.
>>>
>>> Coming back to the current implementation, I don't think it's possible
>>> to have a button inside another button and to catch the click event for
>>> the inner button because you can't actually click the inner button
>>> without clicking the outer button. If that would work then you would be
>>> able to interact with the macro output in edit mode (e.g. click links,
>>> move to the next page in a live table, etc.), which doesn't happen right
>>> now.
>>
>> It doesn't have to be a button inside a button. How about a small + icon
>> that appears only when hovering over the macro, overlapping the content,
>> so it doesn't appear like a window button, but more like the + button in
>> Dolphin (KDE 4) which allows to add documents to the selection.
>> Technically it could be a div outside the macro, absolute position,
>> z-index, and all the stuff that makes it appear over the macro. Can GWT
>> handle that?
>>
>
> If you can do it in JavaScript then you can do it in GWT. But is it
> worth implementing such a complex solution when it's so simple to use a
> shortcut. Now, let's say we go this way. Where exactly should we place
> the icon? I have a code macro that contains a large source file. When
> rendered inside the rich text area it takes a few "pages", i.e. you have
> to scroll to get from the start to the end. Also, it takes all the
> available width. Wherever I move the mouse the macro is hovered. Should
> the icon by displayed near the mouse cursor? Should be icon move with
> the mouse? If I place the mouse in the top left corned the icon should
> be place in the bottom right side of the mouse cursor. If I place the
> mouse cursor in the bottom right cornet then the icon should be placed
> in the top left side of the mouse cursor, etc. + make sure this works on
> all browsers. IMO this is too complicated with a lot of special use
> cases to take care of.

OK, agreed. I forgot about the Macro menu, so since there is an 
alternative, +1 for the shortcut. The tooltip idea is nice, too.

>> Extreme example: what happens with the Footnote macro, whose content is
>> tiny?
>
> WDYM? You think the user won't be able to collapse it? Why collapse it
> if it doesn't take space? Also note that macros without content are
> collapsed by default and can't be expanded.

This was an example against the button approach, since the footnote 
doesn't have enough room to accommodate the collapse button.

-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to