home contents changes options help

This traces the function calls that occur between a user selecting File/Open... and the image being displayed on the screen.

1. menu entry File/Open... triggers

2. commands.c:file_open_cmd_callback() This does nothing, but call

3. fileops.c:file_open_callback which displays the dialog. Clicking OK triggers

4. fileops.c:file_open_ok_callback It does some processing on the filename and then calls

5. fileops.c:file_open. This looks up the right plugin depending on the format and invokes it via PDB. The call returns a gimage which is either displayed in a new gdisplay or added as a new layer to an existing image. (?? depending on what ??) If a new display is to be created, this is done calling

6. gdisplay.c:gdisplay_new This initializes all the fields and registers the display. It creates the interface via

7. interface.c:create_display_shell Amongst many other things, this connects a callback to canvas events:

8. disp_callbacks.c:gdisplay_canvas_events As the display is shown on screen, a GDK_EXPOSE event is sent which leads to the invocation of

9. disp_callbacks.c:redraw which finally displays the image on screen using

10. gdisplay:gdisplay_expose_area and gdisplay:gdisplays_flush (more info on these in the docu on the rendering engine, RenderArchitecture)