Commit Graph

170 Commits

Author SHA1 Message Date
Přemysl Eric Janouch d4bfd8a504 Convert encoding of command line filenames.
Fixes Windows.
2011-02-19 23:27:00 +01:00
Přemysl Eric Janouch fdb6418733 Reset view to center for new diagrams. 2011-02-19 22:49:20 +01:00
Přemysl Eric Janouch 781273c236 Open files from command line. 2011-02-19 22:49:20 +01:00
Přemysl Eric Janouch 7fa6efbaec Rename LdCanvas to LdDiagramView. 2011-02-19 22:49:20 +01:00
Přemysl Eric Janouch 0841e75076 Change the current directory on Windows.
So the application can always find it's files.
2011-02-13 21:14:24 +01:00
Přemysl Eric Janouch cffc6f01a5 Use gtk_init_with_args(). 2011-02-13 20:55:03 +01:00
Přemysl Eric Janouch ebd4cd3a17 Various changes to LdWindowMain.
* Convert filenames from system locale.
* Internationalize.
* Split diagram_show_open_dialog().
2011-02-13 20:17:21 +01:00
Přemysl Eric Janouch 948e9d53d2 Update translation template. 2011-02-12 18:40:21 +01:00
Přemysl Eric Janouch 9a217e97c8 Change the way translations are done.
* Require gettext-tools to build.
* Depend on libintl on Win32.
2011-02-12 18:40:16 +01:00
Přemysl Eric Janouch 169a28cc23 Define github as the homepage for logdiag. 2011-02-07 18:03:15 +01:00
Přemysl Eric Janouch 2b0672a2cb Implement zooming in LdWindowMain.
Add convenience methods to LdCanvas.
2011-02-04 20:19:01 +01:00
Přemysl Eric Janouch c091f71f9a Offer the undo functionality in LdWindowMain.
Kill the "Export" action for now.
2011-02-01 14:52:27 +01:00
Přemysl Eric Janouch 400568ed7d Add some reminder comments. 2011-01-29 13:09:16 +01:00
Přemysl Eric Janouch cf3e4ae473 Fix program messages and gtk-doc comments. 2011-01-28 17:50:21 +01:00
Přemysl Eric Janouch b782dae4b2 Make ld_canvas_new() return a GtkWidget reference.
For consistency with GTK+.
2011-01-24 17:22:37 +01:00
Přemysl Eric Janouch 33beece3ab Move the library toolbar to its own class. 2011-01-24 17:13:56 +01:00
Přemysl Eric Janouch 4a9a8e8f0a Include liblogdiag.h as it was an external lib. 2011-01-24 04:42:18 +01:00
Přemysl Eric Janouch 68dce38450 Add an application icon. 2011-01-16 18:33:31 +01:00
Přemysl Eric Janouch 81f116ed12 Handle Edit menu actions (Delete, Select All). 2011-01-16 18:33:31 +01:00
Přemysl Eric Janouch 1201caf8a4 Use JsonObject for LdDiagramObject parameters.
Make LdDiagramObject a regular class.
2011-01-15 17:59:07 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 01d771403e Write a signature to diagram files. 2011-01-10 06:56:07 +01:00
Přemysl Eric Janouch d7c22f10d5 Fix drawing of symbol menus. 2011-01-10 05:19:32 +01:00
Přemysl Eric Janouch d785feeb82 Show names of symbols in the statusbar. 2011-01-10 04:58:32 +01:00
Přemysl Eric Janouch 09a6e91f96 Remove a FIXME.
We don't really need to set the GError to anything.
2011-01-10 04:34:24 +01:00
Přemysl Eric Janouch bd4ca0dd29 Simulate motion events when needed. 2011-01-10 04:24:16 +01:00
Přemysl Eric Janouch a3eaab63ff Draw category icons with style colors.
Previously the icons have been black in all themes.
2011-01-10 03:45:38 +01:00
Přemysl Eric Janouch 73b611a844 Add a View menu to LdWindowMain, disabled so far. 2011-01-09 13:54:20 +01:00
Přemysl Eric Janouch 1677e320a3 Add a "zoom" property to LdCanvas. 2011-01-09 08:35:40 +01:00
Přemysl Eric Janouch 9db7e667ac Add hide_terminals() to LdCanvas. 2011-01-09 08:10:20 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 1cf5b9cd83 Make ld_lua_logdiag_register() a bit safer. 2011-01-09 07:09:18 +01:00
Přemysl Eric Janouch 54ef5ce450 Fix comments. 2011-01-09 07:08:39 +01:00
Přemysl Eric Janouch 8243114d09 Draw diagram objects in reversed order.
Previously older objects drew on top of newer ones.
2011-01-09 06:05:43 +01:00
Přemysl Eric Janouch 911fac4c2f Replace GSList with GList in LdDiagram.
This has been an unnecessary limitation.
2011-01-09 05:58:34 +01:00
Přemysl Eric Janouch 9de3a0976d Ensure that the canvas is focused. 2011-01-09 05:52:27 +01:00
Přemysl Eric Janouch 800a381129 Call bind_textdomain_codeset(). 2011-01-09 05:40:25 +01:00
Přemysl Eric Janouch 3aeedd37b6 When zooming, focus on the cursor. 2011-01-09 05:32:08 +01:00
Přemysl Eric Janouch 61ae34236a Highlight symbol terminals on mouse hover. 2011-01-09 04:50:58 +01:00
Přemysl Eric Janouch f12df021f7 Refactor queue_object_redraw(). 2011-01-09 04:41:41 +01:00
Přemysl Eric Janouch 2328058b46 Add ld_point_distance(). 2011-01-09 04:35:10 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 7ce03bac9d Make LdCanvas zoom on mouse wheel. 2011-01-08 12:05:59 +01:00
Přemysl Eric Janouch 96f7710c25 Introduce LdRectangle, LdPoint and LdPointArray.
Remove LdCanvasRect and LdSymbolArea.
2011-01-08 09:01:33 +01:00
Přemysl Eric Janouch fda123249a Export more cairo methods to Lua. 2011-01-07 16:15:58 +01:00
Přemysl Eric Janouch 6b5bae881c Update copyright years. 2011-01-07 05:13:00 +01:00
Přemysl Eric Janouch c815d0c16a Allow object selection in LdCanvas.
Refactor a part of LdCanvas in the process.
2011-01-07 04:52:44 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 8eba321abe Redraw LdCanvas on LdDiagram changes. 2011-01-05 11:03:38 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch b08217f999 Add a "selection-changed" signal to LdDiagram.
Make existing code emit this signal.
2011-01-05 04:37:42 +01:00
Přemysl Eric Janouch e92bebfa57 Add ld_diagram_{select,unselect}_all(). 2011-01-05 04:35:25 +01:00
Přemysl Eric Janouch c4b8f092b7 Export cairo_{get,set}_line_width to Lua symbols. 2011-01-05 03:56:59 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch fdf1ddbbb1 Move lines around. No functional change. 2011-01-04 23:05:38 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 25a0ea7ce5 Fix the "library" property in LdCanvas. 2011-01-04 04:08:05 +01:00
Přemysl Eric Janouch 820239597e Partial refactoring of LdCanvas.
draw_symbol() had been doing too much.
2011-01-04 00:45:44 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 86e73f86c2 Rename LdDocument* to LdDiagram*.
My bad; this name is much more appropriate.
2010-12-16 11:34:02 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 45aeda982b Remove redundant flags from signals. 2010-12-12 18:17:13 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch fdab244e2e Rename local LdCanvas methods.
Use a "real" prefix, as GTK+ does.
2010-12-12 17:30:28 +01:00
Přemysl Eric Janouch f9dbe12971 Stubplement LdDocument file operations.
Prototypes for these functions were wrong; fixed.
2010-12-11 20:32:03 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch fe7c270bdd Check for name collisions in symbol categories. 2010-12-11 03:49:54 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch dea23f1204 Draw symbols from LdDocument in LdCanvas.
Just the minimal implementation so far.
2010-12-10 22:58:36 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 3d3a71d5d2 Prepare the project for json-glib.
This required writing a special CMake find module.
2010-12-05 15:30:21 +01:00
Přemysl Eric Janouch 1d956964e2 Random fixes.
Mostly found by -Wextra.
2010-12-05 15:21:00 +01:00
Přemysl Eric Janouch 147cf2977a Initial LdDocument implementation.
The document maintains a list of LdDocumentObject objects.
2010-12-05 15:15:52 +01:00
Přemysl Eric Janouch 7a0b280854 Add a "library" property to LdCanvas.
Also make the code reference properties properly.
2010-11-19 07:05:44 +01:00
Přemysl Eric Janouch d31d420f59 Symbols are required to save cairo state. 2010-11-16 10:30:10 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 263aa9062e Formatting and naming changes in LdWindowMain. 2010-10-28 14:11:59 +02:00
Přemysl Eric Janouch 5a24eaabb2 Made Lua symbol registration more robust. 2010-10-28 09:07:47 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 8b5fa9a49a Implement parts of Lua symbol registration.
The human name and area now gets resolved.
2010-10-27 20:05:52 +02:00
Přemysl Eric Janouch 1c5127068e Fix gtk-doc comments. 2010-10-27 18:18:37 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 2b9b543402 Implement the LdSymbol "name" property. 2010-10-26 16:40:21 +02:00