## Source code overview

Source code overview — Overview of the source code.

This chapter contains important information for those that want to hack on the code.

All source code is located in the `src` directory. Each C source code file has a matching header file. The header files are divided into two groups; those that are part of the public API and those that are not. All public API files are named using the `gtk` or `gdk` prefix. Each of them have a corresponding reference page devoted to them in this manual. Although both public and "private" header files are installed, the intention is that client code should only use declarations in the public header files.

Both public and private headers are installed because GtkImageView does not use the Pimpl idiom. The Pimpl idiom is not currently used because it makes the source code much uglier. That may change in future releases (see ticket 9).

There is no coding standards for this project because there hasn't been any need for one. However, it is my hope that the code is clear an concise enough. :) Each file has an Emacs mode line definition at the top which enforces my preferred coding style:

`-*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; coding: utf-8 -*-`

There is probably some equivalent mode line setting for vim.