This way when the user clicks outside the menu when it is open,
the menu will close itself first.
Keyboard input is however still not handled.
The symbol menu should be redesigned.
* Add missing asserts to exported functions.
* Unify formatting.
* Fix the gtk-doc comment for ld_symbol_category_set_human_name().
* Make ld_library_load() reflect it's declaration.
* Remove an unused variable in ld_library_load_cb().
* Change all char's to gchar's.
* Now diagrams can be created, loaded and saved.
* Define descriptions and accelerators for actions.
* Set irrelevant actions unsensitive.
* Also remove redundant comments for clarity.
The property is set to TRUE whenever the document changes.
The user may set it back to FALSE with ld_document_set_modified().
Also don't emit the "changed" signal when nothing has happened.
category.json contains a JSON object/table with localized
names of the category directory they are located within.
If a localized name cannot be found, the name of the category
is used as the human name, too.
The lucky ones are: capacitor, resistor and diode.
More symbols can be expected later, when more cairo
functions are exported to Lua and relevant standards
become accessible to me.
1. Add methods for coordinate translation between cairo/GtkWidget
coordinates and LdDocument coordinates.
2. Draw the grid correctly (also make it significantly faster).
3. Place the canvas into a GtkScrolledWindow and register
the set_scroll_adjustments signal in the GtkWidget base class.
4. Allow scrolling inside of an area of 200 x 200 units (for now).
In the future, it should be possible to go to infinity.
Originally, ld_lua_load_file_to_category() was adding
registered symbols into a passed LdSymbolCategory object.
This interface has been rewritten to be more generic
by using callbacks to notify about new symbols.
The previous method of containment, that is using GHashTable,
did not list children in any particular order.
Also names of children were duplicated. One copy has been
stored as a hash table index and another was present in the
child itself.
This step is needed, since the current design is quite chaotic
and it would not be possible to finish the application.
There's still a lot to be done.
After this step, it's time to implement the rest of LdLua.
FindGTK2.cmake required a change for successful program compilation.
It seems that gdk_pixbuf has been put as a separate library.
The new tools also generate a slightly different version
of marshallers, so I've added it to the tree.