tecscde 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rubocop.yml +125 -0
  4. data/.rubocop_todo.yml +188 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +46 -0
  8. data/LICENSE.ja +32 -0
  9. data/README.ja.md +200 -0
  10. data/README.md +35 -0
  11. data/Rakefile +27 -0
  12. data/bin/tecscde +64 -0
  13. data/glade/tecscde-cell-property.glade +205 -0
  14. data/glade/tecscde-celltype-property.glade +172 -0
  15. data/glade/tecscde-celltype.glade +414 -0
  16. data/glade/tecscde-export.glade +161 -0
  17. data/glade/test-cell-plugin.rb +51 -0
  18. data/glade/test-cell-property.rb +35 -0
  19. data/glade/test-export.rb +35 -0
  20. data/glade/test-palette.rb +26 -0
  21. data/lib/tcflow.rb +148 -0
  22. data/lib/tecscde.rb +65 -0
  23. data/lib/tecscde/NewCell.png +0 -0
  24. data/lib/tecscde/SelectArrow.png +0 -0
  25. data/lib/tecscde/attr_tree_view.rb +253 -0
  26. data/lib/tecscde/cell_plugin_dialog.glade +294 -0
  27. data/lib/tecscde/cell_plugin_dialog.rb +89 -0
  28. data/lib/tecscde/celltype_tree_view.rb +105 -0
  29. data/lib/tecscde/change_set_control.rb +35 -0
  30. data/lib/tecscde/change_set_control/change_set.rb +32 -0
  31. data/lib/tecscde/change_set_control/change_set_manager.rb +62 -0
  32. data/lib/tecscde/command.rb +35 -0
  33. data/lib/tecscde/control.rb +491 -0
  34. data/lib/tecscde/highlighted_objects.rb +180 -0
  35. data/lib/tecscde/logger.rb +74 -0
  36. data/lib/tecscde/main_view_and_model.rb +80 -0
  37. data/lib/tecscde/palette.glade +553 -0
  38. data/lib/tecscde/palette.rb +174 -0
  39. data/lib/tecscde/preferences.glade +117 -0
  40. data/lib/tecscde/preferences.rb +44 -0
  41. data/lib/tecscde/tecs_model.rb +1137 -0
  42. data/lib/tecscde/tecs_model/hbar.rb +68 -0
  43. data/lib/tecscde/tecs_model/tm_c_port.rb +122 -0
  44. data/lib/tecscde/tecs_model/tm_c_port_array.rb +98 -0
  45. data/lib/tecscde/tecs_model/tm_cell.rb +496 -0
  46. data/lib/tecscde/tecs_model/tm_e_port.rb +126 -0
  47. data/lib/tecscde/tecs_model/tm_e_port_array.rb +78 -0
  48. data/lib/tecscde/tecs_model/tm_join.rb +293 -0
  49. data/lib/tecscde/tecs_model/tm_join_bar.rb +146 -0
  50. data/lib/tecscde/tecs_model/tm_port.rb +238 -0
  51. data/lib/tecscde/tecs_model/tm_port_array.rb +246 -0
  52. data/lib/tecscde/tecs_model/tm_region.rb +107 -0
  53. data/lib/tecscde/tecs_model/tm_uneditable.rb +68 -0
  54. data/lib/tecscde/tecs_model/vbar.rb +68 -0
  55. data/lib/tecscde/templates/_cell_info.cde.erb +15 -0
  56. data/lib/tecscde/templates/_join_info.cde.erb +28 -0
  57. data/lib/tecscde/templates/main.cde.erb +49 -0
  58. data/lib/tecscde/tm_object.rb +91 -0
  59. data/lib/tecscde/version.rb +4 -0
  60. data/lib/tecscde/view.rb +58 -0
  61. data/lib/tecscde/view/cairo_matrix.rb +90 -0
  62. data/lib/tecscde/view/canvas.rb +59 -0
  63. data/lib/tecscde/view/constants.rb +114 -0
  64. data/lib/tecscde/view/main_view.rb +1245 -0
  65. data/lib/tecsflow.rb +475 -0
  66. data/lib/tecsflow/C_parser.tab.rb +2471 -0
  67. data/lib/tecsflow/C_parser.y.rb +1087 -0
  68. data/lib/tecsflow/classes.rb +421 -0
  69. data/lib/tecsgen.rb +581 -0
  70. data/lib/tecsgen/core/C_parser.tab.rb +2477 -0
  71. data/lib/tecsgen/core/C_parser.y +1032 -0
  72. data/lib/tecsgen/core/bnf-deb.tab.rb +5193 -0
  73. data/lib/tecsgen/core/bnf.tab.rb +5193 -0
  74. data/lib/tecsgen/core/bnf.y +2211 -0
  75. data/lib/tecsgen/core/componentobj.rb +7901 -0
  76. data/lib/tecsgen/core/ctypes.rb +226 -0
  77. data/lib/tecsgen/core/expression.rb +1031 -0
  78. data/lib/tecsgen/core/gen_xml.rb +374 -0
  79. data/lib/tecsgen/core/generate.rb +5206 -0
  80. data/lib/tecsgen/core/location.rb +116 -0
  81. data/lib/tecsgen/core/messages.rb +101 -0
  82. data/lib/tecsgen/core/optimize.rb +456 -0
  83. data/lib/tecsgen/core/plugin.rb +332 -0
  84. data/lib/tecsgen/core/pluginModule.rb +165 -0
  85. data/lib/tecsgen/core/syntaxobj.rb +1234 -0
  86. data/lib/tecsgen/core/tecs_lang.rb +306 -0
  87. data/lib/tecsgen/core/tecsgen.rb +453 -0
  88. data/lib/tecsgen/core/tecsinfo.rb +860 -0
  89. data/lib/tecsgen/core/tool_info.rb +258 -0
  90. data/lib/tecsgen/core/types.rb +1632 -0
  91. data/lib/tecsgen/core/unjoin_plugin.rb +218 -0
  92. data/lib/tecsgen/core/value.rb +650 -0
  93. data/lib/tecsgen/messages/messages_console_en_US.rb +1171 -0
  94. data/lib/tecsgen/messages/messages_console_ja_JP.rb +1171 -0
  95. data/lib/tecsgen/messages/messages_file_en_US.rb +334 -0
  96. data/lib/tecsgen/messages/messages_file_ja_JP.rb +163 -0
  97. data/lib/tecsgen/plugin/ATK1AlarmPlugin.rb +196 -0
  98. data/lib/tecsgen/plugin/ATK1DelayTaskPlugin.rb +106 -0
  99. data/lib/tecsgen/plugin/ATK1EventPlugin.rb +147 -0
  100. data/lib/tecsgen/plugin/ATK1ISRPlugin.rb +174 -0
  101. data/lib/tecsgen/plugin/ATK1KernelPlugin.rb +287 -0
  102. data/lib/tecsgen/plugin/ATK1ResourcePlugin.rb +124 -0
  103. data/lib/tecsgen/plugin/ATK1TaskPlugin.rb +220 -0
  104. data/lib/tecsgen/plugin/C2TECSBridgePlugin.rb +210 -0
  105. data/lib/tecsgen/plugin/CellPlugin.rb +61 -0
  106. data/lib/tecsgen/plugin/CelltypePlugin.rb +72 -0
  107. data/lib/tecsgen/plugin/CompositePlugin.rb +66 -0
  108. data/lib/tecsgen/plugin/DomainPlugin.rb +89 -0
  109. data/lib/tecsgen/plugin/HRP2AlarmHandlerPlugin.rb +76 -0
  110. data/lib/tecsgen/plugin/HRP2Cache.rb +1 -0
  111. data/lib/tecsgen/plugin/HRP2CyclicHandlerPlugin.rb +75 -0
  112. data/lib/tecsgen/plugin/HRP2DataqueuePlugin.rb +68 -0
  113. data/lib/tecsgen/plugin/HRP2EventflagPlugin.rb +68 -0
  114. data/lib/tecsgen/plugin/HRP2FixedSizeMemoryPoolPlugin.rb +68 -0
  115. data/lib/tecsgen/plugin/HRP2HandlerPlugin.rb +117 -0
  116. data/lib/tecsgen/plugin/HRP2KernelObjectPlugin.rb +372 -0
  117. data/lib/tecsgen/plugin/HRP2ObjectPlugin.rb +94 -0
  118. data/lib/tecsgen/plugin/HRP2Plugin.rb +140 -0
  119. data/lib/tecsgen/plugin/HRP2PostHook.rb +111 -0
  120. data/lib/tecsgen/plugin/HRP2PriorityDataqueuePlugin.rb +66 -0
  121. data/lib/tecsgen/plugin/HRP2RPCPlugin.rb +319 -0
  122. data/lib/tecsgen/plugin/HRP2SVCPlugin.rb +473 -0
  123. data/lib/tecsgen/plugin/HRP2SemaphorePlugin.rb +67 -0
  124. data/lib/tecsgen/plugin/HRP2TaskPlugin.rb +200 -0
  125. data/lib/tecsgen/plugin/HRPHandlerPlugin.rb +125 -0
  126. data/lib/tecsgen/plugin/HRPKernelObjectManager.rb +72 -0
  127. data/lib/tecsgen/plugin/HRPKernelObjectPlugin.rb +333 -0
  128. data/lib/tecsgen/plugin/HRPObjectPlugin.rb +93 -0
  129. data/lib/tecsgen/plugin/HRPPlugin.rb +356 -0
  130. data/lib/tecsgen/plugin/HRPRPCPlugin.rb +407 -0
  131. data/lib/tecsgen/plugin/HRPSVCPlugin.rb +859 -0
  132. data/lib/tecsgen/plugin/HRPTaskPlugin.rb +107 -0
  133. data/lib/tecsgen/plugin/Mruby2CBridgePlugin.rb +86 -0
  134. data/lib/tecsgen/plugin/MrubyBridgeCellPlugin.rb +264 -0
  135. data/lib/tecsgen/plugin/MrubyBridgeCelltypePlugin.rb +293 -0
  136. data/lib/tecsgen/plugin/MrubyBridgeCompositePlugin.rb +49 -0
  137. data/lib/tecsgen/plugin/MrubyBridgePlugin.rb +67 -0
  138. data/lib/tecsgen/plugin/MrubyBridgeSignaturePlugin.rb +1307 -0
  139. data/lib/tecsgen/plugin/MrubyInfoBridgePlugin.rb +14 -0
  140. data/lib/tecsgen/plugin/MrubyInfoBridgeSignaturePlugin.rb +994 -0
  141. data/lib/tecsgen/plugin/MultiPlugin.rb +57 -0
  142. data/lib/tecsgen/plugin/NotifierPlugin.rb +1217 -0
  143. data/lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb +81 -0
  144. data/lib/tecsgen/plugin/OpaqueRPCPlugin.rb +323 -0
  145. data/lib/tecsgen/plugin/RPCPlugin.rb +266 -0
  146. data/lib/tecsgen/plugin/RepeatCellPlugin.rb +166 -0
  147. data/lib/tecsgen/plugin/RepeatJoinPlugin.rb +130 -0
  148. data/lib/tecsgen/plugin/SharedOpaqueRPCPlugin.rb +357 -0
  149. data/lib/tecsgen/plugin/SharedRPCPlugin.rb +329 -0
  150. data/lib/tecsgen/plugin/SignaturePlugin.rb +77 -0
  151. data/lib/tecsgen/plugin/TECS2CBridgePlugin.rb +178 -0
  152. data/lib/tecsgen/plugin/TECSInfoPlugin.rb +280 -0
  153. data/lib/tecsgen/plugin/ThroughPlugin.rb +333 -0
  154. data/lib/tecsgen/plugin/TracePlugin.rb +484 -0
  155. data/lib/tecsgen/plugin/lib/GenHRP2Marshaler.rb +761 -0
  156. data/lib/tecsgen/plugin/lib/GenOpaqueMarshaler.rb +1107 -0
  157. data/lib/tecsgen/plugin/lib/GenParamCopy.rb +365 -0
  158. data/lib/tecsgen/plugin/lib/GenTransparentMarshaler.rb +683 -0
  159. data/lib/tecsgen/plugin/lib/MrubyBridgeCelltypePluginModule.rb +283 -0
  160. data/lib/tecsgen/plugin/lib/MrubyBridgeSignaturePluginModule.rb +277 -0
  161. data/lib/tecsgen/version.rb +6 -0
  162. data/samples/FigureSamples/active/active.cde +104 -0
  163. data/samples/FigureSamples/active/active.cdl +20 -0
  164. data/samples/FigureSamples/active/active.pdf +0 -0
  165. data/samples/FigureSamples/active/active.png +0 -0
  166. data/samples/FigureSamples/active/gen/tmp_C_src.c +36 -0
  167. data/samples/FigureSamples/active/gen/tmp_cygwin_tecs.h +1908 -0
  168. data/samples/FigureSamples/active/gen/tmp_plugin_post_code.cdl +0 -0
  169. data/samples/FigureSamples/allocator/allocator-internal.png +0 -0
  170. data/samples/FigureSamples/allocator/allocator.cde +171 -0
  171. data/samples/FigureSamples/allocator/allocator.cdl +58 -0
  172. data/samples/FigureSamples/allocator/allocator.png +0 -0
  173. data/samples/FigureSamples/basic/Makefile +87 -0
  174. data/samples/FigureSamples/basic/SimpleSample-trace.cdl +50 -0
  175. data/samples/FigureSamples/basic/SimpleSample.cde +91 -0
  176. data/samples/FigureSamples/basic/SimpleSample.cdl +47 -0
  177. data/samples/FigureSamples/basic/basic.cde +93 -0
  178. data/samples/FigureSamples/basic/basic.cdl +46 -0
  179. data/samples/FigureSamples/basic/basic.png +0 -0
  180. data/samples/FigureSamples/callback/callback.cde +130 -0
  181. data/samples/FigureSamples/callback/callback.cdl +29 -0
  182. data/samples/FigureSamples/callback/callback.png +0 -0
  183. data/samples/FigureSamples/carray/carray.cde +144 -0
  184. data/samples/FigureSamples/carray/carray.cdl +38 -0
  185. data/samples/FigureSamples/carray/carray.png +0 -0
  186. data/samples/FigureSamples/cearray/cearray.cde +314 -0
  187. data/samples/FigureSamples/cearray/cearray.cdl +60 -0
  188. data/samples/FigureSamples/cearray/cearray.png +0 -0
  189. data/samples/FigureSamples/composite/composite-internal.png +0 -0
  190. data/samples/FigureSamples/composite/composite.cde +216 -0
  191. data/samples/FigureSamples/composite/composite.cdl +95 -0
  192. data/samples/FigureSamples/composite/composite.png +0 -0
  193. data/samples/FigureSamples/earray/earray.cde +142 -0
  194. data/samples/FigureSamples/earray/earray.cdl +38 -0
  195. data/samples/FigureSamples/earray/earray.png +0 -0
  196. data/samples/FigureSamples/join/Makefile +87 -0
  197. data/samples/FigureSamples/join/join.cde +132 -0
  198. data/samples/FigureSamples/join/join.cdl +40 -0
  199. data/samples/FigureSamples/join/join.png +0 -0
  200. data/samples/FigureSamples/relay/Makefile +99 -0
  201. data/samples/FigureSamples/relay/relay-internal.png +0 -0
  202. data/samples/FigureSamples/relay/relay.cde +284 -0
  203. data/samples/FigureSamples/relay/relay.cdl +52 -0
  204. data/samples/FigureSamples/relay/relay.png +0 -0
  205. data/samples/FigureSamples/rpc/Makefile +123 -0
  206. data/samples/FigureSamples/rpc/rpc-expand.png +0 -0
  207. data/samples/FigureSamples/rpc/rpc.cde +245 -0
  208. data/samples/FigureSamples/rpc/rpc.png +0 -0
  209. data/samples/FigureSamples/rpc/rpc_sample.cdl +53 -0
  210. data/samples/SimpleSample/Makefile +25 -0
  211. data/samples/SimpleSample/SimpleSample/Makefile +86 -0
  212. data/samples/SimpleSample/SimpleSample/Makefile-trace +91 -0
  213. data/samples/SimpleSample/SimpleSample/README.txt +106 -0
  214. data/samples/SimpleSample/SimpleSample/SimpleSample-trace.cdl +50 -0
  215. data/samples/SimpleSample/SimpleSample/SimpleSample.cdl +45 -0
  216. data/samples/SimpleSample/SimpleSample/src/tSample.c +77 -0
  217. data/samples/SimpleSample/SimpleSample/src/tSimple.c +48 -0
  218. data/samples/SimpleSample/SimpleSample/src/tecs-types.h +27 -0
  219. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile +51 -0
  220. data/samples/SimpleSample/SimpleSampleOpaqueRPC/Makefile-trace +91 -0
  221. data/samples/SimpleSample/SimpleSampleOpaqueRPC/README.txt +106 -0
  222. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample-trace.cdl +80 -0
  223. data/samples/SimpleSample/SimpleSampleOpaqueRPC/SimpleSample.cdl +77 -0
  224. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSample/Makefile +112 -0
  225. data/samples/SimpleSample/SimpleSampleOpaqueRPC/rSimple/Makefile +109 -0
  226. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSample.c +80 -0
  227. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tSimple.c +47 -0
  228. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tTaskMain.c +66 -0
  229. data/samples/SimpleSample/SimpleSampleOpaqueRPC/src/tecs-types.h +27 -0
  230. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile +125 -0
  231. data/samples/SimpleSample/SimpleSampleTransparentRPC/Makefile-trace +130 -0
  232. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample-trace.cdl +54 -0
  233. data/samples/SimpleSample/SimpleSampleTransparentRPC/SimpleSample.cdl +53 -0
  234. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSample.c +80 -0
  235. data/samples/SimpleSample/SimpleSampleTransparentRPC/src/tSimple.c +54 -0
  236. data/tecscde.gemspec +41 -0
  237. metadata +353 -0
