Compare commits
2 Commits
5526e403a3
...
7c47d7207f
Author | SHA1 | Date | |
---|---|---|---|
7c47d7207f | |||
c502b65297 |
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file command-line.c
|
||||||
|
* @brief Function to render according to command line parameters
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "command-line.h"
|
#include "command-line.h"
|
||||||
#include "gds-parser/gds-parser.h"
|
#include "gds-parser/gds-parser.h"
|
||||||
@ -24,6 +35,12 @@
|
|||||||
#include "cairo-output/cairo-output.h"
|
#include "cairo-output/cairo-output.h"
|
||||||
#include "latex-output/latex-output.h"
|
#include "latex-output/latex-output.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Delete layer_info and free nem element.
|
||||||
|
*
|
||||||
|
* Like delete_layer_info_struct() but also frees layer_info::name
|
||||||
|
* @param info
|
||||||
|
*/
|
||||||
static void delete_layer_info_with_name(struct layer_info *info)
|
static void delete_layer_info_with_name(struct layer_info *info)
|
||||||
{
|
{
|
||||||
if (info) {
|
if (info) {
|
||||||
@ -33,6 +50,19 @@ static void delete_layer_info_with_name(struct layer_info *info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Convert GDS according to supplied parameters
|
||||||
|
* @param gds_name GDS File path
|
||||||
|
* @param pdf_name Cairo-PDF path
|
||||||
|
* @param tex_name TeX/TikZ path
|
||||||
|
* @param pdf Render Cairo
|
||||||
|
* @param tex Render LaTeX
|
||||||
|
* @param layer_file Layer mapping file
|
||||||
|
* @param cell_name Cell name to render
|
||||||
|
* @param scale Scale image down by this value
|
||||||
|
* @param pdf_layers TikZ creates OCG layers
|
||||||
|
* @param pdf_standalone LaTeX document is standalone
|
||||||
|
*/
|
||||||
void command_line_convert_gds(char *gds_name, char *pdf_name, char *tex_name, gboolean pdf, gboolean tex,
|
void command_line_convert_gds(char *gds_name, char *pdf_name, char *tex_name, gboolean pdf, gboolean tex,
|
||||||
char *layer_file, char *cell_name, double scale, gboolean pdf_layers, gboolean pdf_standalone)
|
char *layer_file, char *cell_name, double scale, gboolean pdf_layers, gboolean pdf_standalone)
|
||||||
{
|
{
|
||||||
@ -135,3 +165,5 @@ destroy_file:
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file command-line.c
|
||||||
|
* @brief Render according to command line parameters
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _COMMAND_LINE_H_
|
#ifndef _COMMAND_LINE_H_
|
||||||
#define _COMMAND_LINE_H_
|
#define _COMMAND_LINE_H_
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
@ -25,3 +36,5 @@ void command_line_convert_gds(char *gds_name, char *pdf_name, char *tex_name, gb
|
|||||||
char *layer_file, char *cell_name, double scale, gboolean pdf_layers, gboolean pdf_standalone);
|
char *layer_file, char *cell_name, double scale, gboolean pdf_layers, gboolean pdf_standalone);
|
||||||
|
|
||||||
#endif /* _COMMAND_LINE_H_ */
|
#endif /* _COMMAND_LINE_H_ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<property name="website">https://git.shimatta.de/mhu/gds-render</property>
|
<property name="website">https://git.shimatta.de/mhu/gds-render</property>
|
||||||
<property name="website_label" translatable="yes">Git Repository</property>
|
<property name="website_label" translatable="yes">Git Repository</property>
|
||||||
<property name="authors">Mario Hüttel <mario.huettel@gmx.net></property>
|
<property name="authors">Mario Hüttel <mario.huettel@gmx.net></property>
|
||||||
<property name="logo_icon_name">applications-graphics</property>
|
<property name="logo_icon_name">gds-render</property>
|
||||||
<property name="license_type">gpl-2-0-only</property>
|
<property name="license_type">gpl-2-0-only</property>
|
||||||
<child>
|
<child>
|
||||||
<placeholder/>
|
<placeholder/>
|
||||||
|
@ -5,13 +5,14 @@
|
|||||||
<object class="GtkWindow" id="main-window">
|
<object class="GtkWindow" id="main-window">
|
||||||
<property name="height_request">250</property>
|
<property name="height_request">250</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
|
<property name="icon_name">gds-render</property>
|
||||||
<child type="titlebar">
|
<child type="titlebar">
|
||||||
<object class="GtkHeaderBar">
|
<object class="GtkHeaderBar">
|
||||||
<property name="name">header</property>
|
<property name="name">header</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="title" translatable="yes">GDS Renderer</property>
|
<property name="title" translatable="yes">GDS Renderer</property>
|
||||||
<property name="subtitle" translatable="yes">GDSII to PDF Converter</property>
|
<property name="subtitle" translatable="yes">GDSII to PDF/TikZ Converter</property>
|
||||||
<property name="show_close_button">True</property>
|
<property name="show_close_button">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="button-load-gds">
|
<object class="GtkButton" id="button-load-gds">
|
||||||
|
BIN
icon/128x128/gds-render.png
Normal file
BIN
icon/128x128/gds-render.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
479
icon/gds-render.svg
Normal file
479
icon/gds-render.svg
Normal file
@ -0,0 +1,479 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="30mm"
|
||||||
|
height="30mm"
|
||||||
|
viewBox="0 0 30.000001 29.999999"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||||
|
sodipodi:docname="gds-render.svg"
|
||||||
|
inkscape:export-filename="/home/mari/projects/cpp/gds-render/icon/22x22/gds-render.png"
|
||||||
|
inkscape:export-xdpi="18.62639"
|
||||||
|
inkscape:export-ydpi="18.62639">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="8"
|
||||||
|
inkscape:cx="123.37499"
|
||||||
|
inkscape:cy="62.837322"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer2"
|
||||||
|
showgrid="false"
|
||||||
|
units="mm"
|
||||||
|
inkscape:window-width="2880"
|
||||||
|
inkscape:window-height="1508"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="38"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4825-0">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c4a000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop4821" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c4a000;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop4823" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
osb:paint="solid"
|
||||||
|
id="linearGradient4788">
|
||||||
|
<stop
|
||||||
|
id="stop4786"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#c4a000;stop-opacity:1;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="298.01938"
|
||||||
|
x2="29.850964"
|
||||||
|
y1="268.53937"
|
||||||
|
x1="1.6864967"
|
||||||
|
id="linearGradient4806"
|
||||||
|
xlink:href="#linearGradient4825-0"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="261.9151"
|
||||||
|
x2="7.7163501"
|
||||||
|
y1="298.01938"
|
||||||
|
x1="29.850964"
|
||||||
|
id="linearGradient4833"
|
||||||
|
xlink:href="#linearGradient4825-0"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<g
|
||||||
|
id="g4922">
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-0"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4892"
|
||||||
|
d=""
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-1"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4895"
|
||||||
|
d="m 7.78125,-2.359375 c 0,-0.46875 0.046875,-0.53125 0.8125,-0.53125 v -0.34375 c -0.3125,0.015625 -1.140625,0.015625 -1.5,0.015625 -0.375,0 -1.421875,0 -1.734375,-0.015625 v 0.34375 H 5.71875 c 1.0625,0 1.09375,0.140625 1.09375,0.578125 v 0.765625 c 0,1.359375 -1.5625,1.453125 -1.875,1.453125 -0.9375,0 -3.1875,-0.578125 -3.1875,-4 0,-3.453125 2.265625,-3.96875 3.109375,-3.96875 1.03125,0 2.28125,0.75 2.59375,2.859375 0.015625,0.140625 0.015625,0.171875 0.15625,0.171875 0.171875,0 0.171875,-0.03125 0.171875,-0.28125 v -2.828125 c 0,-0.21875 0,-0.28125 -0.125,-0.28125 -0.0625,0 -0.078125,0.03125 -0.15625,0.15625 l -0.578125,0.9375 C 6.578125,-7.75 5.84375,-8.421875 4.703125,-8.421875 c -2.15625,0 -4.0625,1.890625 -4.0625,4.328125 0,2.484375 1.90625,4.34375 4.078125,4.34375 0.84375,0 1.8125,-0.28125 2.265625,-1.03125 0.21875,0.375 0.609375,0.765625 0.703125,0.765625 0.09375,0 0.09375,-0.0625 0.09375,-0.265625 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-2"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4898"
|
||||||
|
d="m 0.5,-8.15625 v 0.34375 h 0.234375 c 0.875,0 0.90625,0.109375 0.90625,0.5625 v 6.34375 c 0,0.4375 -0.03125,0.5625 -0.90625,0.5625 H 0.5 V 0 h 4.1875 c 2,0 3.59375,-1.796875 3.59375,-4 0,-2.3125 -1.609375,-4.15625 -3.59375,-4.15625 z m 2.625,7.8125 c -0.515625,0 -0.546875,-0.09375 -0.546875,-0.484375 V -7.34375 c 0,-0.390625 0.03125,-0.46875 0.546875,-0.46875 h 1.265625 c 0.984375,0 1.78125,0.46875 2.265625,1.265625 0.546875,0.84375 0.546875,2.046875 0.546875,2.53125 0,0.671875 -0.015625,1.796875 -0.703125,2.671875 -0.390625,0.5 -1.109375,1 -2.109375,1 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-3"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4901"
|
||||||
|
d="M 2.484375,-4.984375 C 1.875,-5.140625 1.34375,-5.734375 1.34375,-6.5 c 0,-0.84375 0.671875,-1.59375 1.59375,-1.59375 1.96875,0 2.21875,1.9375 2.296875,2.453125 0.03125,0.140625 0.03125,0.1875 0.140625,0.1875 0.140625,0 0.140625,-0.0625 0.140625,-0.265625 v -2.421875 c 0,-0.21875 0,-0.28125 -0.125,-0.28125 -0.03125,0 -0.078125,0 -0.171875,0.15625 L 4.828125,-7.53125 C 4.25,-8.265625 3.46875,-8.421875 2.9375,-8.421875 c -1.328125,0 -2.296875,1.078125 -2.296875,2.296875 0,0.5625 0.203125,1.09375 0.65625,1.578125 0.40625,0.453125 0.828125,0.5625 1.671875,0.78125 0.421875,0.09375 1.078125,0.265625 1.25,0.328125 0.5625,0.28125 0.9375,0.921875 0.9375,1.59375 0,0.90625 -0.640625,1.75 -1.625,1.75 -0.546875,0 -1.28125,-0.140625 -1.875,-0.640625 -0.6875,-0.625 -0.734375,-1.484375 -0.75,-1.890625 -0.015625,-0.09375 -0.109375,-0.09375 -0.125,-0.09375 -0.140625,0 -0.140625,0.0625 -0.140625,0.28125 v 2.40625 c 0,0.21875 0,0.28125 0.125,0.28125 C 0.84375,0.25 0.84375,0.234375 0.9375,0.078125 0.984375,-0.015625 1.234375,-0.453125 1.328125,-0.640625 1.75,-0.15625 2.515625,0.25 3.53125,0.25 4.875,0.25 5.84375,-0.890625 5.84375,-2.203125 5.84375,-2.921875 5.5625,-3.46875 5.25,-3.859375 4.8125,-4.40625 4.265625,-4.53125 3.796875,-4.65625 Z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-4"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4904"
|
||||||
|
d="M 3.234375,-2.265625 V -2.90625 H 0.125 v 0.640625 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-5"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4907"
|
||||||
|
d="m 5.046875,-4.0625 c 1.1875,-0.28125 2.09375,-1.03125 2.09375,-1.953125 0,-1.15625 -1.34375,-2.140625 -3.0625,-2.140625 H 0.5 v 0.34375 h 0.234375 c 0.875,0 0.90625,0.109375 0.90625,0.5625 v 6.34375 c 0,0.4375 -0.03125,0.5625 -0.90625,0.5625 H 0.5 V 0 c 0.28125,-0.03125 1.25,-0.03125 1.609375,-0.03125 0.34375,0 1.328125,0 1.609375,0.03125 V -0.34375 H 3.484375 c -0.859375,0 -0.90625,-0.125 -0.90625,-0.5625 v -3.0625 H 3.96875 c 0.46875,0 0.90625,0.125 1.234375,0.46875 0.40625,0.453125 0.40625,0.703125 0.40625,1.53125 0,0.9375 0,1.25 0.515625,1.765625 C 6.3125,-0.03125 6.8125,0.25 7.484375,0.25 c 0.9375,0 1.09375,-1.03125 1.09375,-1.296875 0,-0.0625 0,-0.171875 -0.140625,-0.171875 -0.125,0 -0.125,0.078125 -0.125,0.1875 C 8.25,-0.3125 7.90625,0.015625 7.515625,0.015625 6.96875,0.015625 6.84375,-0.546875 6.75,-1.1875 6.734375,-1.265625 6.671875,-1.78125 6.640625,-2.078125 6.546875,-2.671875 6.5,-3.0625 6.140625,-3.4375 c -0.125,-0.125 -0.4375,-0.453125 -1.09375,-0.625 z m -1.125,-0.140625 H 2.578125 V -7.34375 c 0,-0.265625 0,-0.40625 0.25,-0.46875 0.109375,0 0.46875,0 0.703125,0 0.96875,0 2.5,0 2.5,1.796875 0,1.046875 -0.5625,1.8125 -2.109375,1.8125 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-6"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4910"
|
||||||
|
d="m 4.578125,-2.765625 c 0.265625,0 0.28125,0 0.28125,-0.234375 0,-1.203125 -0.640625,-2.328125 -2.09375,-2.328125 -1.359375,0 -2.40625,1.234375 -2.40625,2.703125 0,1.578125 1.21875,2.75 2.546875,2.75 1.421875,0 1.953125,-1.296875 1.953125,-1.546875 0,-0.078125 -0.046875,-0.125 -0.125,-0.125 -0.09375,0 -0.125,0.0625 -0.140625,0.125 -0.3125,1 -1.109375,1.28125 -1.625,1.28125 -0.5,0 -1.703125,-0.34375 -1.703125,-2.40625 v -0.21875 z M 1.28125,-3 c 0.09375,-1.875 1.140625,-2.09375 1.484375,-2.09375 1.28125,0 1.34375,1.6875 1.359375,2.09375 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-7"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4913"
|
||||||
|
d="m 5.3125,-2.90625 c 0,-1.109375 0,-1.4375 -0.265625,-1.828125 -0.34375,-0.46875 -0.90625,-0.53125 -1.3125,-0.53125 -1.171875,0 -1.625,0.984375 -1.71875,1.21875 v -1.21875 l -1.640625,0.125 v 0.34375 c 0.8125,0 0.921875,0.09375 0.921875,0.671875 v 3.234375 c 0,0.546875 -0.140625,0.546875 -0.921875,0.546875 V 0 c 0.3125,-0.03125 0.96875,-0.03125 1.296875,-0.03125 0.34375,0 1,0 1.296875,0.03125 v -0.34375 c -0.75,0 -0.90625,0 -0.90625,-0.546875 v -2.21875 c 0,-1.25 0.828125,-1.921875 1.578125,-1.921875 0.734375,0 0.90625,0.609375 0.90625,1.34375 v 2.796875 c 0,0.546875 -0.140625,0.546875 -0.90625,0.546875 V 0 c 0.296875,-0.03125 0.953125,-0.03125 1.28125,-0.03125 0.34375,0 1,0 1.3125,0.03125 v -0.34375 c -0.609375,0 -0.90625,0 -0.921875,-0.359375 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-8"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4916"
|
||||||
|
d="M 3.578125,-8.15625 V -7.8125 C 4.40625,-7.8125 4.5,-7.734375 4.5,-7.140625 V -4.5 C 4.25,-4.859375 3.734375,-5.265625 3,-5.265625 c -1.390625,0 -2.578125,1.171875 -2.578125,2.703125 0,1.515625 1.125,2.6875 2.453125,2.6875 0.90625,0 1.421875,-0.609375 1.59375,-0.828125 V 0.125 L 6.15625,0 V -0.34375 C 5.34375,-0.34375 5.25,-0.4375 5.25,-1.015625 v -7.28125 z m 0.890625,6.75 c 0,0.21875 0,0.265625 -0.171875,0.515625 -0.28125,0.421875 -0.765625,0.765625 -1.375,0.765625 -0.296875,0 -1.59375,-0.109375 -1.59375,-2.4375 0,-0.859375 0.140625,-1.328125 0.40625,-1.734375 0.234375,-0.359375 0.71875,-0.734375 1.3125,-0.734375 0.75,0 1.15625,0.53125 1.28125,0.734375 0.140625,0.203125 0.140625,0.21875 0.140625,0.4375 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="lx-text4864-glyph0-9"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4919"
|
||||||
|
d="m 2,-2.78125 c 0,-1.15625 0.46875,-2.25 1.390625,-2.25 0.09375,0 0.125,0 0.171875,0.015625 -0.09375,0.046875 -0.28125,0.109375 -0.28125,0.4375 0,0.34375 0.265625,0.484375 0.453125,0.484375 0.25,0 0.484375,-0.15625 0.484375,-0.484375 0,-0.359375 -0.328125,-0.6875 -0.84375,-0.6875 -1.015625,0 -1.359375,1.09375 -1.421875,1.328125 H 1.9375 v -1.328125 l -1.609375,0.125 v 0.34375 c 0.8125,0 0.921875,0.09375 0.921875,0.671875 v 3.234375 c 0,0.546875 -0.140625,0.546875 -0.921875,0.546875 V 0 c 0.34375,-0.03125 1,-0.03125 1.359375,-0.03125 0.328125,0 1.171875,0 1.4375,0.03125 V -0.34375 H 2.890625 C 2.015625,-0.34375 2,-0.484375 2,-0.90625 Z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
</g>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata5">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
sodipodi:insensitive="true"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(0,-267.00004)"
|
||||||
|
id="layer1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="Layer 1">
|
||||||
|
<rect
|
||||||
|
ry="4.8109269"
|
||||||
|
y="267.27731"
|
||||||
|
x="0.27727795"
|
||||||
|
height="29.445444"
|
||||||
|
width="29.445444"
|
||||||
|
id="rect863"
|
||||||
|
style="fill:url(#linearGradient4833);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4806);stroke-width:0.55500001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="display:inline"
|
||||||
|
inkscape:label="GDS"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
sodipodi:insensitive="true">
|
||||||
|
<g
|
||||||
|
transform="matrix(1.1803494,0,0,1.1803494,-3.0934521,2.5343859)"
|
||||||
|
id="g4860">
|
||||||
|
<rect
|
||||||
|
style="fill:#5c3566;fill-opacity:1;fill-rule:nonzero;stroke:#5c3566;stroke-width:0.03089017;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4722-9"
|
||||||
|
width="7.315506"
|
||||||
|
height="2.6185424"
|
||||||
|
x="17.855755"
|
||||||
|
y="2.8206506" />
|
||||||
|
<rect
|
||||||
|
style="fill:#5c3566;fill-opacity:1;fill-rule:nonzero;stroke:#5c3566;stroke-width:0.03089017;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4722"
|
||||||
|
width="7.315506"
|
||||||
|
height="2.6185424"
|
||||||
|
x="5.0017018"
|
||||||
|
y="2.8206506" />
|
||||||
|
<rect
|
||||||
|
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:0.18781857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4647"
|
||||||
|
width="21.451309"
|
||||||
|
height="5.3823962"
|
||||||
|
x="4.4756289"
|
||||||
|
y="5.5161438"
|
||||||
|
ry="0.57490903" />
|
||||||
|
<path
|
||||||
|
style="fill:#5c3566;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.4249042;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 10.647111,2.1885173 c 1.371044,1.5346563 7.602828,2.1172607 8.900202,0 V 5.445367 h -8.900202 z"
|
||||||
|
id="rect4673"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:0.09766429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 10.743177,2.1889465 v 1.1220392 l 1.692999,1.126e-4 0.846062,1.2390311 h 1.693 2.051725 l 0.826813,-1.2343732 h 1.693537 V 2.1885173 H 17.515176 L 16.669114,3.4240551 H 14.975238 13.620839 L 12.7949,2.1885173 Z"
|
||||||
|
id="path4655"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:0.12909999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 10.444636,4.7267469 9.7322177,4.2143924 8.4348855,4.2137428 7.1896962,2.1729032 H 4.4609914 v 1.1220392 h 1.6548333 l 0.8269886,2.1548987 h 1.6548343 l 1.8914814,0.011475 z"
|
||||||
|
id="path4655-6"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccccc" />
|
||||||
|
<rect
|
||||||
|
style="fill:#cc0000;fill-opacity:1;fill-rule:nonzero;stroke:#cc0000;stroke-width:0.03570647;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4703"
|
||||||
|
width="2.6473525"
|
||||||
|
height="0.67746186"
|
||||||
|
x="13.879735"
|
||||||
|
y="4.5986104"
|
||||||
|
ry="0" />
|
||||||
|
<path
|
||||||
|
style="fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:0.13003762;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 19.828607,4.7038749 0.722805,-0.5123545 1.316244,-6.495e-4 1.263343,-2.0408398 h 2.768485 v 1.1220392 h -1.678958 l -0.839046,2.154899 h -1.678958 l -1.919057,0.011474 z"
|
||||||
|
id="path4655-6-2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#4e9a06;fill-opacity:1;fill-rule:nonzero;stroke:#73d216;stroke-width:0.06713366;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 6.5082658,5.4557442 v 1.4172746 1.225227 l 0.038859,0.1943268 v 0 c 0.128985,0.3512949 0.5947729,0.6114739 1.1565142,0.6114739 h 5.351728 c 0.561743,0 1.063373,-0.2021525 1.192356,-0.5534475 l 0.0031,-0.058026 V 8.0982458 6.8730188 5.4557442 Z"
|
||||||
|
id="rect4739"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccsscccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#4e9a06;fill-opacity:1;fill-rule:nonzero;stroke:#73d216;stroke-width:0.0674862;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 16.02714,5.4330487 v 1.4171297 1.2251018 l 0.03927,0.1943069 v 0 c 0.13036,0.3512589 0.601098,0.6114113 1.168812,0.6114113 h 5.408637 c 0.567714,0 1.074679,-0.2021319 1.205035,-0.5533908 l 0.0031,-0.05802 V 8.0752802 6.8501784 5.4330487 Z"
|
||||||
|
id="rect4739-2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccsscccccc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="lx-text4864"
|
||||||
|
transform="matrix(0.38106292,0,0,0.38106292,2.3851025,22.428875)">
|
||||||
|
<defs
|
||||||
|
id="defs4924">
|
||||||
|
<g
|
||||||
|
id="g5236">
|
||||||
|
<symbol
|
||||||
|
id="symbol5198"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5196"
|
||||||
|
d=""
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5202"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5200"
|
||||||
|
d="m 7.78125,-2.359375 c 0,-0.46875 0.046875,-0.53125 0.8125,-0.53125 v -0.34375 c -0.3125,0.015625 -1.140625,0.015625 -1.5,0.015625 -0.375,0 -1.421875,0 -1.734375,-0.015625 v 0.34375 H 5.71875 c 1.0625,0 1.09375,0.140625 1.09375,0.578125 v 0.765625 c 0,1.359375 -1.5625,1.453125 -1.875,1.453125 -0.9375,0 -3.1875,-0.578125 -3.1875,-4 0,-3.453125 2.265625,-3.96875 3.109375,-3.96875 1.03125,0 2.28125,0.75 2.59375,2.859375 0.015625,0.140625 0.015625,0.171875 0.15625,0.171875 0.171875,0 0.171875,-0.03125 0.171875,-0.28125 v -2.828125 c 0,-0.21875 0,-0.28125 -0.125,-0.28125 -0.0625,0 -0.078125,0.03125 -0.15625,0.15625 l -0.578125,0.9375 C 6.578125,-7.75 5.84375,-8.421875 4.703125,-8.421875 c -2.15625,0 -4.0625,1.890625 -4.0625,4.328125 0,2.484375 1.90625,4.34375 4.078125,4.34375 0.84375,0 1.8125,-0.28125 2.265625,-1.03125 0.21875,0.375 0.609375,0.765625 0.703125,0.765625 0.09375,0 0.09375,-0.0625 0.09375,-0.265625 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5206"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5204"
|
||||||
|
d="m 0.5,-8.15625 v 0.34375 h 0.234375 c 0.875,0 0.90625,0.109375 0.90625,0.5625 v 6.34375 c 0,0.4375 -0.03125,0.5625 -0.90625,0.5625 H 0.5 V 0 h 4.1875 c 2,0 3.59375,-1.796875 3.59375,-4 0,-2.3125 -1.609375,-4.15625 -3.59375,-4.15625 z m 2.625,7.8125 c -0.515625,0 -0.546875,-0.09375 -0.546875,-0.484375 V -7.34375 c 0,-0.390625 0.03125,-0.46875 0.546875,-0.46875 h 1.265625 c 0.984375,0 1.78125,0.46875 2.265625,1.265625 0.546875,0.84375 0.546875,2.046875 0.546875,2.53125 0,0.671875 -0.015625,1.796875 -0.703125,2.671875 -0.390625,0.5 -1.109375,1 -2.109375,1 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5210"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5208"
|
||||||
|
d="M 2.484375,-4.984375 C 1.875,-5.140625 1.34375,-5.734375 1.34375,-6.5 c 0,-0.84375 0.671875,-1.59375 1.59375,-1.59375 1.96875,0 2.21875,1.9375 2.296875,2.453125 0.03125,0.140625 0.03125,0.1875 0.140625,0.1875 0.140625,0 0.140625,-0.0625 0.140625,-0.265625 v -2.421875 c 0,-0.21875 0,-0.28125 -0.125,-0.28125 -0.03125,0 -0.078125,0 -0.171875,0.15625 L 4.828125,-7.53125 C 4.25,-8.265625 3.46875,-8.421875 2.9375,-8.421875 c -1.328125,0 -2.296875,1.078125 -2.296875,2.296875 0,0.5625 0.203125,1.09375 0.65625,1.578125 0.40625,0.453125 0.828125,0.5625 1.671875,0.78125 0.421875,0.09375 1.078125,0.265625 1.25,0.328125 0.5625,0.28125 0.9375,0.921875 0.9375,1.59375 0,0.90625 -0.640625,1.75 -1.625,1.75 -0.546875,0 -1.28125,-0.140625 -1.875,-0.640625 -0.6875,-0.625 -0.734375,-1.484375 -0.75,-1.890625 -0.015625,-0.09375 -0.109375,-0.09375 -0.125,-0.09375 -0.140625,0 -0.140625,0.0625 -0.140625,0.28125 v 2.40625 c 0,0.21875 0,0.28125 0.125,0.28125 C 0.84375,0.25 0.84375,0.234375 0.9375,0.078125 0.984375,-0.015625 1.234375,-0.453125 1.328125,-0.640625 1.75,-0.15625 2.515625,0.25 3.53125,0.25 4.875,0.25 5.84375,-0.890625 5.84375,-2.203125 5.84375,-2.921875 5.5625,-3.46875 5.25,-3.859375 4.8125,-4.40625 4.265625,-4.53125 3.796875,-4.65625 Z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5214"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5212"
|
||||||
|
d="M 3.234375,-2.265625 V -2.90625 H 0.125 v 0.640625 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5218"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5216"
|
||||||
|
d="m 5.046875,-4.0625 c 1.1875,-0.28125 2.09375,-1.03125 2.09375,-1.953125 0,-1.15625 -1.34375,-2.140625 -3.0625,-2.140625 H 0.5 v 0.34375 h 0.234375 c 0.875,0 0.90625,0.109375 0.90625,0.5625 v 6.34375 c 0,0.4375 -0.03125,0.5625 -0.90625,0.5625 H 0.5 V 0 c 0.28125,-0.03125 1.25,-0.03125 1.609375,-0.03125 0.34375,0 1.328125,0 1.609375,0.03125 V -0.34375 H 3.484375 c -0.859375,0 -0.90625,-0.125 -0.90625,-0.5625 v -3.0625 H 3.96875 c 0.46875,0 0.90625,0.125 1.234375,0.46875 0.40625,0.453125 0.40625,0.703125 0.40625,1.53125 0,0.9375 0,1.25 0.515625,1.765625 C 6.3125,-0.03125 6.8125,0.25 7.484375,0.25 c 0.9375,0 1.09375,-1.03125 1.09375,-1.296875 0,-0.0625 0,-0.171875 -0.140625,-0.171875 -0.125,0 -0.125,0.078125 -0.125,0.1875 C 8.25,-0.3125 7.90625,0.015625 7.515625,0.015625 6.96875,0.015625 6.84375,-0.546875 6.75,-1.1875 6.734375,-1.265625 6.671875,-1.78125 6.640625,-2.078125 6.546875,-2.671875 6.5,-3.0625 6.140625,-3.4375 c -0.125,-0.125 -0.4375,-0.453125 -1.09375,-0.625 z m -1.125,-0.140625 H 2.578125 V -7.34375 c 0,-0.265625 0,-0.40625 0.25,-0.46875 0.109375,0 0.46875,0 0.703125,0 0.96875,0 2.5,0 2.5,1.796875 0,1.046875 -0.5625,1.8125 -2.109375,1.8125 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5222"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5220"
|
||||||
|
d="m 4.578125,-2.765625 c 0.265625,0 0.28125,0 0.28125,-0.234375 0,-1.203125 -0.640625,-2.328125 -2.09375,-2.328125 -1.359375,0 -2.40625,1.234375 -2.40625,2.703125 0,1.578125 1.21875,2.75 2.546875,2.75 1.421875,0 1.953125,-1.296875 1.953125,-1.546875 0,-0.078125 -0.046875,-0.125 -0.125,-0.125 -0.09375,0 -0.125,0.0625 -0.140625,0.125 -0.3125,1 -1.109375,1.28125 -1.625,1.28125 -0.5,0 -1.703125,-0.34375 -1.703125,-2.40625 v -0.21875 z M 1.28125,-3 c 0.09375,-1.875 1.140625,-2.09375 1.484375,-2.09375 1.28125,0 1.34375,1.6875 1.359375,2.09375 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5226"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5224"
|
||||||
|
d="m 5.3125,-2.90625 c 0,-1.109375 0,-1.4375 -0.265625,-1.828125 -0.34375,-0.46875 -0.90625,-0.53125 -1.3125,-0.53125 -1.171875,0 -1.625,0.984375 -1.71875,1.21875 v -1.21875 l -1.640625,0.125 v 0.34375 c 0.8125,0 0.921875,0.09375 0.921875,0.671875 v 3.234375 c 0,0.546875 -0.140625,0.546875 -0.921875,0.546875 V 0 c 0.3125,-0.03125 0.96875,-0.03125 1.296875,-0.03125 0.34375,0 1,0 1.296875,0.03125 v -0.34375 c -0.75,0 -0.90625,0 -0.90625,-0.546875 v -2.21875 c 0,-1.25 0.828125,-1.921875 1.578125,-1.921875 0.734375,0 0.90625,0.609375 0.90625,1.34375 v 2.796875 c 0,0.546875 -0.140625,0.546875 -0.90625,0.546875 V 0 c 0.296875,-0.03125 0.953125,-0.03125 1.28125,-0.03125 0.34375,0 1,0 1.3125,0.03125 v -0.34375 c -0.609375,0 -0.90625,0 -0.921875,-0.359375 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5230"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5228"
|
||||||
|
d="M 3.578125,-8.15625 V -7.8125 C 4.40625,-7.8125 4.5,-7.734375 4.5,-7.140625 V -4.5 C 4.25,-4.859375 3.734375,-5.265625 3,-5.265625 c -1.390625,0 -2.578125,1.171875 -2.578125,2.703125 0,1.515625 1.125,2.6875 2.453125,2.6875 0.90625,0 1.421875,-0.609375 1.59375,-0.828125 V 0.125 L 6.15625,0 V -0.34375 C 5.34375,-0.34375 5.25,-0.4375 5.25,-1.015625 v -7.28125 z m 0.890625,6.75 c 0,0.21875 0,0.265625 -0.171875,0.515625 -0.28125,0.421875 -0.765625,0.765625 -1.375,0.765625 -0.296875,0 -1.59375,-0.109375 -1.59375,-2.4375 0,-0.859375 0.140625,-1.328125 0.40625,-1.734375 0.234375,-0.359375 0.71875,-0.734375 1.3125,-0.734375 0.75,0 1.15625,0.53125 1.28125,0.734375 0.140625,0.203125 0.140625,0.21875 0.140625,0.4375 z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="symbol5234"
|
||||||
|
overflow="visible"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path5232"
|
||||||
|
d="m 2,-2.78125 c 0,-1.15625 0.46875,-2.25 1.390625,-2.25 0.09375,0 0.125,0 0.171875,0.015625 -0.09375,0.046875 -0.28125,0.109375 -0.28125,0.4375 0,0.34375 0.265625,0.484375 0.453125,0.484375 0.25,0 0.484375,-0.15625 0.484375,-0.484375 0,-0.359375 -0.328125,-0.6875 -0.84375,-0.6875 -1.015625,0 -1.359375,1.09375 -1.421875,1.328125 H 1.9375 v -1.328125 l -1.609375,0.125 v 0.34375 c 0.8125,0 0.921875,0.09375 0.921875,0.671875 v 3.234375 c 0,0.546875 -0.140625,0.546875 -0.921875,0.546875 V 0 c 0.34375,-0.03125 1,-0.03125 1.359375,-0.03125 0.328125,0 1.171875,0 1.4375,0.03125 V -0.34375 H 2.890625 C 2.015625,-0.34375 2,-0.484375 2,-0.90625 Z m 0,0"
|
||||||
|
style="stroke:none"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</symbol>
|
||||||
|
</g>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="lx-text4864-surface1">
|
||||||
|
<g
|
||||||
|
id="g4946"
|
||||||
|
style="fill:#000000;fill-opacity:1">
|
||||||
|
<use
|
||||||
|
id="use4926"
|
||||||
|
y="0"
|
||||||
|
x="0"
|
||||||
|
xlink:href="#lx-text4864-glyph0-1"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4928"
|
||||||
|
y="0"
|
||||||
|
x="9.1851797"
|
||||||
|
xlink:href="#lx-text4864-glyph0-2"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4930"
|
||||||
|
y="0"
|
||||||
|
x="18.125278"
|
||||||
|
xlink:href="#lx-text4864-glyph0-3"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4932"
|
||||||
|
y="0"
|
||||||
|
x="24.628908"
|
||||||
|
xlink:href="#lx-text4864-glyph0-4"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4934"
|
||||||
|
y="0"
|
||||||
|
x="28.531084"
|
||||||
|
xlink:href="#lx-text4864-glyph0-5"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4936"
|
||||||
|
y="0"
|
||||||
|
x="37.146004"
|
||||||
|
xlink:href="#lx-text4864-glyph0-6"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4938"
|
||||||
|
y="0"
|
||||||
|
x="42.348904"
|
||||||
|
xlink:href="#lx-text4864-glyph0-7"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4940"
|
||||||
|
y="0"
|
||||||
|
x="48.852535"
|
||||||
|
xlink:href="#lx-text4864-glyph0-8"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4942"
|
||||||
|
y="0"
|
||||||
|
x="55.356163"
|
||||||
|
xlink:href="#lx-text4864-glyph0-6"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
<use
|
||||||
|
id="use4944"
|
||||||
|
y="0"
|
||||||
|
x="60.559067"
|
||||||
|
xlink:href="#lx-text4864-glyph0-9"
|
||||||
|
width="100%"
|
||||||
|
height="100%" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 29 KiB |
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file layer-selection.c
|
||||||
|
* @brief Implementation of the layer selector
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include "layer-selector.h"
|
#include "layer-selector.h"
|
||||||
#include "gds-parser/gds-parser.h"
|
#include "gds-parser/gds-parser.h"
|
||||||
#include "widgets/layer-element.h"
|
#include "widgets/layer-element.h"
|
||||||
@ -89,6 +100,11 @@ void clear_list_box_widgets(GtkListBox *box)
|
|||||||
gtk_widget_set_sensitive(global_save_button, FALSE);
|
gtk_widget_set_sensitive(global_save_button, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check if specific layer number is present in list box
|
||||||
|
* @param layer Layer nu,ber
|
||||||
|
* @return TRUE if present
|
||||||
|
*/
|
||||||
static gboolean check_if_layer_widget_exists(int layer) {
|
static gboolean check_if_layer_widget_exists(int layer) {
|
||||||
GList *list;
|
GList *list;
|
||||||
GList *temp;
|
GList *temp;
|
||||||
@ -110,6 +126,11 @@ static gboolean check_if_layer_widget_exists(int layer) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Analyze \p cell and append used layers to list box
|
||||||
|
* @param listbox listbox to add layer
|
||||||
|
* @param cell Cell to analyze
|
||||||
|
*/
|
||||||
static void analyze_cell_layers(GtkListBox *listbox, struct gds_cell *cell)
|
static void analyze_cell_layers(GtkListBox *listbox, struct gds_cell *cell)
|
||||||
{
|
{
|
||||||
GList *graphics;
|
GList *graphics;
|
||||||
@ -129,7 +150,15 @@ static void analyze_cell_layers(GtkListBox *listbox, struct gds_cell *cell)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gint sort_func(GtkListBoxRow *row1, GtkListBoxRow *row2, gpointer unused)
|
/**
|
||||||
|
* @brief sort_func Sort callback for list box
|
||||||
|
* @param row1
|
||||||
|
* @param row2
|
||||||
|
* @param unused
|
||||||
|
* @note Do not use this function
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
static gint sort_func(GtkListBoxRow *row1, GtkListBoxRow *row2, gpointer unused)
|
||||||
{
|
{
|
||||||
LayerElement *le1, *le2;
|
LayerElement *le1, *le2;
|
||||||
gint ret;
|
gint ret;
|
||||||
@ -170,6 +199,12 @@ void generate_layer_widgets(GtkListBox *listbox, GList *libs)
|
|||||||
gtk_widget_set_sensitive(global_save_button, TRUE);
|
gtk_widget_set_sensitive(global_save_button, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Find LayerElement in list with specified layer number
|
||||||
|
* @param el_list List with elements of type LayerElement
|
||||||
|
* @param layer Layer number
|
||||||
|
* @return Found LayerElement. If nothing is found, NULL.
|
||||||
|
*/
|
||||||
static LayerElement *find_layer_element_in_list(GList *el_list, int layer)
|
static LayerElement *find_layer_element_in_list(GList *el_list, int layer)
|
||||||
{
|
{
|
||||||
LayerElement *ret = NULL;
|
LayerElement *ret = NULL;
|
||||||
@ -182,6 +217,10 @@ static LayerElement *find_layer_element_in_list(GList *el_list, int layer)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Load file and apply layer definitions to listbox
|
||||||
|
* @param file_name CSV Layer Mapping File
|
||||||
|
*/
|
||||||
static void load_layer_mapping_from_file(gchar *file_name)
|
static void load_layer_mapping_from_file(gchar *file_name)
|
||||||
{
|
{
|
||||||
GFile *file;
|
GFile *file;
|
||||||
@ -252,6 +291,11 @@ destroy_file:
|
|||||||
g_object_unref(file);
|
g_object_unref(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Callback for Load Mapping Button
|
||||||
|
* @param button
|
||||||
|
* @param user_data
|
||||||
|
*/
|
||||||
static void load_mapping_clicked(GtkWidget *button, gpointer user_data)
|
static void load_mapping_clicked(GtkWidget *button, gpointer user_data)
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
@ -269,6 +313,12 @@ static void load_mapping_clicked(GtkWidget *button, gpointer user_data)
|
|||||||
gtk_widget_destroy(dialog);
|
gtk_widget_destroy(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create Line for LayerMapping file with supplied information
|
||||||
|
* @param layer_element information
|
||||||
|
* @param line_buffer buffer to write to
|
||||||
|
* @param max_len Maximum length that cna be used in \p line_buffer
|
||||||
|
*/
|
||||||
static void create_csv_line(LayerElement *layer_element, char *line_buffer, size_t max_len)
|
static void create_csv_line(LayerElement *layer_element, char *line_buffer, size_t max_len)
|
||||||
{
|
{
|
||||||
GString *string;
|
GString *string;
|
||||||
@ -304,6 +354,11 @@ static void create_csv_line(LayerElement *layer_element, char *line_buffer, size
|
|||||||
g_string_free(string, TRUE);
|
g_string_free(string, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Save layer mapping of whole list box into file
|
||||||
|
* @param file_name layer mapping file
|
||||||
|
* @param list_box listbox
|
||||||
|
*/
|
||||||
static void save_layer_mapping_data(const gchar *file_name, GtkListBox *list_box)
|
static void save_layer_mapping_data(const gchar *file_name, GtkListBox *list_box)
|
||||||
{
|
{
|
||||||
FILE *file;
|
FILE *file;
|
||||||
@ -331,6 +386,11 @@ static void save_layer_mapping_data(const gchar *file_name, GtkListBox *list_box
|
|||||||
fclose(file);
|
fclose(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Callback for Save Layer Mapping Button
|
||||||
|
* @param button
|
||||||
|
* @param user_data
|
||||||
|
*/
|
||||||
static void save_mapping_clicked(GtkWidget *button, gpointer user_data)
|
static void save_mapping_clicked(GtkWidget *button, gpointer user_data)
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
@ -361,3 +421,5 @@ void setup_save_mapping_callback(GtkWidget *button, GtkWindow *main_window)
|
|||||||
global_save_button = button;
|
global_save_button = button;
|
||||||
g_signal_connect(button, "clicked", G_CALLBACK(save_mapping_clicked), main_window);
|
g_signal_connect(button, "clicked", G_CALLBACK(save_mapping_clicked), main_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,6 +17,12 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file layer-selector.h
|
||||||
|
* @brief Implementation of the Layer selection list
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __LAYER_SELECTOR_H__
|
#ifndef __LAYER_SELECTOR_H__
|
||||||
#define __LAYER_SELECTOR_H__
|
#define __LAYER_SELECTOR_H__
|
||||||
|
|
||||||
@ -24,10 +30,38 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include "mapping-parser.h"
|
#include "mapping-parser.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Generate layer widgets in \p listbox
|
||||||
|
* @note This clears all previously inserted elements
|
||||||
|
* @param listbox
|
||||||
|
* @param libs The library to add
|
||||||
|
*/
|
||||||
void generate_layer_widgets(GtkListBox *listbox, GList *libs);
|
void generate_layer_widgets(GtkListBox *listbox, GList *libs);
|
||||||
void setup_load_mapping_callback(GtkWidget *button, GtkWindow *main_window);
|
|
||||||
void setup_save_mapping_callback(GtkWidget *button, GtkWindow *main_window);
|
|
||||||
GList *export_rendered_layer_info();
|
|
||||||
void delete_layer_info_struct(struct layer_info *info);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Supply button for loading the layer mapping
|
||||||
|
* @param button
|
||||||
|
* @param main_window Parent window for dialogs
|
||||||
|
*/
|
||||||
|
void setup_load_mapping_callback(GtkWidget *button, GtkWindow *main_window);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Supply button for saving the layer mapping
|
||||||
|
* @param button
|
||||||
|
* @param main_window
|
||||||
|
*/
|
||||||
|
void setup_save_mapping_callback(GtkWidget *button, GtkWindow *main_window);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get the layer information present in the listbox of the selector
|
||||||
|
* @return List with layer_info elements
|
||||||
|
*/
|
||||||
|
GList *export_rendered_layer_info();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Delete a layer_info struct
|
||||||
|
* @param info Struct to be deleted.
|
||||||
|
* @note The layer_info::name Element has to be freed manually
|
||||||
|
*/
|
||||||
|
void delete_layer_info_struct(struct layer_info *info);
|
||||||
#endif /* __LAYER_SELECTOR_H__ */
|
#endif /* __LAYER_SELECTOR_H__ */
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file main-window.c
|
||||||
|
* @brief Handling of GUI
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include "main-window.h"
|
#include "main-window.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "gds-parser/gds-parser.h"
|
#include "gds-parser/gds-parser.h"
|
||||||
@ -27,6 +37,9 @@
|
|||||||
#include "widgets/conv-settings-dialog.h"
|
#include "widgets/conv-settings-dialog.h"
|
||||||
#include "cairo-output/cairo-output.h"
|
#include "cairo-output/cairo-output.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief User data supplied to callback function of the open button
|
||||||
|
*/
|
||||||
struct open_button_data {
|
struct open_button_data {
|
||||||
GtkWindow *main_window;
|
GtkWindow *main_window;
|
||||||
GList **list_ptr;
|
GList **list_ptr;
|
||||||
@ -34,17 +47,33 @@ struct open_button_data {
|
|||||||
GtkListBox *layer_box;
|
GtkListBox *layer_box;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief User data supplied to callback function of the convert button
|
||||||
|
*/
|
||||||
struct convert_button_data {
|
struct convert_button_data {
|
||||||
GtkTreeView *tree_view;
|
GtkTreeView *tree_view;
|
||||||
GtkWindow *main_window;
|
GtkWindow *main_window;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Window close event of main window
|
||||||
|
*
|
||||||
|
* Closes the main window. This leads to the termination of the whole application
|
||||||
|
* @param window main window
|
||||||
|
* @param user not used
|
||||||
|
* @return TRUE. This indicates that the event has been fully handled
|
||||||
|
*/
|
||||||
static gboolean on_window_close(gpointer window, gpointer user)
|
static gboolean on_window_close(gpointer window, gpointer user)
|
||||||
{
|
{
|
||||||
gtk_widget_destroy(GTK_WIDGET(window));
|
gtk_widget_destroy(GTK_WIDGET(window));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief generate string from gds_time_field
|
||||||
|
* @param date Date to convert
|
||||||
|
* @return String with date
|
||||||
|
*/
|
||||||
static GString *generate_string_from_date(struct gds_time_field *date)
|
static GString *generate_string_from_date(struct gds_time_field *date)
|
||||||
{
|
{
|
||||||
GString *str;
|
GString *str;
|
||||||
@ -59,7 +88,11 @@ static GString *generate_string_from_date(struct gds_time_field *date)
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Callback function of Load GDS button
|
||||||
|
* @param button
|
||||||
|
* @param user Necessary Data
|
||||||
|
*/
|
||||||
static void on_load_gds(gpointer button, gpointer user)
|
static void on_load_gds(gpointer button, gpointer user)
|
||||||
{
|
{
|
||||||
GList *cell;
|
GList *cell;
|
||||||
@ -161,6 +194,11 @@ end_destroy:
|
|||||||
gtk_widget_destroy(open_dialog);
|
gtk_widget_destroy(open_dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Convert button callback
|
||||||
|
* @param button
|
||||||
|
* @param user
|
||||||
|
*/
|
||||||
static void on_convert_clicked(gpointer button, gpointer user)
|
static void on_convert_clicked(gpointer button, gpointer user)
|
||||||
{
|
{
|
||||||
static struct render_settings sett = {
|
static struct render_settings sett = {
|
||||||
@ -247,8 +285,15 @@ ret_layer_destroy:
|
|||||||
g_list_free_full(layer_list, (GDestroyNotify)delete_layer_info_struct);
|
g_list_free_full(layer_list, (GDestroyNotify)delete_layer_info_struct);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function activates/deactivates the convert button depending on whether
|
|
||||||
* a cell is selected for conversion or not */
|
/**
|
||||||
|
* @brief Callback for cell-selection change event
|
||||||
|
*
|
||||||
|
* This function activates/deactivates the convert button depending on whether
|
||||||
|
* a cell is selected for conversion or not
|
||||||
|
* @param sel
|
||||||
|
* @param convert_button
|
||||||
|
*/
|
||||||
static void cell_selection_changed(GtkTreeSelection *sel, GtkWidget *convert_button)
|
static void cell_selection_changed(GtkTreeSelection *sel, GtkWidget *convert_button)
|
||||||
{
|
{
|
||||||
GtkTreeModel *model = NULL;
|
GtkTreeModel *model = NULL;
|
||||||
@ -314,3 +359,5 @@ GtkWindow *create_main_window()
|
|||||||
|
|
||||||
return (conv_data.main_window);
|
return (conv_data.main_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,11 +17,30 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file main-window.h
|
||||||
|
* @brief Header for main-window
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _MAIN_WINDOW_H_
|
#ifndef _MAIN_WINDOW_H_
|
||||||
#define _MAIN_WINDOW_H_
|
#define _MAIN_WINDOW_H_
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create main window
|
||||||
|
*
|
||||||
|
* This function creates the main window and sets the necessary callback routines.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
GtkWindow *create_main_window();
|
GtkWindow *create_main_window();
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
#endif /* _MAIN_WINDOW_H_ */
|
#endif /* _MAIN_WINDOW_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user