I'm currently designing a little "drawing" app where the user can place certain predefined icons/objects on a canvas. See this GUI example:
I was looking at what would be the best method of placing the objects from the toolbar on the canvas and found that a lot of programs have different methods of doing this.
For example:
Balsamiq does this by simply dragging and dropping the objects from the library into the canvas. Alternatively, you can double click the object to place them directly on the canvas and you can ctrl+c & ctrl+v already placed objects to multiply them.
OmniGraffle has a slightly different method. First you have to "enable" the tool you want to place and then you can place the object on the canvas. After you did that, the tool will be disabled and you will be back to the move cursor. The user can double click the tool so it won't automatically return to the cursor to place multiple objects. (Similarly to Photoshop)