• R/O
  • HTTP
  • SSH
  • HTTPS

Repository summary

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作図ソフト dia の改良版


Recent Commits RSS

Rev. Time Author Message
3cfcb99 2017-09-11 20:24:06 Sebastian Rasmussen master Update Swedish translation
b86085d 2017-06-23 04:50:13 Piotr Drąg Adjust translations for the Postscript > PostScript chang...
79f241e 2017-06-23 04:18:04 Piotr Drąg Correct PostScript capitalization https://bugzilla.gnome...
5071577 2017-06-11 03:41:22 Kristjan SCHMIDT Updated Esperanto translation
cdfa0df 2017-03-05 19:37:00 Inaki Larranaga Murgoitio dia-0-97 Update Basque language
761c2a7 2017-03-05 19:35:43 Inaki Larranaga Murgoitio Update Basque language
5ddb1ac 2017-03-05 19:34:41 Inaki Larranaga Murgoitio Update Basque language
3326bf1 2016-11-25 01:41:15 Ask Hjorth Larsen Updated Danish translation
ef46a11 2016-10-22 07:42:05 Piotr Drąg Update Polish translation
e454097 2016-10-22 07:16:31 Piotr Drąg Update Polish translation

Recently edited Tags

Name Rev. Time Author
DIA_0_97_2 7025cf0 2011-12-19 03:19:13 Hans Breuer
DIA_0_97_0 c0bd006 2009-05-04 04:40:26 Hans Breuer
DIA_0_97 c0bd006 2009-05-04 03:52:59 Hans Breuer
DIA_0_97_PRE3 b50784f 2009-04-14 04:17:50 Hans Breuer
DIA_0_97_PRE2_svn4290 22697fa 2009-02-16 07:38:00 Hans Breuer
DIA_0_97_PRE2 2978f7e 2009-02-16 06:55:54 Luca Ferretti
DIA_0_96_1 d28d644 2007-06-21 01:58:42 Lars Clausen
Dia_0_96_0 b00d07f 2007-03-28 04:04:29 Lars Clausen
DIA_0_96 414c14e 2007-03-27 05:18:26 Hans Breuer
DIA_0_96_PRE1 286828e 2006-12-14 07:19:52 Lars Clausen
DIA_0_95_1 fb84797 2006-05-27 05:54:32 Lars Clausen
DIA_0_95 cf8bb92 2006-04-20 07:04:07 Lars Clausen
DIA_0_95_PRE9 3ff22bc 2006-04-13 04:06:52 Lars Clausen
DIA_0_95_PRE7 bd3ff09 2006-03-29 04:25:55 Lars Clausen
DIA_0_95_PRE6 50552bc 2006-03-23 03:43:01 Lars Clausen
DIA_0_95_PRE5 c50dd86 2006-03-13 05:02:18 Lars Clausen
DIA_0_95_PRE4 33de8e1 2006-03-09 02:26:00 Lars Clausen
DIA_0_95_PRE3 7dcd4d6 2006-02-26 18:47:30 Lars Clausen
DIA_0_95_PRE2 d70b274 2006-02-23 02:31:45 Lars Clausen
DIA_0_95_PRE1 87378ca 2006-02-12 18:08:54 Hans Breuer
DIA_0_94 6749933 2004-08-20 01:03:30 Lars Clausen
DIA_0_94_PRE6 80c646f 2004-08-10 03:39:38 Lars Clausen
DIA_0_94_PRE5 21edf0d 2004-08-04 07:22:19 Lars Clausen
DIA_0_94_PRE4 abd2ecc 2004-08-02 03:14:52 Lars Clausen
DIA_0_94_PRE3 3215e58 2004-07-26 14:00:18 Lars Clausen
DIA_0_94_PRE1 823677d 2004-07-05 00:21:40 Lars Clausen
DIA_0_93_PRE3 aec96af 2004-04-14 03:57:53 Lars Clausen
DIA_0_93_PRE1 428fc8b 2004-03-20 19:25:07 Lars Clausen
DIA_0_92_2 6738899 2003-11-02 19:58:35 Lars Clausen
DIA_0_92_1 2301e60 2003-10-26 21:39:09 Lars Clausen
DIA_0_92 5792111 2003-10-20 19:45:09 Lars Clausen
DIA_0_92_PRE7 eeaf2dd 2003-10-15 06:51:12 Lars Clausen
DIA_0_92_PRE4 5999a09 2003-09-29 01:19:32 Lars Clausen
DIA_0_92_PRE3 58260db 2003-09-24 04:28:54 Lars Clausen
DIA_0_92_PRE2 f044094 2003-09-12 01:25:32 Danilo Šegan
DIA_0_92_PRE1 437fe17 2003-09-02 14:19:10 Lars Clausen
DIA_0_91 7353f57 2003-03-15 08:17:40 Lars Clausen
DIA_0_91_PRE6 53af4fe 2003-03-05 11:57:54 Lars Clausen
DIA_0_91_PRE3 09e159f 2003-02-18 06:15:58 Lars Clausen
DIA_0_91_PRE1 aea3c04 2003-02-01 00:29:40 Lars Clausen
dia_0_90 51e3519 2002-06-02 04:45:46 Cyrille Chepelov
dia_0_90_RC3 9824598 2002-05-30 14:44:27 Cyrille Chepelov
DIA_0_90_RC1 b9181a2 2002-05-14 07:16:26 Cyrille Chepelov
before_TARGET_GTK2_0 b037fb1 2002-01-17 02:25:50 Keld Jørn Simonsen
DIA_0_89 c843559 2001-09-07 11:22:52 James Henstridge
DIA_0_88 dfecad5 2001-05-11 20:08:56 James Henstridge
DIA_0_87 daea0b3 2001-05-09 16:18:22 James Henstridge
GNOME_MEDIA_1_2_2 ce30cb7 2001-05-04 07:00:23 Andraz Tori
GNOME_PRINT_0_24 b272917 2000-09-25 23:41:21 Christophe Merlet
DIA_0_86 12004a6 2000-08-06 15:28:53 James Henstridge
DIA_0_85 1b64754 2000-05-18 14:46:01 James Henstridge
DIA_0_84 42ef363 2000-02-29 11:30:31 James Henstridge
DIA_0_83 4090f6e 1999-12-25 00:01:00 James Henstridge
DIA_0_82 8822f1f 1999-12-14 22:57:21 James Henstridge
DIA_0_80 d03abc1 1999-10-17 21:33:53 Alexander Larsson
DIA_0_41 87ef69d 1999-04-09 01:46:26 Alexander Larsson
FOR_PANEL a3cb83c 1999-04-06 06:17:57 Szabolcs Ban
DIA_0_40 ca4f1f3 1999-03-30 03:32:21 Alexander Larsson
DIA_0_30 fdef94a 1999-01-24 21:12:49 Alexander Larsson
first ef3b05b 1998-09-01 03:33:59 Alexander Larsson

