Help with mouse-to-image user function/marquee menu customization

We use Fiji in our lab, but I find it is a pain in the ass to automate and customize, whereas Igor does not seem to have the same ease when it comes to image processing and related GUIs.

Looking through the manual, I see that I can use the marquee menu as an input device. This seems like the obvious place to start, but is it possible to change the mouse functionality, such that instead of having the default draggable ROI function, a control button could be used to change this to a simple line, or single pixel, etc..

Ultimately, I'd like to build some of my own tools, so that I can do some of the basic functions of Fiji inside of an Igor environment.

I don't know Fiji, but I do know that you can do a great deal - just set up a hook function on the image window. It is not too hard to do things like change the mouse cursor (for example using globals or user data as flags, and/or as a result of various combinations of modifier keys being pressed), and then draw marquee or other graphics, and so on.
There are probably better examples, but one I have used to get tips for doing this sort of thing is the Graph Magnifier. Add the following line to your Procedure window to get it:

#include <GraphMagnifier>


Have a browse through the various image processing utilities to see if anything else helps.
A window hook function should indeed give you a lot of power to implement different behaviors.

Two related things I would like to see in Igor are a magnifier and a 'hand' tool in the tool palette, for rapidly zooming and moving around on graphs. What other improvements do you think would make Igor more useful in Fiji/ImageJ-like image processing?
Hey thanks for the good tips, looks like my weekend is laid out for me now!

As far as Fiji-type tools, I think just the general toolbar is a must-have, and their image processing menus are much more fleshed out than Igor's. But while Fiji's GUI is superb for human interaction with a single image, it is a very tedious process to do anything with the resultant data. The copy-paste clip board when you take a line integral is a nightmare for example.

A sweet mix would be to just tie the whole toolbar into Igor, with the same command line print which is so great when you want to code something without having to read 3 chapters of the user manual. Do it once with point and click, get the commands from the command line, adapt to code. Whoever put that concept into Igor deserves a bonus.