Commit Graph

156 Commits

Author SHA1 Message Date
4a946b3241 Implement diagram operations in UI.
* Now diagrams can be created, loaded and saved.
* Define descriptions and accelerators for actions.
* Set irrelevant actions unsensitive.
* Also remove redundant comments for clarity.
2010-12-16 06:10:28 +01:00
2c3345a4fd Add change notifications to properties.
Also fix the "human-name" property in LdSymbolCategory
and correct gtk-doc comments for coordinates properties
accessors in LdDocumentObject.
2010-12-16 04:50:54 +01:00
45aeda982b Remove redundant flags from signals. 2010-12-12 18:17:13 +01:00
a56bfd6087 LdWindowMain cleanup.
* Restructure the initialization code.
* Move LdCanvas event mask setting to ld-canvas.c.
* Remove some redundant code.
* Use consistent naming.
* Update comments.

Practically no functional change.
2010-12-12 17:56:59 +01:00
fdab244e2e Rename local LdCanvas methods.
Use a "real" prefix, as GTK+ does.
2010-12-12 17:30:28 +01:00
f9dbe12971 Stubplement LdDocument file operations.
Prototypes for these functions were wrong; fixed.
2010-12-11 20:32:03 +01:00
e364267010 Add a "modified" property to LdDocument.
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.
2010-12-11 20:31:54 +01:00
805089c38f Rename local LdLuaSymbol methods.
Use a "real" prefix, as GTK+ does.

Also make the implementations of virtual functions
really static, as they prototypes were telling.
2010-12-11 14:26:00 +01:00
afacad693d Add a main toolbar.
So far it has no special powers. This should change in the future.
2010-12-11 04:15:23 +01:00
fe7c270bdd Check for name collisions in symbol categories. 2010-12-11 03:49:54 +01:00
e6230576b7 Add category.json files for testing categories. 2010-12-11 03:49:53 +01:00
67325d5f70 Read human names of categories from category.json.
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.
2010-12-11 03:49:46 +01:00
74e43ceee4 Add a "human-name" property to LdSymbolCategory.
Just as LdSymbol has a human name for localization purposes,
LdSymbolCategory also needs to have this property.

Use the human name in tooltips.
2010-12-11 02:44:00 +01:00
aeb6e7ed58 Add a few symbols for testing.
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.
2010-12-10 23:27:45 +01:00
dea23f1204 Draw symbols from LdDocument in LdCanvas.
Just the minimal implementation so far.
2010-12-10 22:58:36 +01:00
3419680f25 Implement more of LdCanvas.
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.
2010-12-10 22:36:41 +01:00
37d898fb1a Change LdSymbolArea members.
Now it contains coordinates of the top-left delimiting
point and computed dimensions (instead of coorinates of
both delimiting points).
2010-12-10 08:57:42 +01:00
3d3a71d5d2 Prepare the project for json-glib.
This required writing a special CMake find module.
2010-12-05 15:30:21 +01:00
1d956964e2 Random fixes.
Mostly found by -Wextra.
2010-12-05 15:21:00 +01:00
147cf2977a Initial LdDocument implementation.
The document maintains a list of LdDocumentObject objects.
2010-12-05 15:15:52 +01:00
7a0b280854 Add a "library" property to LdCanvas.
Also make the code reference properties properly.
2010-11-19 07:05:44 +01:00
d31d420f59 Symbols are required to save cairo state. 2010-11-16 10:30:10 +01:00
8f2dad4ead Added basic onscreen symbol menu.
So far it does not add symbols to the document,
as there is momentarily no interface for neither
the document nor the canvas.
2010-11-16 10:26:15 +01:00
263aa9062e Formatting and naming changes in LdWindowMain. 2010-10-28 14:11:59 +02:00
5a24eaabb2 Made Lua symbol registration more robust. 2010-10-28 09:07:47 +02:00
9271ce1134 Separate LdLua and LdSymbolCategory.
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.
2010-10-27 20:49:21 +02:00
8b5fa9a49a Implement parts of Lua symbol registration.
The human name and area now gets resolved.
2010-10-27 20:05:52 +02:00
1c5127068e Fix gtk-doc comments. 2010-10-27 18:18:37 +02:00
121d923d29 Added an "area" property to LdSymbol.
To accomplish this, LdSymbolArea had to be converted
to a regular boxed type.
2010-10-27 18:15:31 +02:00
9156953cc9 Add more properties to LdSymbol.
Also move the actual storage of symbol properties to implementations
of the abstract LdSymbol class. All the properties are read only.
2010-10-27 16:52:00 +02:00
aa33db342b Added ld_library_find_symbol().
This function tries to return a symbol that corresponds
to the given identifier.
2010-10-26 20:01:52 +02:00
979308aa7f Manage LdLibrary children in a GSList.
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.
2010-10-26 16:41:03 +02:00
9a242786b1 Redesign and implement the basic parts of LdLua.
There's a very strong bond between LdLua and LdLuaSymbol.
LdLuaSymbol is more like an interface to LdLua than a separate object.
2010-10-26 16:40:53 +02:00
2b9b543402 Implement the LdSymbol "name" property. 2010-10-26 16:40:21 +02:00
ba3b348dfd Implement the rest of LdSymbolCategory.
Added GObject properties for object parameters.
Implemented methods for children management.
2010-10-26 16:40:08 +02:00
ffc57249c8 Make LdLibrary call LdLua to load symbol scripts. 2010-10-26 13:58:39 +02:00
e0e63649dc Redesign the library and related components.
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.
2010-10-26 13:58:33 +02:00
0c9b297e50 Implement part of LdLuaSymbol.
The "new" method requires to be passed a parameter that
makes it possible to call the appropriate render function.

Stub-plemented the "draw" method.
2010-10-17 14:05:53 +02:00
9fc354e066 Implement a few bits of LdLua.
Some comments in the source code have been updated.
2010-10-17 14:05:53 +02:00
efe45e9601 Convert LdSymbol into an abstract class.
Created LdLuaSymbol, which subclasses LdSymbol.
2010-10-17 14:05:53 +02:00
23a1f25130 Created LdLua class. 2010-10-17 14:05:53 +02:00
c0ec389b59 Renamed LdSymbolLibrary to LdLibrary. 2010-10-17 14:05:53 +02:00
5da5689541 WIP: Refactoring of the library and symbols 2010-10-17 14:05:53 +02:00
25668c2073 Updated to new GTK+.
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.
2010-10-17 13:36:03 +02:00
f250621519 Split ld-symbol-library.c.
Originally, there were three object classes defined in this file.
It would later become rather chaotic if left that way.
2010-09-20 18:18:30 +02:00
f675a7c07c Require Lua 5.1 and GTK+ 2.12. 2010-09-20 17:28:23 +02:00
efc3ad6f5c Implemented a skeleton of LdCanvas.
It now paints itself white and draws a simple grid.
Also an LdDocument can be assigned to it.
2010-09-20 05:29:41 +02:00
2dd5dbaf67 Automatized generation of marshallers. 2010-09-19 19:12:36 +02:00
b66704114e Little improvements, overall cleanup. 2010-09-19 19:12:36 +02:00
65bbe06267 Add marshaller files generated by glib-genmarshal. 2010-09-19 19:12:36 +02:00