Branches

Name Rev. Time Author Message
master 3cfcb99 2017-09-11 20:24:06 Sebastian Rasmussen Update Swedish translation
dia-0-97 cdfa0df 2017-03-05 19:37:00 Inaki Larranaga Murgoitio Update Basque language
alpha 15f1da3 2009-10-06 05:08:30 Hans Breuer Bug #591525 - better patter...
dia-0-96 349519e 2008-03-16 22:02:48 Hans Breuer added missing exports 2008...
dia-0-95 c874238 2007-10-08 06:42:40 Hans Breuer [merged from trunk] wrap Pa...
dia_0_96 3a03fdd 2007-03-29 19:23:40 Lars Clausen Version 0.96.1 svn path=/b...
DIA_0_94_PRE2 b8a358e 2004-07-23 06:56:10 Lars Clausen 0.94-pre2 fixes taken from ...
DIA_0_94_DEVEL db3512d 2004-07-22 04:57:07 Estêvão Samuel Procópio Updating Brazilian Portugue...
DIA_0_94_RELEASE e040ef1 2004-07-18 05:46:47 Lars Clausen Transferred from main branch.
DIA_0_93_RELEASE d91dbf3 2004-05-26 16:09:34 Lars Clausen Fix shape bug, help bug, an...
DIA_0_94_DEV f225364 2004-05-21 22:58:46 Lars Clausen Fixes from Hans, random bug...
TARGET_GTK2_0 90197c8 2003-01-22 05:04:27 Andraz Tori Updated Slovenian translation
dia-0-90 51e3519 2002-06-02 04:45:46 Cyrille Chepelov Whooops, forgot to commit !
GCONF_BRANCH2 e0fc955 2001-06-15 14:22:47 Cyrille Chepelov UTF8 compliance. * object...
gtkmm_namespace e70889f 1999-12-22 01:05:40 James Henstridge recurse into plug-ins. 199...

