6. "Продвинутый уровень" работы в Dia
6.1. Layers (Слои)
6.1.1. Simple case (Простой случай)
Предположим, у нас есть четыре UML "класса" объектов, и требуется нарисовать прямоугольник вокруг двух из них. Однако размещенный в последствии прямоугольник перекрывает вид двух «классов».
Перекладывание прямоугольника назад решает эту проблему.
Перемещение объекта на задний план выполняется за счет его выделения и затем:
- (длинный путь) выбрать команду Объекты ? Переместить на задний план (или Переместить дальше).
- (быстро) Ctrl + Shift + B

6.1.2. Full layering (Полное расслоение)
Теперь предположим, что у нас есть общий фон (например, логотип проекта) и требуется создать графику над ним. Мы хотим создать слои заранее и использовать их по мере необходимости.
Если вы знакомы со слоями Gimp'а, то вы в деле – здесь такой же механизм. В противном случае, будьте внимательны.
Когда вы начинаете создавать новую диаграмму, после установки свойств страницы, следует отобразить окно работы со слоями (Вид ? Показать слои). В окне Dia справа появится такая панель:

Нажмите на кнопку создания нового слоя (голубой плюс), и у вас будет "Новый слой". По умолчанию он разместится выше фонового слоя и будет выделен. Выделенный слой можно переместить относительно других слоев с помощью зеленых стрелок вверх и вниз. Конечно, вым следует оставить фоновый слой в нижней части стека.
Щелчки на глазе рядом со слоем включают-отключают его видимость на диаграмме. Как правило, вы создаете каждый слой по отдельности, включив только его видимость, затем включаете видимость на всех слоях время от времени, чтобы проверить выравнивание.
В нашем примере, мы помещаем текстовый объект со словом "DRAFT" на фоновый слой. Мы делаем этот текстовый объект серым с помощью селектора цвета. Затем переходим на новый слой и создаем диаграмму. Если оба слоя будут видимы, то получится примерно следующее:

6.2. Alignment (Выравнивание)
Предположим, что у нас есть несколько небрежно выровненных объектов:

Мы могли бы очень осторожно перемещать их и сделать выровненными. Но лучше обратиться к использованию функций выравнивания. Выберите два левых круга и выполните команду Объекты ? Выравнивать ? По левому краю (Shift + Alt + L). Тоже самое нужно сделать для правых кругов. Затем следует выделить пары верхних и нижних и выровнять их по верху или низу.

6.3. Selection (Выделение)
Очевидными способами выделения являются:
- Щелчок указателем на объекте.
- Щелчок указателем с зажатой кнопкой Shift на 1 или более объектов.
- Перемещение указателя с зажатой левой кнопкой мыши через объекты, которые требуется выделить. При перемещении видна штрих-линия.
Но возможно вам захочется чего-нибудь фантастического. В таком случае следует обратить внимание на пункт меню Выделение:

Например, применительно к этой схеме, после выделения объекта «А»:

- Всё. Все боксы и линии будут выделены.
- Нет. Ничего не будет выделено (выделение также снимается с А).
- Обратить. Выделится всё, за исключением А.
- Связанные. Выделятся А, L1 и L3, т.к. L1 и L3 непосредственно связаны с А.
- Вложенные. A, B, C, D, и L1, L2, L3 выделятся, потому что последовательно соединены, вы можете перетягивать каждый из них. E остается не выделенным, т. к. не связан с ними.
- Того же типа. A, B, C, D, E будут выделены, т.к. они одного и того же типа объектов Dia (т.е. все они классы объектов UML).
ПРИМЕЧАНИЕ: Если я когда-нибудь выясню, что делают радиокнопки, я дам вам знать.
6.4. Shape Libraries (Библиотеки элементов)
Dia поставляется с несколькими библиотеками уже готовых форм. Их также можно использовать для создания собственных.
Эти библиотеки, конечно, предметно-ориентированные, так что их использование должно быть описано в других контекстах (например, UML должен обсуждаться в руководстве по разработке программного обеспечения). Здесь мы сосредоточимся на механизме использования элементов библиотек.
Каждая библиотека сохранятся в отдельную директорию везде, где Dia может быть установлен. Например, если Dia расположен в /usr/bin/dia, то нам бы хотелось посмотреть /usr/share/dia.
/usr/share/dia/ dia_logo.png Dia's logo shapes/ Flowchart/ objects, in paired files (icon and shape) magdisk.xpm icon magdisk.shape shape description ... sheets/ object descriptions in various languages (XML) ER.sheet Flowchart.sheet UML.sheet ...
Например, если нас интересует библиотека Flowchart (Блок-схема), в частности объект magnetic disk, мы находим файл magdisk.shape:
<?xml version="1.0"?> <shape xmlns="http://www.daa.com.au/~james/dia-shape-ns" xmlns:svg="http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd"> <name>Flowchart - Magnetic Disk</name> <description>Magnetic Disk</description> <icon>magdisk.xpm</icon> <connections> <point x="0" y="2"/> <point x="2.5" y="0.4375"/> <point x="5" y="0"/> <point x="7.5" y="0.4375"/> <point x="10" y="0"/> <point x="0" y="2.5"/> <point x="0" y="7.5"/> <point x="0" y="5"/> <point x="0" y="10"/> <point x="10" y="2.5"/> <point x="10" y="5"/> <point x="10" y="7.5"/> <point x="10" y="10"/> <point x="2.5" y="11.5625"/> <point x="5" y="12"/> <point x="7.5" y="11.5625"/> </connections> <textbox x1="0" y1="4" x2="10" y2="10"/> <svg:svg width="10" height="12"> <svg:path d="M 0,2 c 2,-1.5 3,-2 5,-2 s 3,0.5 5,2 v 8 c -2,1.5 -3,2 -5,2 s -3,-0.5 -5,-2 v -8 z M 0,2 c 2,1.5 3,2 5,2 s 3,-0.5 5,-2" style="fill: default"/> </svg:svg> </shape>
Примечание:
- Название значений элементов описано в строках файла Flowchart.sheet
<object name="Flowchart - Magnetic Disk"> <description xml:lang="no">Magnetdisk</description> <description xml:lang="fr">Disque Magnйtique</description> <description xml:lang="de">Magnetdisk</description> <description>Magnetic Disk</description> </object>
Таким образом, мы получаем подсказки для каждого конкретного языка.
- Значение icon есть имя файла значка, отображаемого в главном окне программы.
- Форма описана на Scalable Vector Graphics (SVG): ширина/высота и путь.
- Местонахождение точек соединения дается в контексте ширины и высоты. Вы можете добавить другие точки соединения, если хотите.
- Связанное текстовое поле также определяется в контексте ширины и высоты. В оригинале оно находится под объектом magdisk. При желании вы можете ее передвинуть к центру объекта magdisk.
Вы можете делать ваши собственные библиотеки и формы, следуя за приведенными выше шаблонами.
Некоторые формы библиотек (например, UML) имеют связанную обработку и поэтому имеют не просто .shape-файл. Создание собственной библиотеки-с-обработкой требует разборки кода на языке C, что выходит за рамки этого руководства. (Возможно, встроенный Python будет поддерживаться в будущем, что упростит и это приключение.) ПП: кажется это уже свершилось.
в общем
ну очень малосодержательная статья
в общем
Хотя это перевод официального учебника. И в целом - полезно, особенно по началу! Спасибо!