@@ -0,0 +1,180 @@
1
+ #
2
+ # TECSCDE - TECS Component Diagram Editor
3
+ #
4
+ # Copyright (C) 2014-2019 by TOPPERS Project
5
+ #
6
+ # The above copyright holders grant permission gratis to use,
7
+ # duplicate, modify, or redistribute (hereafter called use) this
8
+ # software (including the one made by modifying this software),
9
+ # provided that the following four conditions (1) through (4) are
10
+ # satisfied.
11
+ #
12
+ # (1) When this software is used in the form of source code, the above
13
+ # copyright notice, this use conditions, and the disclaimer shown
14
+ # below must be retained in the source code without modification.
15
+ #
16
+ # (2) When this software is redistributed in the forms usable for the
17
+ # development of other software, such as in library form, the above
18
+ # copyright notice, this use conditions, and the disclaimer shown
19
+ # below must be shown without modification in the document provided
20
+ # with the redistributed software, such as the user manual.
21
+ #
22
+ # (3) When this software is redistributed in the forms unusable for the
23
+ # development of other software, such as the case when the software
24
+ # is embedded in a piece of equipment, either of the following two
25
+ # conditions must be satisfied:
26
+ #
27
+ # (a) The above copyright notice, this use conditions, and the
28
+ # disclaimer shown below must be shown without modification in
29
+ # the document provided with the redistributed software, such as
30
+ # the user manual.
31
+ #
32
+ # (b) How the software is to be redistributed must be reported to the
33
+ # TOPPERS Project according to the procedure described
34
+ # separately.
35
+ #
36
+ # (4) The above copyright holders and the TOPPERS Project are exempt
37
+ # from responsibility for any type of damage directly or indirectly
38
+ # caused from the use of this software and are indemnified by any
39
+ # users or end users of this software from any and all causes of
40
+ # action whatsoever.
41
+ #
42
+ # THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND
43
+ # THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES,
44
+ # INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR
45
+ # PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE
46
+ # TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR
47
+ # INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE.
48
+ #
49
+
50
+ module TECSCDE
51
+ #== manage highlighted objects
52
+ class HighlightedObjects
53
+ # @objects::[TmCell|TmJoinBar]
54
+ def initialize
55
+ @objects = []
56
+ end
57
+
58
+ def add(obj)
59
+ reset_if_ncessary(obj)
60
+ @objects << obj
61
+ @objects.uniq!
62
+ update_attr_tree_view
63
+ end
64
+
65
+ #=== objects#add_del
66
+ # add if not include, delete if include
67
+ def add_del(obj)
68
+ reset_if_ncessary(obj)
69
+ if @objects.include?(obj)
70
+ @objects.delete(obj)
71
+ else
72
+ @objects << obj
73
+ end
74
+ update_attr_tree_view
75
+ end
76
+
77
+ def reset(obj = nil)
78
+ @objects = []
79
+ if obj
80
+ @objects << obj
81
+ end
82
+ update_attr_tree_view
83
+ end
84
+
85
+ #=== objects#reset_if_ncessary
86
+ # Port and ( Cell or Bar ) cannot be highlighted simultaneously.
87
+ # Ports belonging to diferent Cell cannot be highlighted simultaneously.
88
+ # obj::TmCell | TmBar | TmPort: new object to be highlighted
89
+ def reset_if_ncessary(obj)
90
+ return if @objects.empty?
91
+ if @objects[0].is_a?(TECSModel::TmPort)
92
+ if obj.is_a?(TECSModel::TmPort)
93
+ if obj.owner_cell != @objects[0].owner_cell
94
+ reset
95
+ end
96
+ else
97
+ reset
98
+ end
99
+ else
100
+ if obj.is_a?(TECSModel::TmPort)
101
+ reset
102
+ end
103
+ end
104
+ end
105
+
106
+ def each
107
+ @objects.each do |obj|
108
+ yield obj
109
+ end
110
+ end
111
+
112
+ def empty?
113
+ @objects.empty?
114
+ end
115
+
116
+ def include?(object)
117
+ @objects.include?(object)
118
+ end
119
+
120
+ def set_attr_tree_view(tree_view, name_entry, region_entry, frame)
121
+ @cell_property_frame = frame
122
+ @cell_name_entry = name_entry
123
+ @cell_region_entry = region_entry
124
+ @attr_tree_view = tree_view
125
+ end
126
+
127
+ def change_cell_name(name)
128
+ if @objects.length == 1 && @objects[0].is_a?(TECSModel::TmCell)
129
+ @objects[0].change_name(name.to_sym)
130
+ @objects[0].model.set_undo_point
131
+ end
132
+ end
133
+
134
+ def cell_plugin_dialog
135
+ if @objects.length == 1 && @objects[0].is_a?(TECSModel::TmCell)
136
+ dialog = CellPluginDialog.new(@objects[0])
137
+ dialog.run
138
+ end
139
+ end
140
+
141
+ def update_attr_tree_view
142
+ cell = nil
143
+ n_cell = 0
144
+ each do |obj|
145
+ if obj.is_a?(TECSModel::TmCell)
146
+ cell = obj
147
+ n_cell += 1
148
+ end
149
+ end
150
+ if n_cell == 1
151
+ @cell_name_entry.text = cell.get_name.to_s
152
+ @cell_region_entry.text = cell.get_region.get_namespace_path.to_s
153
+
154
+ # this doesn't work! I don't know how to change the color of Entry text
155
+ if cell.editable?
156
+ @cell_name_entry.modify_fg(Gtk::STATE_NORMAL, Gdk::Color.parse("black"))
157
+ @cell_region_entry.modify_fg(Gtk::STATE_NORMAL, Gdk::Color.parse("black"))
158
+ @cell_property_frame.set_label("cell property")
159
+ else
160
+ @cell_name_entry.modify_fg(Gtk::STATE_NORMAL, Gdk::Color.parse("blue"))
161
+ @cell_region_entry.modify_fg(Gtk::STATE_NORMAL, Gdk::Color.parse("blue"))
162
+ @cell_property_frame.set_label("cell property (read only)")
163
+ end
164
+
165
+ @cell_name_entry.set_editable(cell.editable?)
166
+ @cell_region_entry.set_editable(cell.editable?)
167
+
168
+ @attr_tree_view.set_cell(cell)
169
+ else
170
+ @cell_name_entry.text = "(unselected)"
171
+ @cell_name_entry.set_editable(false)
172
+ @cell_name_entry.text = "(unselected)"
173
+ @cell_name_entry.set_editable(false)
174
+ @cell_property_frame.set_label("cell property (unselected)")
175
+
176
+ @attr_tree_view.clear
177
+ end
178
+ end
179
+ end
180
+ end
@@ -0,0 +1,74 @@
1
+ #
2
+ # TECSCDE - TECS Component Diagram Editor
3
+ #
4
+ # Copyright (C) 2014-2019 by TOPPERS Project
5
+ #
6
+ # The above copyright holders grant permission gratis to use,
7
+ # duplicate, modify, or redistribute (hereafter called use) this
8
+ # software (including the one made by modifying this software),
9
+ # provided that the following four conditions (1) through (4) are
10
+ # satisfied.
11
+ #
12
+ # (1) When this software is used in the form of source code, the above
13
+ # copyright notice, this use conditions, and the disclaimer shown
14
+ # below must be retained in the source code without modification.
15
+ #
16
+ # (2) When this software is redistributed in the forms usable for the
17
+ # development of other software, such as in library form, the above
18
+ # copyright notice, this use conditions, and the disclaimer shown
19
+ # below must be shown without modification in the document provided
20
+ # with the redistributed software, such as the user manual.
21
+ #
22
+ # (3) When this software is redistributed in the forms unusable for the
23
+ # development of other software, such as the case when the software
24
+ # is embedded in a piece of equipment, either of the following two
25
+ # conditions must be satisfied:
26
+ #
27
+ # (a) The above copyright notice, this use conditions, and the
28
+ # disclaimer shown below must be shown without modification in
29
+ # the document provided with the redistributed software, such as
30
+ # the user manual.
31
+ #
32
+ # (b) How the software is to be redistributed must be reported to the
33
+ # TOPPERS Project according to the procedure described
34
+ # separately.
35
+ #
36
+ # (4) The above copyright holders and the TOPPERS Project are exempt
37
+ # from responsibility for any type of damage directly or indirectly
38
+ # caused from the use of this software and are indemnified by any
39
+ # users or end users of this software from any and all causes of
40
+ # action whatsoever.
41
+ #
42
+ # THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND
43
+ # THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES,
44
+ # INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR
45
+ # PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE
46
+ # TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR
47
+ # INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE.
48
+ #
49
+
50
+ require "logger"
51
+ require "forwardable"
52
+
53
+ module TECSCDE
54
+ class Logger
55
+ extend Forwardable
56
+
57
+ def_delegators(:@logger,
58
+ :debug, :debug?,
59
+ :info, :info?,
60
+ :warn, :warn?,
61
+ :error, :error?,
62
+ :fatal, :fatal?)
63
+
64
+ def initialize
65
+ @logger = ::Logger.new($stdout, level: ::Logger::Severity::INFO)
66
+ end
67
+ end
68
+
69
+ class << self
70
+ def logger
71
+ @logger ||= TECSCDE::Logger.new
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,80 @@
1
+ #
2
+ # TECSCDE - TECS Component Diagram Editor
3
+ #
4
+ # Copyright (C) 2014-2019 by TOPPERS Project
5
+ #
6
+ # The above copyright holders grant permission gratis to use,
7
+ # duplicate, modify, or redistribute (hereafter called use) this
8
+ # software (including the one made by modifying this software),
9
+ # provided that the following four conditions (1) through (4) are
10
+ # satisfied.
11
+ #
12
+ # (1) When this software is used in the form of source code, the above
13
+ # copyright notice, this use conditions, and the disclaimer shown
14
+ # below must be retained in the source code without modification.
15
+ #
16
+ # (2) When this software is redistributed in the forms usable for the
17
+ # development of other software, such as in library form, the above
18
+ # copyright notice, this use conditions, and the disclaimer shown
19
+ # below must be shown without modification in the document provided
20
+ # with the redistributed software, such as the user manual.
21
+ #
22
+ # (3) When this software is redistributed in the forms unusable for the
23
+ # development of other software, such as the case when the software
24
+ # is embedded in a piece of equipment, either of the following two
25
+ # conditions must be satisfied:
26
+ #
27
+ # (a) The above copyright notice, this use conditions, and the
28
+ # disclaimer shown below must be shown without modification in
29
+ # the document provided with the redistributed software, such as
30
+ # the user manual.
31
+ #
32
+ # (b) How the software is to be redistributed must be reported to the
33
+ # TOPPERS Project according to the procedure described
34
+ # separately.
35
+ #
36
+ # (4) The above copyright holders and the TOPPERS Project are exempt
37
+ # from responsibility for any type of damage directly or indirectly
38
+ # caused from the use of this software and are indemnified by any
39
+ # users or end users of this software from any and all causes of
40
+ # action whatsoever.
41
+ #
42
+ # THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND
43
+ # THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES,
44
+ # INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR
45
+ # PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE
46
+ # TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR
47
+ # INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE.
48
+ #
49
+
50
+ require "tecscde/tecs_model"
51
+ require "tecscde/control"
52
+ require "tecscde/view"
53
+
54
+ module TECSCDE
55
+ class MainViewAndModel
56
+ def initialize(tecsgen)
57
+ @model = TECSCDE::TECSModel.new(tecsgen)
58
+ control = TECSCDE::Control.new(@model)
59
+ view = TECSCDE::View::MainView.new(@model, control)
60
+ control.set_view(view)
61
+ @model.set_view(view)
62
+
63
+ @model.add_cell_list_from_tecsgen
64
+ @model.set_undo_point
65
+
66
+ view.paint_canvas
67
+ end
68
+
69
+ def test_main
70
+ TECSCDE.logger.degug("test_main")
71
+ cell1 = @model.new_cell(0, 0)
72
+ cell2 = @model.new_cell(100, 100)
73
+
74
+ cport = TECSModel::TmCPort.new(cell1)
75
+ eport = TECSModel::TmEPort.new(cell2)
76
+
77
+ @model.new_join(cport, eport)
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,553 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <interface>
3
+ <requires lib="gtk+" version="2.16"/>
4
+ <!-- interface-naming-policy project-wide -->
5
+ <object class="GtkImage" id="image_export">
6
+ <property name="visible">True</property>
7
+ <property name="can_focus">False</property>
8
+ <property name="stock">gtk-justify-fill</property>
9
+ </object>
10
+ <object class="GtkImage" id="image_new_cell">
11
+ <property name="visible">True</property>
12
+ <property name="can_focus">False</property>
13
+ <property name="pixbuf">NewCell.png</property>
14
+ </object>
15
+ <object class="GtkImage" id="image_pointer">
16
+ <property name="visible">True</property>
17
+ <property name="can_focus">False</property>
18
+ <property name="pixbuf">SelectArrow.png</property>
19
+ </object>
20
+ <object class="GtkImage" id="image_save">
21
+ <property name="visible">True</property>
22
+ <property name="can_focus">False</property>
23
+ <property name="stock">gtk-save</property>
24
+ </object>
25
+ <object class="GtkListStore" id="liststore_cell_attribute"/>
26
+ <object class="GtkListStore" id="liststore_celltype"/>
27
+ <object class="GtkWindow" id="window_palette">
28
+ <property name="can_focus">False</property>
29
+ <property name="title" translatable="yes">TECSCDE Palette</property>
30
+ <property name="skip_taskbar_hint">True</property>
31
+ <property name="skip_pager_hint">True</property>
32
+ <child>
33
+ <object class="GtkVBox" id="vbox1">
34
+ <property name="visible">True</property>
35
+ <property name="can_focus">False</property>
36
+ <child>
37
+ <object class="GtkMenuBar" id="menubar1">
38
+ <property name="visible">True</property>
39
+ <property name="can_focus">False</property>
40
+ <child>
41
+ <object class="GtkMenuItem" id="menuitem1">
42
+ <property name="visible">True</property>
43
+ <property name="can_focus">False</property>
44
+ <property name="use_action_appearance">False</property>
45
+ <property name="label" translatable="yes">_File</property>
46
+ <property name="use_underline">True</property>
47
+ <child type="submenu">
48
+ <object class="GtkMenu" id="menu1">
49
+ <property name="visible">True</property>
50
+ <property name="can_focus">False</property>
51
+ <!--
52
+ <child>
53
+ <object class="GtkImageMenuItem" id="imagemenuitem1">
54
+ <property name="label">gtk-new</property>
55
+ <property name="visible">True</property>
56
+ <property name="can_focus">False</property>
57
+ <property name="use_action_appearance">False</property>
58
+ <property name="use_underline">True</property>
59
+ <property name="use_stock">True</property>
60
+ </object>
61
+ </child>
62
+ -->
63
+ <!--
64
+ <child>
65
+ <object class="GtkImageMenuItem" id="imagemenuitem2">
66
+ <property name="label">gtk-open</property>
67
+ <property name="visible">True</property>
68
+ <property name="can_focus">False</property>
69
+ <property name="use_action_appearance">False</property>
70
+ <property name="use_underline">True</property>
71
+ <property name="use_stock">True</property>
72
+ </object>
73
+ </child>
74
+ -->
75
+ <child>
76
+ <object class="GtkImageMenuItem" id="menuitem-save">
77
+ <property name="label">gtk-save</property>
78
+ <property name="visible">True</property>
79
+ <property name="can_focus">False</property>
80
+ <property name="use_action_appearance">False</property>
81
+ <property name="use_underline">True</property>
82
+ <property name="use_stock">True</property>
83
+ </object>
84
+ </child>
85
+ <!--
86
+ <child>
87
+ <object class="GtkImageMenuItem" id="imagemenuitem4">
88
+ <property name="label">gtk-save-as</property>
89
+ <property name="visible">True</property>
90
+ <property name="can_focus">False</property>
91
+ <property name="use_action_appearance">False</property>
92
+ <property name="use_underline">True</property>
93
+ <property name="use_stock">True</property>
94
+ </object>
95
+ </child>
96
+ -->
97
+ <child>
98
+ <object class="GtkImageMenuItem" id="menuitem-export">
99
+ <property name="label" translatable="yes">_Export</property>
100
+ <property name="visible">True</property>
101
+ <property name="can_focus">False</property>
102
+ <property name="use_action_appearance">False</property>
103
+ <property name="use_underline">True</property>
104
+ <property name="use_stock">True</property>
105
+ </object>
106
+ </child>
107
+ <child>
108
+ <object class="GtkImageMenuItem" id="menuitem-preferences">
109
+ <property name="label">gtk-preferences</property>
110
+ <property name="visible">True</property>
111
+ <property name="can_focus">False</property>
112
+ <property name="use_action_appearance">False</property>
113
+ <property name="use_underline">True</property>
114
+ <property name="use_stock">True</property>
115
+ </object>
116
+ </child>
117
+ <child>
118
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
119
+ <property name="visible">True</property>
120
+ <property name="can_focus">False</property>
121
+ <property name="use_action_appearance">False</property>
122
+ </object>
123
+ </child>
124
+ <child>
125
+ <object class="GtkImageMenuItem" id="menuitem-quit">
126
+ <property name="label">gtk-quit</property>
127
+ <property name="visible">True</property>
128
+ <property name="can_focus">False</property>
129
+ <property name="use_action_appearance">False</property>
130
+ <property name="use_underline">True</property>
131
+ <property name="use_stock">True</property>
132
+ </object>
133
+ </child>
134
+ </object>
135
+ </child>
136
+ </object>
137
+ </child>
138
+ <child>
139
+ <object class="GtkMenuItem" id="menuitem2">
140
+ <property name="visible">True</property>
141
+ <property name="can_focus">False</property>
142
+ <property name="use_action_appearance">False</property>
143
+ <property name="label" translatable="yes">_Edit</property>
144
+ <property name="use_underline">True</property>
145
+ <child type="submenu">
146
+ <object class="GtkMenu" id="menu2">
147
+ <property name="visible">True</property>
148
+ <property name="can_focus">False</property>
149
+ <!--
150
+ <child>
151
+ <object class="GtkImageMenuItem" id="menuitem-cut">
152
+ <property name="label">gtk-cut</property>
153
+ <property name="visible">True</property>
154
+ <property name="can_focus">False</property>
155
+ <property name="use_action_appearance">False</property>
156
+ <property name="use_underline">True</property>
157
+ <property name="use_stock">True</property>
158
+ </object>
159
+ </child>
160
+ <child>
161
+ <object class="GtkImageMenuItem" id="menuitem-copy">
162
+ <property name="label">gtk-copy</property>
163
+ <property name="visible">True</property>
164
+ <property name="can_focus">False</property>
165
+ <property name="use_action_appearance">False</property>
166
+ <property name="use_underline">True</property>
167
+ <property name="use_stock">True</property>
168
+ </object>
169
+ </child>
170
+ <child>
171
+ <object class="GtkImageMenuItem" id="menuitem-paste">
172
+ <property name="label">gtk-paste</property>
173
+ <property name="visible">True</property>
174
+ <property name="can_focus">False</property>
175
+ <property name="use_action_appearance">False</property>
176
+ <property name="use_underline">True</property>
177
+ <property name="use_stock">True</property>
178
+ </object>
179
+ </child>
180
+ <child>
181
+ <object class="GtkImageMenuItem" id="menuitem-delete">
182
+ <property name="label">gtk-delete</property>
183
+ <property name="visible">True</property>
184
+ <property name="can_focus">False</property>
185
+ <property name="use_action_appearance">False</property>
186
+ <property name="use_underline">True</property>
187
+ <property name="use_stock">True</property>
188
+ </object>
189
+ </child>
190
+ -->
191
+ <child>
192
+ <object class="GtkImageMenuItem" id="menuitem-undo">
193
+ <property name="label">gtk-undo</property>
194
+ <property name="visible">True</property>
195
+ <property name="can_focus">False</property>
196
+ <property name="use_action_appearance">False</property>
197
+ <property name="use_underline">True</property>
198
+ <property name="use_stock">True</property>
199
+ </object>
200
+ </child>
201
+ <child>
202
+ <object class="GtkImageMenuItem" id="menuitem-redo">
203
+ <property name="label">gtk-redo</property>
204
+ <property name="visible">True</property>
205
+ <property name="can_focus">False</property>
206
+ <property name="use_action_appearance">False</property>
207
+ <property name="use_underline">True</property>
208
+ <property name="use_stock">True</property>
209
+ </object>
210
+ </child>
211
+ </object>
212
+ </child>
213
+ </object>
214
+ </child>
215
+ <child>
216
+ <object class="GtkMenuItem" id="menuitem4">
217
+ <property name="visible">True</property>
218
+ <property name="can_focus">False</property>
219
+ <property name="use_action_appearance">False</property>
220
+ <property name="label" translatable="yes">_Help</property>
221
+ <property name="use_underline">True</property>
222
+ <child type="submenu">
223
+ <object class="GtkMenu" id="menu3">
224
+ <property name="visible">True</property>
225
+ <property name="can_focus">False</property>
226
+ <child>
227
+ <object class="GtkImageMenuItem" id="menuitem-about">
228
+ <property name="label">gtk-about</property>
229
+ <property name="visible">True</property>
230
+ <property name="can_focus">False</property>
231
+ <property name="use_action_appearance">False</property>
232
+ <property name="use_underline">True</property>
233
+ <property name="use_stock">True</property>
234
+ </object>
235
+ </child>
236
+ </object>
237
+ </child>
238
+ </object>
239
+ </child>
240
+ </object>
241
+ <packing>
242
+ <property name="expand">False</property>
243
+ <property name="fill">True</property>
244
+ <property name="position">0</property>
245
+ </packing>
246
+ </child>
247
+ <child>
248
+ <object class="GtkHBox" id="hbox2">
249
+ <property name="visible">True</property>
250
+ <property name="can_focus">False</property>
251
+ <child>
252
+ <object class="GtkFrame" id="frame1">
253
+ <property name="visible">True</property>
254
+ <property name="can_focus">False</property>
255
+ <property name="label_xalign">0</property>
256
+ <property name="shadow_type">in</property>
257
+ <child>
258
+ <object class="GtkAlignment" id="alignment5">
259
+ <property name="visible">True</property>
260
+ <property name="can_focus">False</property>
261
+ <property name="left_padding">12</property>
262
+ <child>
263
+ <object class="GtkHBox" id="hbox4">
264
+ <property name="visible">True</property>
265
+ <property name="can_focus">False</property>
266
+ <child>
267
+ <object class="GtkToggleButton" id="togglebutton_pointer">
268
+ <property name="visible">True</property>
269
+ <property name="can_focus">True</property>
270
+ <property name="receives_default">True</property>
271
+ <property name="tooltip_markup">Select Object</property>
272
+ <property name="image">image_pointer</property>
273
+ </object>
274
+ <packing>
275
+ <property name="expand">False</property>
276
+ <property name="fill">True</property>
277
+ <property name="position">0</property>
278
+ </packing>
279
+ </child>
280
+ <child>
281
+ <object class="GtkToggleButton" id="togglebutton_new_cell">
282
+ <property name="visible">True</property>
283
+ <property name="can_focus">True</property>
284
+ <property name="receives_default">True</property>
285
+ <property name="tooltip_markup">New Cell</property>
286
+ <property name="image">image_new_cell</property>
287
+ </object>
288
+ <packing>
289
+ <property name="expand">False</property>
290
+ <property name="fill">True</property>
291
+ <property name="position">1</property>
292
+ </packing>
293
+ </child>
294
+ </object>
295
+ </child>
296
+ </object>
297
+ </child>
298
+ <child type="label">
299
+ <object class="GtkLabel" id="label_select_mode">
300
+ <property name="visible">True</property>
301
+ <property name="can_focus">False</property>
302
+ <property name="label" translatable="yes">&lt;b&gt;Select Mode&lt;/b&gt;</property>
303
+ <property name="use_markup">True</property>
304
+ </object>
305
+ </child>
306
+ </object>
307
+ <packing>
308
+ <property name="expand">False</property>
309
+ <property name="fill">True</property>
310
+ <property name="position">1</property>
311
+ </packing>
312
+ </child>
313
+ <child>
314
+ <object class="GtkFrame" id="frame6">
315
+ <property name="visible">True</property>
316
+ <property name="can_focus">False</property>
317
+ <property name="label_xalign">0</property>
318
+ <property name="shadow_type">none</property>
319
+ <child>
320
+ <object class="GtkHBox" id="hbox6">
321
+ <property name="visible">True</property>
322
+ <property name="can_focus">False</property>
323
+ <child>
324
+ <object class="GtkButton" id="button_undo">
325
+ <property name="label">gtk-undo</property>
326
+ <property name="visible">True</property>
327
+ <property name="can_focus">True</property>
328
+ <property name="receives_default">True</property>
329
+ <property name="use_stock">True</property>
330
+ </object>
331
+ <packing>
332
+ <property name="expand">True</property>
333
+ <property name="fill">True</property>
334
+ <property name="position">0</property>
335
+ </packing>
336
+ </child>
337
+ <child>
338
+ <object class="GtkButton" id="button_redo">
339
+ <property name="label">gtk-redo</property>
340
+ <property name="visible">True</property>
341
+ <property name="can_focus">True</property>
342
+ <property name="receives_default">True</property>
343
+ <property name="use_stock">True</property>
344
+ </object>
345
+ <packing>
346
+ <property name="expand">True</property>
347
+ <property name="fill">True</property>
348
+ <property name="position">1</property>
349
+ </packing>
350
+ </child>
351
+ </object>
352
+ </child>
353
+ <child type="label">
354
+ <object class="GtkLabel" id="label5">
355
+ <property name="visible">True</property>
356
+ <property name="can_focus">False</property>
357
+ <property name="label" translatable="yes">&lt;b&gt;Edit&lt;/b&gt;</property>
358
+ <property name="use_markup">True</property>
359
+ </object>
360
+ </child>
361
+ </object>
362
+ <packing>
363
+ <property name="expand">False</property>
364
+ <property name="fill">True</property>
365
+ <property name="position">2</property>
366
+ </packing>
367
+ </child>
368
+ </object>
369
+ <packing>
370
+ <property name="expand">False</property>
371
+ <property name="fill">True</property>
372
+ <property name="position">1</property>
373
+ </packing>
374
+ </child>
375
+ <child>
376
+ <object class="GtkFrame" id="frame2">
377
+ <property name="visible">True</property>
378
+ <property name="can_focus">False</property>
379
+ <property name="label_xalign">0</property>
380
+ <property name="shadow_type">in</property>
381
+ <child>
382
+ <object class="GtkAlignment" id="alignment2">
383
+ <property name="visible">True</property>
384
+ <property name="can_focus">False</property>
385
+ <property name="left_padding">12</property>
386
+ <child>
387
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
388
+ <property name="visible">True</property>
389
+ <property name="can_focus">True</property>
390
+ <property name="hscrollbar_policy">automatic</property>
391
+ <property name="vscrollbar_policy">automatic</property>
392
+ <child>
393
+ <object class="GtkTreeView" id="treeview_celltype">
394
+ <property name="width_request">150</property>
395
+ <property name="height_request">150</property>
396
+ <property name="visible">True</property>
397
+ <property name="can_focus">True</property>
398
+ <property name="model">liststore_celltype</property>
399
+ </object>
400
+ </child>
401
+ </object>
402
+ </child>
403
+ </object>
404
+ </child>
405
+ <child type="label">
406
+ <object class="GtkLabel" id="label1">
407
+ <property name="visible">True</property>
408
+ <property name="can_focus">False</property>
409
+ <property name="label" translatable="yes">&lt;b&gt;celltypes&lt;/b&gt;</property>
410
+ <property name="use_markup">True</property>
411
+ </object>
412
+ </child>
413
+ </object>
414
+ <packing>
415
+ <property name="expand">True</property>
416
+ <property name="fill">True</property>
417
+ <property name="position">2</property>
418
+ </packing>
419
+ </child>
420
+ <child>
421
+ <object class="GtkFrame" id="frame_cell">
422
+ <property name="visible">True</property>
423
+ <property name="can_focus">False</property>
424
+ <property name="label_xalign">0</property>
425
+ <property name="shadow_type">in</property>
426
+ <child>
427
+ <object class="GtkAlignment" id="alignment3">
428
+ <property name="visible">True</property>
429
+ <property name="can_focus">False</property>
430
+ <property name="left_padding">12</property>
431
+ <child>
432
+ <object class="GtkVBox" id="vbox3">
433
+ <property name="visible">True</property>
434
+ <property name="can_focus">False</property>
435
+ <child>
436
+ <object class="GtkHBox" id="hbox1">
437
+ <property name="visible">True</property>
438
+ <property name="can_focus">False</property>
439
+ <child>
440
+ <object class="GtkLabel" id="label3">
441
+ <property name="visible">True</property>
442
+ <property name="can_focus">False</property>
443
+ <property name="xpad">10</property>
444
+ <property name="label" translatable="yes">name</property>
445
+ </object>
446
+ <packing>
447
+ <property name="expand">False</property>
448
+ <property name="fill">True</property>
449
+ <property name="position">0</property>
450
+ </packing>
451
+ </child>
452
+ <child>
453
+ <object class="GtkEntry" id="entry_cell_name">
454
+ <property name="visible">True</property>
455
+ <property name="can_focus">True</property>
456
+ <property name="invisible_char">●</property>
457
+ <property name="primary_icon_activatable">False</property>
458
+ <property name="secondary_icon_activatable">False</property>
459
+ <property name="primary_icon_sensitive">True</property>
460
+ <property name="secondary_icon_sensitive">True</property>
461
+ </object>
462
+ <packing>
463
+ <property name="expand">True</property>
464
+ <property name="fill">True</property>
465
+ <property name="position">1</property>
466
+ </packing>
467
+ </child>
468
+ </object>
469
+ <packing>
470
+ <property name="expand">False</property>
471
+ <property name="fill">True</property>
472
+ <property name="position">0</property>
473
+ </packing>
474
+ </child>
475
+ <child>
476
+ <object class="GtkHBox" id="hbox5">
477
+ <property name="visible">True</property>
478
+ <property name="can_focus">False</property>
479
+ <child>
480
+ <object class="GtkLabel" id="label6">
481
+ <property name="visible">True</property>
482
+ <property name="can_focus">False</property>
483
+ <property name="xalign">0.4699999988079071</property>
484
+ <property name="xpad">10</property>
485
+ <property name="label" translatable="yes">region: </property>
486
+ </object>
487
+ <packing>
488
+ <property name="expand">False</property>
489
+ <property name="fill">True</property>
490
+ <property name="position">0</property>
491
+ </packing>
492
+ </child>
493
+ <child>
494
+ <object class="GtkEntry" id="entry_cell_region">
495
+ <property name="visible">True</property>
496
+ <property name="can_focus">True</property>
497
+ <property name="invisible_char">●</property>
498
+ <property name="invisible_char_set">True</property>
499
+ <property name="primary_icon_activatable">False</property>
500
+ <property name="secondary_icon_activatable">False</property>
501
+ <property name="primary_icon_sensitive">True</property>
502
+ <property name="secondary_icon_sensitive">True</property>
503
+ </object>
504
+ <packing>
505
+ <property name="expand">True</property>
506
+ <property name="fill">True</property>
507
+ <property name="position">1</property>
508
+ </packing>
509
+ </child>
510
+ </object>
511
+ <packing>
512
+ <property name="expand">True</property>
513
+ <property name="fill">True</property>
514
+ <property name="position">1</property>
515
+ </packing>
516
+ </child>
517
+ <child>
518
+ <object class="GtkTreeView" id="treeview_cell_attribute">
519
+ <property name="width_request">150</property>
520
+ <property name="height_request">150</property>
521
+ <property name="visible">True</property>
522
+ <property name="can_focus">True</property>
523
+ <property name="model">liststore_cell_attribute</property>
524
+ </object>
525
+ <packing>
526
+ <property name="expand">True</property>
527
+ <property name="fill">True</property>
528
+ <property name="position">2</property>
529
+ </packing>
530
+ </child>
531
+ </object>
532
+ </child>
533
+ </object>
534
+ </child>
535
+ <child type="label">
536
+ <object class="GtkLabel" id="label_cell_fram">
537
+ <property name="visible">True</property>
538
+ <property name="can_focus">False</property>
539
+ <property name="label" translatable="yes">&lt;b&gt;cell&lt;/b&gt;</property>
540
+ <property name="use_markup">True</property>
541
+ </object>
542
+ </child>
543
+ </object>
544
+ <packing>
545
+ <property name="expand">True</property>
546
+ <property name="fill">True</property>
547
+ <property name="position">3</property>
548
+ </packing>
549
+ </child>
550
+ </object>
551
+ </child>
552
+ </object>
553
+ </interface>