[Datagrid] How to manage the empty area outside the selectable lines?
Andre.Bisseret
Andre.Bisseret at inria.fr
Sun Apr 25 11:57:47 EDT 2010
Le 25 avr. 10 à 00:31, zryip theSlug a écrit :
> Hi all,
>
> I'm actually working with datagrids.
>
> First of all, I think that I have to explain my question, so:
>
> Basically a datagrid is divide in 4 parts:
> - headers
> - scroll bars
> - lines of data (that I call "the selectable lines")
> - area with no data (that I call "the empty area outside the
> selectable lines")
>
> I would like to manage this empty area. I planned to add a new line
> when an user double click in it.
> For doing that, I created this code in the datagrid script:
>
> on mouseDoubleUp
> If ((the dgHeader of the target is empty) and \
> (the short name of the mouseControl is not "dgCornerPiece")) then
> dg_AddNewLine long id of me,"last",true --C
> put the dgNumberOfLines of me into tCurrentRow
> set the dgHilitedLines of me to tCurrentRow
> dispatch "EditCell" to me with line 2 of the cColumnNames of me,\
> tCurrentRow
> end if
> end mouseDoubleUp
>
>
> I have difficulties with the scroll bars. When they exists but are not
> active (because the list is too small), they traps the double click
> and performs the creation of the new line.
>
> What is my best alternative if I assume that I have seen nothing in
> the API to manage this empty area?
> No doubt someone has already doing that. ;)
>
> I have already give a try to the mouseControl function but it not
> returns the scrollbar control because the datagrid bg objects rides
> the scrollbar.
Bonjour TheSlug,
You are right; I am fighting with that for a while without any success
(so my post won't not help much ;-((
If one write (in the dg script :
on mouseUp
put the target
end mouseUp
one get,
when clicking on the headers line: graphic "dgBackground"
"" on the Hscrollbar: graphic "dgBackground"
"" on the rows part: graphic "dgAlternatingRows"
"" on the VscrollBar: graphic "dgAlternatingRows"
So it is possible to get "insensible" header line, horizontal scroll
bar and the cornerPiece (bravo! sure I would not have think to this
one ;-))
Thus one can script:
on mouseUp
if the short name of the target is not in
"dgBackground,dgCornerPiece" then
if the dgIndex of the target is empty then beep 3 -- here
dispatch "addLine" etc.
end if
end mouseUp
but the V scroll bar continue to beep like the empty rows part (even
if one click beside a row whose is not empty)
I tried different tricks but seems really impossible to distinguish
the V scroll bar area from the rows area!!! (might be missing
something?)
>
> About this, by testing this solution, I seen an odd behavior with
> inactive horizontal scrollbars. When you click on the scrollbar and
> have lines in the datagrid, you select the corresponding line. Is it
> totally normal?
Right again! I did not noticed that before; seems not normal at all
actually!
Sorry no great help! only confirmation (and for me, learning;
thanks ;-))
Best regards from Grenoble
André
More information about the use-livecode
mailing list