616c49a505
Make a separate library.
...
This is required for gtkdoc-scangobj. So far it's much like it's been
before, the main differences are that source files are in two directories
from now on and the build process has two stages.
2011-01-10 17:07:02 +01:00
63b36a2b5b
Use a central header.
...
$ time (make clean; make)
Before: ~8.0 seconds
After: ~8.1 seconds
2011-01-10 11:27:05 +01:00
01d771403e
Write a signature to diagram files.
2011-01-10 06:56:07 +01:00
d7c22f10d5
Fix drawing of symbol menus.
2011-01-10 05:19:32 +01:00
d785feeb82
Show names of symbols in the statusbar.
2011-01-10 04:58:32 +01:00
09a6e91f96
Remove a FIXME.
...
We don't really need to set the GError to anything.
2011-01-10 04:34:24 +01:00
bd4ca0dd29
Simulate motion events when needed.
2011-01-10 04:24:16 +01:00
a3eaab63ff
Draw category icons with style colors.
...
Previously the icons have been black in all themes.
2011-01-10 03:45:38 +01:00
73b611a844
Add a View menu to LdWindowMain, disabled so far.
2011-01-09 13:54:20 +01:00
1677e320a3
Add a "zoom" property to LdCanvas.
2011-01-09 08:35:40 +01:00
9db7e667ac
Add hide_terminals() to LdCanvas.
2011-01-09 08:10:20 +01:00
01541d7c46
Add a "class" property to LdDiagramSymbol.
...
Also add missing gtk-doc comments
for ld_diagram_symbol_{get,set}_class().
2011-01-09 07:30:01 +01:00
1cf5b9cd83
Make ld_lua_logdiag_register() a bit safer.
2011-01-09 07:09:18 +01:00
54ef5ce450
Fix comments.
2011-01-09 07:08:39 +01:00
8243114d09
Draw diagram objects in reversed order.
...
Previously older objects drew on top of newer ones.
2011-01-09 06:05:43 +01:00
911fac4c2f
Replace GSList with GList in LdDiagram.
...
This has been an unnecessary limitation.
2011-01-09 05:58:34 +01:00
9de3a0976d
Ensure that the canvas is focused.
2011-01-09 05:52:27 +01:00
800a381129
Call bind_textdomain_codeset().
2011-01-09 05:40:25 +01:00
3aeedd37b6
When zooming, focus on the cursor.
2011-01-09 05:32:08 +01:00
61ae34236a
Highlight symbol terminals on mouse hover.
2011-01-09 04:50:58 +01:00
f12df021f7
Refactor queue_object_redraw().
2011-01-09 04:41:41 +01:00
2328058b46
Add ld_point_distance().
2011-01-09 04:35:10 +01:00
fe996324d3
Take a better approach to drawing the grid.
...
If the diagram is zoomed out too much, just use bigger steps between dots.
2011-01-08 16:41:55 +01:00
909a0352cc
Don't draw the grid when it would be too narrow.
...
This prevents eating all the memory.
2011-01-08 12:11:08 +01:00
edd64aa132
Read terminals from Lua scripts and export them.
...
Also add a missing part of LdSymbol API.
2011-01-08 12:09:45 +01:00
7ce03bac9d
Make LdCanvas zoom on mouse wheel.
2011-01-08 12:05:59 +01:00
96f7710c25
Introduce LdRectangle, LdPoint and LdPointArray.
...
Remove LdCanvasRect and LdSymbolArea.
2011-01-08 09:01:33 +01:00
fda123249a
Export more cairo methods to Lua.
2011-01-07 16:15:58 +01:00
6b5bae881c
Update copyright years.
2011-01-07 05:13:00 +01:00
c815d0c16a
Allow object selection in LdCanvas.
...
Refactor a part of LdCanvas in the process.
2011-01-07 04:52:44 +01:00
1704b94650
Introduce structure LdCanvasRect.
...
It's basically the same as cairo_rectangle_t,
just in our own namespace.
2011-01-06 13:07:04 +01:00
53d1de680d
Change symbol clip tolerance to widget units.
...
As line width is in pixels, too, this makes much more sense.
2011-01-06 03:28:47 +01:00
8eba321abe
Redraw LdCanvas on LdDiagram changes.
2011-01-05 11:03:38 +01:00
63f6feaa0e
Add new objects to the start of LdDiagram's list.
...
This way it doesn't have to go through the whole linked list
to find a place for the objects.
2011-01-05 05:29:52 +01:00
b08217f999
Add a "selection-changed" signal to LdDiagram.
...
Make existing code emit this signal.
2011-01-05 04:37:42 +01:00
e92bebfa57
Add ld_diagram_{select,unselect}_all().
2011-01-05 04:35:25 +01:00
c4b8f092b7
Export cairo_{get,set}_line_width to Lua symbols.
2011-01-05 03:56:59 +01:00
25f1186000
Draw selected objects with another color.
...
Store all colors in LdCanvasPrivate and initialize them upon
object creation. This creates a base for color themes.
Make attempts to try adding an object that's not a part
of the document to the selection issue a warning.
2011-01-05 01:11:03 +01:00
fdf1ddbbb1
Move lines around. No functional change.
2011-01-04 23:05:38 +01:00
d3e5483c84
Make adding symbols to the diagram possible.
...
This required creating a simple framework for operations to LdCanvas.
It is probable that it's going to require some changes when other
operations are added. The basic idea behind it seems to be good, though.
2011-01-04 09:54:05 +01:00
25a0ea7ce5
Fix the "library" property in LdCanvas.
2011-01-04 04:08:05 +01:00
820239597e
Partial refactoring of LdCanvas.
...
draw_symbol() had been doing too much.
2011-01-04 00:45:44 +01:00
2cb570f894
Split in-out parameters into separate in and out.
...
In functions:
ld_canvas_diagram_to_widget_coords()
ld_canvas_widget_to_diagram_coords()
2011-01-03 05:57:22 +01:00
9dc1822040
Fix problems discovered while testing on Windows.
...
* Set the working directory for glib-genmarshal correctly.
* Use one more path suffix when searching for glibconfig.h.
* Don't assume that gdk_screen_get_resolution() returns
a useful value.
2010-12-20 05:20:21 +01:00
9178fb8d81
LdCanvas maintenance.
...
* Rename ld_canvas_translate_*_coordinates() to ld_canvas_*_to_*_coords().
* Add missing parameter assertions to those functions.
* Rename local variables in draw_grid().
* Use gdk_cairo_rectangle() in expose-event handler.
* Update comments.
2010-12-18 15:34:34 +01:00
f2f308f2f5
Make the symbol menu grab focus.
...
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.
2010-12-18 05:01:50 +01:00
86e73f86c2
Rename LdDocument* to LdDiagram*.
...
My bad; this name is much more appropriate.
2010-12-16 11:34:02 +01:00
721cc30478
Overall cleanup.
...
* 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.
2010-12-16 06:51:18 +01:00
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
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
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
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
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
354e54826f
Changed the object prefix from "logdiag" to "ld".
...
It was just too long to type and read. My mistake.
2010-09-19 19:12:36 +02:00
341f51eb41
Renamed source files.
...
Also a little change in CMakeLists.txt.
The next commit is going to change the object prefix.
2010-09-19 19:12:12 +02:00
db46ae5505
Started implementing the canvas and the document.
2010-09-17 18:53:57 +02:00
55c25ae1bd
Added basic loading of categories.
...
Added two empty sample categories with corresponding icons.
The categories are now being loaded into the toolbar
in the main program window.
2010-09-15 19:31:57 +02:00
82cfa12920
A little bit of cleanup.
2010-09-14 07:19:00 +02:00
b230b69539
Initial commit
2010-09-13 19:24:53 +02:00