[Mono-winforms-list] What ImageList bugs do we need?
Pavel Bansky
levap at bansky.net
Sun Oct 23 04:50:20 EDT 2005
Good job Kornél,
I prefer bugs to be fixed. Direction of "poting" apps is usually from
MS.NET to Mono, and in this direction corected bugs will be no problem.
cheers
Pavel
Kornél Pál wrote:
> Hi,
>
> Now ImageList should be functionally compatible with MS.NET. The only thing
> it cannot support is a native image list handle.
>
> But MS.NET ImageList seems to be poorly designed and in addition has a lot
> of bugs.
>
> There are three bugs that are so critical that I have corrected them:
>
> 1) MS.NET 1.x shares the same HIMAGELIST between ImageLists that were
> initialized from the same ImageListStreamer and doesn't update ImageSize
> and
> ColorDepth that are treated as bugs and MS.NET 2.0 behavior is implemented.
>
> 2) MS.NET 2.0 initializes TransparentColor to Color.Transparent in
> constructors but ResetTransparentColor and ShouldSerializeTransparentColor
> default to Color.LightGray that is treated as a bug.
>
> 3) MS.NET 2.0 does not clear keys when handle is destroyed that is treated
> as a bug.
>
> And there are some other bug that I implemented as feature:
>
> 4) Image strips are counted as a single item in the return value of Add and
> AddStrip until handle is created.
>
> 5) When ImageSize was changed after adding image strips Count will return
> invalid values based on old ImageSize but when creating handle either
> ArgumentException will be thrown or image strip will be added according to
> the new ImageSize. This can result in image count difference that can
> result
> in exceptions in methods that use Count before creating handle. In addition
> this can result in the loss of sync with keys. When doing the same after
> handle was created there are no problems as handle will be recreated after
> changing ImageSize that results in the loss of images added previously.
>
> 6) When last IndexOfKey was successful and the same key was assigned to an
> image with a lower index than the last result and the key of the last
> result
> equals to key argument the last result is returned.
>
> And ImageList has some other poorly designed methods that aren't bugs but
> their behavior is documented as comments in source code.
>
> Bug 1) can causes defective behavior particulary because thread safety
> issues.
> Bug 2) prevents Color.LightGray from being used as TransparentColor.
> Bug 3) makes keys useless after handle recreation.
> Bug 4) makes return value of Add methods useless.
> Bug 5) makes ImageSize changing incompatible with image strips and can
> cause
> very defective behavior when using image strips.
> Bug 6) makes IndexOfKey behavior inconsistent.
>
> All the above bugs can cause extreme ImageList behavior but who know
> whether
> some people are assume this behavior.
>
> My questions is that do we need any of these bugs as features? And do you
> mind if I correct bugs 4-6?
>
> Kornél
>
> _______________________________________________
> Mono-winforms-list maillist - Mono-winforms-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list
>
--
__________________________________________________________
Pavel Bánský
levap at bansky.net I write code...
__________________________________________________________
More information about the Mono-winforms-list
mailing list