For the few years that I've been using ImageEn, I've had a simple user interface. Double clicking toggled between MouseInteract = [miScroll] or [miSelectZoom]. I'm now using 8.6 so it is MouseInteractGeneral.
Earlier this year I began working with layers. I've found something I think is strange, perhaps not intended.
If MouseInteract contains [miSelectZoom] or MouseInteractGeneral contains it and MouseInteractLayers contains [mlResizeLayers, mlRotateLayers] or MouseInteractLayers = [] I can toggle between miSelectZoom and miScroll with the double click event as before. But if I happen to double click on a layer, even though it is not active and cannot be selected, it still shows the layer property dialog. The doubleclick event comes before LayerNotify and both receive the double click. And because the doubleclick event is activated, my code toggles between miScroll and miSelectZoom.
If layers are active, I can easily block the double click event like so:
if (mlResizeLayers in ImageEnView1.MouseInteractLayers = true) or
(mlMoveLayers in ImageEnView1.MouseInteractLayers = true) then
exit;
That prevents toggling scroll and zoom when I am working with layers, but that does not work to stop toggling when I have double clicked on an inactive layer.
I would like to either block the double click from activating the layer property dialog or block it from toggling scroll/selectzoom. Either would give my user interface a more consistent feel. Another possibility would be to reactivate the layer when I double click on it.
Are any of these options possible? I have tried a bunch of stuff to detect the double click on the layer, but failed. I have no idea how to block the layer property dialog when the layers are inactive.
A related question:
Prior to 8.6, I replaced MouseInteract = [miScroll] with [mlResizeLayers, mlRotateLayers] and there was no ambiguity as to what the mouse should do.
With 8.6, should I set MouseInteractGeneral := [] when setting MouseInteractLayer := [mlResizeLayers, mlRotateLayers] and vice versa?
J.R.