README

Dia is a program for drawing structured diagrams.

Dia is a GNU program, and is Free Software.  See the COPYING file for
the licence.

Documentation is a bit sparse at the moment.  Some info can be
found in the doc/ directory.

--

I haven't had time to write anything here yet.
Read INSTALL for some brief installation instructions.

Homepage for Dia is at:
 https://wiki.gnome.org/Apps/Dia

Some comments about the source:
-------------------------------

 Everything on the screen 'inherits' from the structure Object 
in lib/object.h. (ps. this is a nice place to start reading the code.).
Inherits in C means (as in gtk) that it begins with a copy of that structure. 
Some base classes exists in lib/, like element.h (for doing 'box-like' 
objects), connection.h (for doing 'line-like' objects), orth_conn.h (for doing 
connections with orthogonal lines, like the uml-stuff) and render_object.h 
(for doing picture-like objects). These base classes are then subclassed in 
the different object in the object-libraries like objects/standard object/UML 
and object/network.

 The objects work by filling out two structures that the main program (app/*) 
uses to handle the objects. The ObjectType structure which consists of some 
info and a pointer to the type-operations (create+load+save). There's one 
ObjectType per object type currently loaded. Then the Object structure, there 
exists a copy of this for each object of the kind on screen (and in 
copy-buffers). This contains some info like: type, bounding_box, position, 
handles (the rectangles you move with the mouse) and connections. It also 
contains a pointer to the object-operations. These are called from the main 
program when if wants the object to do something. All ops take an Object as 
the first argument. This is usually casted to the subtype in the function 
headed (gives all those pita warnings) so that you directly can use the info 
stored in the subclasses. Most ops are quite self-describing, and the code can 
be copy-pasted from an object like the one you're doing. Rendering to 
screen/postscript is done through a 'Renderer' abstraction that can be found 
in lib/render.h.
 
XML based objects:
------------------
You can (from version 0.80) create new objects using a SVG like XML languange.
The file doc/custom-shapes has more information about this.
 
Note on handles and connection points:
--------------------------------------

An object has handles to resize it. A handle can be moved either because
the user dragged it with the mouse, or the handle is attached to another
object, which moved itself. The handles are diplayed as little squares
(red: normal, green: attached to an object, blue: can't be moved).

When the handle of an object is connected to another object, it's always
on special points called connection points, displayed as crosses.

Implementation:
- each object has an array of pointer to ConnectionPoint.
- each object has an array of pointer to Handle.
- each Handle has a pointer to 1 ConnectionPoint (NULL if the handle if
the Handle is not connected).
- each ConnectionPoint has a list of all objects connected to it.

The Object type does not manage the allocation/deallocation of handles and
connection points. When saving a diagram the pointer from the handle to
the connectionpoint is saved as the index of the connectionpoint. So make
sure the order of the connectionpoints is the same when loading the saved
object.

Notes on static analysis
------------------------
Some of the recent changes (log message starting with [scan-build] are suggested
by static source analysis, see http://clang-analyzer.llvm.org/scan-build
To use it just run ./configure and make through the scan-build script, like:

PATH=/mnt/Home/from-svn/llvm/Release/bin:$PATH /mnt/Home/from-svn/llvm/tools/clang/tools/scan-build/scan-build ./configure --prefix=/opt --enable-debug=yes
  and
PATH=/mnt/Home/from-svn/llvm/Release/bin:$PATH /mnt/Home/from-svn/llvm/tools/clang/tools/scan-build/scan-build -v -v make -j3
  view with
PATH=/mnt/Home/from-svn/llvm/Release/bin:$PATH /mnt/Home/from-svn/llvm/tools/clang/tools/scan-view/scan-view

(given an uninstalled checkout of llvm to /mnt/Home/from-svn/llvm)