mcc2 1.5.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.autotest +23 -0
- data/.gitignore +15 -0
- data/.rubocop.yml +3 -0
- data/Gemfile +13 -0
- data/History.txt +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +51 -0
- data/Rakefile +12 -0
- data/config/i18n-tasks.yml +193 -0
- data/exe/mcc2 +18 -0
- data/exe/mcc2-generate-preview +17 -0
- data/exe/mcc2print +6 -0
- data/lib/libguib16.rb +1620 -0
- data/lib/mcc2/advanced_data_edit_dlg.rb +139 -0
- data/lib/mcc2/cc_dialogbox.rb +52 -0
- data/lib/mcc2/constants.rb +154 -0
- data/lib/mcc2/dataman/base.rb +61 -0
- data/lib/mcc2/dataman/csv.rb +49 -0
- data/lib/mcc2/dataman/database.rb +8 -0
- data/lib/mcc2/dataman/dbf.rb +45 -0
- data/lib/mcc2/dataman/none.rb +25 -0
- data/lib/mcc2/dataview.rb +348 -0
- data/lib/mcc2/dataview_dlg.rb +232 -0
- data/lib/mcc2/debug_tools.rb +20 -0
- data/lib/mcc2/fx_colored_item.rb +101 -0
- data/lib/mcc2/generate_preview.rb +68 -0
- data/lib/mcc2/gui/advanced_data_edit_dlg.rbin +0 -0
- data/lib/mcc2/gui/dataview_dlg.pp +522 -0
- data/lib/mcc2/gui/layoutview_dlg.pp +5115 -0
- data/lib/mcc2/gui/mcc2_mainwin.pp +838 -0
- data/lib/mcc2/gui/picture_data_edit_dlg.rbin +0 -0
- data/lib/mcc2/gui/printerview_dlg.pp +3311 -0
- data/lib/mcc2/images/Image-Arrow-Left.gif +0 -0
- data/lib/mcc2/images/Image-Arrow-Right.gif +0 -0
- data/lib/mcc2/images/Image-FastArrowLeft.gif +0 -0
- data/lib/mcc2/images/Image-FastArrowRight.bmp +0 -0
- data/lib/mcc2/images/Image-FastArrowRight.gif +0 -0
- data/lib/mcc2/images/application-exit.png +0 -0
- data/lib/mcc2/images/copy.png +0 -0
- data/lib/mcc2/images/country_de.png +0 -0
- data/lib/mcc2/images/country_gb.png +0 -0
- data/lib/mcc2/images/country_rs.png +0 -0
- data/lib/mcc2/images/cut.png +0 -0
- data/lib/mcc2/images/distribute-horizontal-baseline.png +0 -0
- data/lib/mcc2/images/distribute-vertical-baseline.png +0 -0
- data/lib/mcc2/images/document-close.png +0 -0
- data/lib/mcc2/images/document-edit.png +0 -0
- data/lib/mcc2/images/document-new.png +0 -0
- data/lib/mcc2/images/document-open.png +0 -0
- data/lib/mcc2/images/document-print-frame.png +0 -0
- data/lib/mcc2/images/document-print.png +0 -0
- data/lib/mcc2/images/document-save-as.png +0 -0
- data/lib/mcc2/images/document-save.png +0 -0
- data/lib/mcc2/images/documentation.png +0 -0
- data/lib/mcc2/images/draw-rectangle.png +0 -0
- data/lib/mcc2/images/dummy.gif +0 -0
- data/lib/mcc2/images/exchange-positions.png +0 -0
- data/lib/mcc2/images/insert-image.png +0 -0
- data/lib/mcc2/images/insert-text.png +0 -0
- data/lib/mcc2/images/libreoffice-oasis-master-document.png +0 -0
- data/lib/mcc2/images/measure.png +0 -0
- data/lib/mcc2/images/messagebox_warning.png +0 -0
- data/lib/mcc2/images/paste.png +0 -0
- data/lib/mcc2/images/process-stop.png +0 -0
- data/lib/mcc2/images/zoom-in.png +0 -0
- data/lib/mcc2/layout.rb +323 -0
- data/lib/mcc2/layout_file.rb +794 -0
- data/lib/mcc2/layout_object/barcode.rb +33 -0
- data/lib/mcc2/layout_object/box.rb +18 -0
- data/lib/mcc2/layout_object/chip.rb +54 -0
- data/lib/mcc2/layout_object/embed.rb +16 -0
- data/lib/mcc2/layout_object/go_attribut.rb +16 -0
- data/lib/mcc2/layout_object/graphic.rb +59 -0
- data/lib/mcc2/layout_object/magstripe.rb +13 -0
- data/lib/mcc2/layout_object/picture.rb +22 -0
- data/lib/mcc2/layout_object/text.rb +29 -0
- data/lib/mcc2/layout_win.rb +2052 -0
- data/lib/mcc2/layoutview.rb +845 -0
- data/lib/mcc2/layoutview_dlg.rb +2058 -0
- data/lib/mcc2/locales.rb +27 -0
- data/lib/mcc2/mcc2_mainwin.rb +453 -0
- data/lib/mcc2/mcc2gui.rb +295 -0
- data/lib/mcc2/mcc2print.rb +54 -0
- data/lib/mcc2/picture_data_edit_dlg.rb +139 -0
- data/lib/mcc2/print_dlg.rb +520 -0
- data/lib/mcc2/printer/base.rb +148 -0
- data/lib/mcc2/printer/card_printer.rb +45 -0
- data/lib/mcc2/printer/file_printer.rb +135 -0
- data/lib/mcc2/printer/gdi_card_printer.rb +14 -0
- data/lib/mcc2/printer/gdi_printer.rb +197 -0
- data/lib/mcc2/printer/linux_cups_printer.rb +92 -0
- data/lib/mcc2/printer/preview.rb +277 -0
- data/lib/mcc2/printer/printer_cab.rb +118 -0
- data/lib/mcc2/printer/printer_cx320_direct.rb +286 -0
- data/lib/mcc2/printer/printer_epl.rb +118 -0
- data/lib/mcc2/printer/printer_ttp34x.rb +124 -0
- data/lib/mcc2/printer/printer_zebra.rb +324 -0
- data/lib/mcc2/printer/svg_drawer.rb +689 -0
- data/lib/mcc2/printerview.rb +604 -0
- data/lib/mcc2/printerview_dlg.rb +1248 -0
- data/lib/mcc2/version.rb +3 -0
- data/lib/mcc2.rb +11 -0
- data/locales/de.yml +6 -0
- data/locales/en.yml +502 -0
- data/locales/rs.yml +502 -0
- data/mcc2.gemspec +41 -0
- data/test/dummy.rb +19 -0
- data/test/layouts/bart_simpson.png +0 -0
- data/test/layouts/color_test.xml +151 -0
- data/test/layouts/ms.xml +67 -0
- data/test/ruby_print.rb +380 -0
- data/test/test.csv +4 -0
- data/test/test.dbf +0 -0
- data/test/test.str +4 -0
- data/test/test_mcc2.rb +8 -0
- data.tar.gz.sig +6 -0
- metadata +421 -0
- metadata.gz.sig +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/lib/mcc2/layout.rb
ADDED
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
require "mcc2/cc_dialogbox"
|
|
2
|
+
require "mcc2/layout_file"
|
|
3
|
+
require "mcc2/layoutview"
|
|
4
|
+
require "mcc2/dataview"
|
|
5
|
+
require "mcc2/printerview"
|
|
6
|
+
require "mcc2/printer/preview"
|
|
7
|
+
|
|
8
|
+
module Mcc2
|
|
9
|
+
# definiert ein Clientfenster mit allen Einstellungen und Attributen, die für ein bestimmtes Kartenlayout benötigt werden
|
|
10
|
+
class Layout
|
|
11
|
+
include Fox
|
|
12
|
+
|
|
13
|
+
# enthält die kompletten Einstellungen des Kartenlayouts
|
|
14
|
+
attr_reader :layout_file
|
|
15
|
+
|
|
16
|
+
# der Datamanager
|
|
17
|
+
attr_accessor :dataman
|
|
18
|
+
|
|
19
|
+
#---------------------------------------------------------------------------------------------------------
|
|
20
|
+
|
|
21
|
+
# initialisiert zusätzliche Elemente im Layout-Dialog, die nicht oder schlecht im Fox-GUI-Builder erzeugt werden können
|
|
22
|
+
# setzt Parameter bei Dialog-Elementen
|
|
23
|
+
# definiert die Aktionen, welche bei bestimmten Ereignissen auf bestimmten Elementen des Dialogs ausgeführt werden sollen
|
|
24
|
+
# ==== Parameter
|
|
25
|
+
# +parent+:: parent-fx-window
|
|
26
|
+
def initialize(parent, mdititle, filename: nil, xpath_changes: {}, new_file: false)
|
|
27
|
+
@parent = parent
|
|
28
|
+
@mdititle = mdititle
|
|
29
|
+
begin
|
|
30
|
+
require "ruby-zint"
|
|
31
|
+
rescue LoadError => e
|
|
32
|
+
puts "Loading barcode driver failed: #{e}"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# avoid warnings to uninit values
|
|
36
|
+
@preview = nil
|
|
37
|
+
|
|
38
|
+
close_dataman
|
|
39
|
+
|
|
40
|
+
FXSplitter.new(parent) do |splitter1|
|
|
41
|
+
@fxtabbook = FXTabBook.new(splitter1) do |tabbook|
|
|
42
|
+
# %w[SEL_MAP SEL_CONFIGURE SEL_ENTER SEL_FOCUSIN SEL_UPDATE SEL_UNGRABBED SEL_COMMAND].each{|se|
|
|
43
|
+
# tabbook.connect(Fox.const_get(se)){|sender, sel, event|
|
|
44
|
+
# puts "#{se}: #{sender}, #{sel}, #{event}"
|
|
45
|
+
# }
|
|
46
|
+
# }
|
|
47
|
+
tabbook.connect(SEL_COMMAND) do |sender, sel, event|
|
|
48
|
+
@layoutview.layoutview_tab_activated(event == 0)
|
|
49
|
+
@printerview.printerview_tab_activated(event == 1)
|
|
50
|
+
@dataview.dataview_tab_activated(event == 2)
|
|
51
|
+
end
|
|
52
|
+
FX::TabItem.new(tabbook) do |tabitem_layoutview|
|
|
53
|
+
tabitem_layoutview.text = I18n.t(:tab_layout_header, default: "&Entwurf")
|
|
54
|
+
tabitem_layoutview.img = "mcc2/images/document-edit.png"
|
|
55
|
+
end
|
|
56
|
+
FXVerticalFrame.new(tabbook) do |frame_layoutview|
|
|
57
|
+
@layoutview = Layoutview.new frame_layoutview, self
|
|
58
|
+
end
|
|
59
|
+
FX::TabItem.new(tabbook) do |tabitem_printerview|
|
|
60
|
+
tabitem_printerview.text = I18n.t(:tab_printer_header, default: "D&rucker")
|
|
61
|
+
tabitem_printerview.img = "mcc2/images/document-print.png"
|
|
62
|
+
end
|
|
63
|
+
FXVerticalFrame.new(tabbook) do |frame_printerview|
|
|
64
|
+
@printerview = Printerview.new frame_printerview, self
|
|
65
|
+
end
|
|
66
|
+
FX::TabItem.new(tabbook) do |tabitem_dataview|
|
|
67
|
+
tabitem_dataview.text = I18n.t(:tab_data_header, default: "Da&ten")
|
|
68
|
+
tabitem_dataview.img = "mcc2/images/documentation.png"
|
|
69
|
+
end
|
|
70
|
+
FXVerticalFrame.new(tabbook) do |frame_dataview|
|
|
71
|
+
@dataview = Dataview.new frame_dataview, self
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
FXVerticalFrame.new(splitter1) do |frame_preview|
|
|
75
|
+
@preview = Printer::Preview.new(frame_preview, self)
|
|
76
|
+
end
|
|
77
|
+
splitter1.setSplit(0, 400 * $gui_scale)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
@parent.connect(SEL_CLOSE) do |sender, selector, data|
|
|
81
|
+
can_close? ? 0 : 1
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
if new_file
|
|
85
|
+
create_xml(filename, xpath_changes)
|
|
86
|
+
else
|
|
87
|
+
load_from_xml(filename, xpath_changes)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
draw_preview(true)
|
|
91
|
+
set_title
|
|
92
|
+
end
|
|
93
|
+
#---------------------------------------------------------------------------------------------------------
|
|
94
|
+
|
|
95
|
+
# schließt den Datenmanager
|
|
96
|
+
def close_dataman
|
|
97
|
+
@dataman = nil
|
|
98
|
+
@current_dataman_settings = {}
|
|
99
|
+
end
|
|
100
|
+
#---------------------------------------------------------------------------------------------------------
|
|
101
|
+
|
|
102
|
+
DatamanAttributes = [S_DATASOURCE, S_DATASOURCETYP, S_DATASOURCEENCODING]
|
|
103
|
+
|
|
104
|
+
# erzeugt einen Datenmanager abhängig davon welcher Datensourcetyp im Layout definiert ist (momentan DATABASE oder CSV)
|
|
105
|
+
def open_dataman
|
|
106
|
+
@dataman = @layout_file.build_dataman_instance
|
|
107
|
+
@dataview.dataman = @dataman
|
|
108
|
+
|
|
109
|
+
@current_dataman_settings = DatamanAttributes.each_with_object({}) do |a, s|
|
|
110
|
+
s[a] = @layout_file.get_attr_value(a)
|
|
111
|
+
end
|
|
112
|
+
rescue => e
|
|
113
|
+
FXMessageBox.error(@parent.app, MBOX_OK, *I18n.t(:dataman_error_at_open_dataman, default: [["Fehler bei Datenverbindung", "Die Datenverbindung konnte nicht hergestellt werden.\n\n%{e}"]], e: ))
|
|
114
|
+
end
|
|
115
|
+
#---------------------------------------------------------------------------------------------------------
|
|
116
|
+
|
|
117
|
+
# sollte jedesmal dann aufgerufen werden, wenn ein Attribut des Layouts geändert wurde
|
|
118
|
+
# es wird das changed-Flag gesetzt und der Titel aktualisiert und die Vorschau neu gezeichnet
|
|
119
|
+
def changed_attributes
|
|
120
|
+
set_title
|
|
121
|
+
|
|
122
|
+
# Any datasource related values changed? -> reopen
|
|
123
|
+
if DatamanAttributes.find { |a| @current_dataman_settings[a] != @layout_file.get_attr_value(a) }
|
|
124
|
+
close_dataman
|
|
125
|
+
open_dataman
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def filename=(string)
|
|
130
|
+
@layout_file.filename = string
|
|
131
|
+
set_title
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# aktualisiert den Titel des Layout-Fensters
|
|
135
|
+
# es werden eingetragen
|
|
136
|
+
# * der Dateiname des Layouts
|
|
137
|
+
# * die verbunden Datenquelle (coming soon)
|
|
138
|
+
# * ein Zeichen *, ob das Layout seit dem letzten Laden oder Speichern geändert wurde
|
|
139
|
+
private def set_title
|
|
140
|
+
@parent.title = "#{@layout_file.filename} #{@layout_file.changed? ? " *" : ""}"
|
|
141
|
+
@mdititle.text = @parent.title
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# speichert alle GraphicObjekte und Layout-Einstellungen im XML-File
|
|
145
|
+
def store_to_xml(filename_dialog = false)
|
|
146
|
+
if filename_dialog || !@layout_file.filename
|
|
147
|
+
dest = @layout_file.expand_path(@layout_file.filename.to_s.empty? ? "./" : @layout_file.filename)
|
|
148
|
+
fn = FXFileDialog.getSaveFilename(@parent, I18n.t(:save_layout_file_dialog_caption, default: "Speichern"), dest, "*.mcc2,*.xml", 0)
|
|
149
|
+
return if fn.empty?
|
|
150
|
+
unless ["mcc2", "xml"].include?(fn.split(".")[-1].downcase)
|
|
151
|
+
fn = "#{fn}.mcc2"
|
|
152
|
+
end
|
|
153
|
+
@layout_file.filename = fn
|
|
154
|
+
end
|
|
155
|
+
@layout_file.save
|
|
156
|
+
set_title
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def can_close?
|
|
160
|
+
return true if !@layout_file.changed?
|
|
161
|
+
|
|
162
|
+
res = FXMessageBox.question(@parent.app, MBOX_YES_NO_CANCEL, *I18n.t(:save_layout_file_dialog_question, default: [["Datei speichern", "Datei %{filename} speichern ?"]], filename: @layout_file.filename))
|
|
163
|
+
case res
|
|
164
|
+
when MBOX_CLICKED_YES
|
|
165
|
+
store_to_xml
|
|
166
|
+
@layout_file.changed? ? false : true
|
|
167
|
+
when MBOX_CLICKED_NO
|
|
168
|
+
true
|
|
169
|
+
when MBOX_CLICKED_CANCEL
|
|
170
|
+
false
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def load_from_xml(filename, xpath_changes)
|
|
175
|
+
lf = LayoutFile.load_from_xml(filename, xpath_changes)
|
|
176
|
+
self.layout_file = lf
|
|
177
|
+
unless layout_file.warnings.empty?
|
|
178
|
+
wa = layout_file.warnings.join("\n\n")
|
|
179
|
+
|
|
180
|
+
msg_box = FXMessageBox.new(@parent.app, I18n.t(:open_layout_file_warning, default: "Warnung beim Laden von %{filename}", filename:), wa, opts: MBOX_OK, ic: loadImage("mcc2/images/messagebox_warning.png"))
|
|
181
|
+
msg_box.create if @parent.created?
|
|
182
|
+
msg_box.show(PLACEMENT_OWNER)
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def layout_file=(layout_file)
|
|
187
|
+
@layout_file = layout_file
|
|
188
|
+
@preview.layout_file = layout_file
|
|
189
|
+
@layoutview.layout_file = layout_file
|
|
190
|
+
@dataview.layout_file = layout_file
|
|
191
|
+
@printerview.layout_file = layout_file
|
|
192
|
+
open_dataman
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def selected_object_ids=(ids)
|
|
196
|
+
@layoutview.selected_object_ids = ids
|
|
197
|
+
@preview.selected_object_ids = ids if @preview
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def create_xml(filename, xpath_changes)
|
|
201
|
+
layout_file = LayoutFile.create_xml(filename, xpath_changes)
|
|
202
|
+
self.layout_file = layout_file
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def add_object(typ)
|
|
206
|
+
@layoutview.manage_objects(ADD, typ)
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
def move_selected(x, y, modifier)
|
|
210
|
+
@layoutview.move_selected(x, y, modifier)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def clipboard_action(action)
|
|
214
|
+
@layoutview.clipboard_action(action)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
#---------------------------------------------------------------------------------------------------------
|
|
218
|
+
|
|
219
|
+
def draw_preview_with_row row, immediately = false
|
|
220
|
+
return unless @preview
|
|
221
|
+
@row = row
|
|
222
|
+
@preview.draw_preview immediately, @row
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
def draw_preview immediately = false
|
|
226
|
+
return unless @preview
|
|
227
|
+
@preview.draw_preview immediately, nil
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def set_focus(to)
|
|
231
|
+
case to
|
|
232
|
+
when :preview
|
|
233
|
+
@preview.set_focus(to)
|
|
234
|
+
when :layout
|
|
235
|
+
@fxtabbook.setCurrent(0, true)
|
|
236
|
+
else
|
|
237
|
+
raise "set_focus(#{to}) is not defined"
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
def connect_filebutton_to_textfield(button, textfield, filepatterns: "*")
|
|
242
|
+
button.connect(SEL_COMMAND) do
|
|
243
|
+
if textfield.enabled?
|
|
244
|
+
execute_filedialog_for_textfield(textfield, filepatterns: filepatterns)
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
add_tipText_to_filedialog_for_textfield(textfield)
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
def add_tipText_to_filedialog_for_textfield(textfield)
|
|
251
|
+
textfield.tipText += I18n.t(:filepath_textfield_tip, default: <<~EOT)
|
|
252
|
+
Folgende Ersetzungszeichen können verwendet werden:
|
|
253
|
+
%D - Pfad der aktuellen Layoutdatei
|
|
254
|
+
%F - Name der aktuellen Layoutdatei ohne ".mcc2"
|
|
255
|
+
~ - Benutzerverzeichnis
|
|
256
|
+
relativer Pfad - aktuelles Verzeichnis in dem MCC2 gestartet wurde
|
|
257
|
+
EOT
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def execute_filedialog_for_textfield(textfield, filepatterns: "*")
|
|
261
|
+
filepatterns = filepatterns.join("\n") if filepatterns.is_a?(Array)
|
|
262
|
+
lds = textfield.text
|
|
263
|
+
|
|
264
|
+
# Aktuellen File-Pattern auswählen
|
|
265
|
+
if lds =~ /(\.\w+?)$/i
|
|
266
|
+
ext = $1
|
|
267
|
+
pat_idx = nil
|
|
268
|
+
filepatterns.split("\n").each_with_index do |pat, idx|
|
|
269
|
+
if pat =~ /\*#{ext}/i || pat =~ /(\(\*\))/
|
|
270
|
+
pat_idx = idx
|
|
271
|
+
break
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
# Aktuelles Verzeichnis auswählen (oder Default: Verzeichnis der Layoutdatei)
|
|
277
|
+
dest = @layout_file.expand_path(lds.to_s.empty? ? "%D/" : lds)
|
|
278
|
+
|
|
279
|
+
s = FXFileDialog.getOpenFilename(textfield, textfield.tipText, dest, filepatterns, pat_idx || 0)
|
|
280
|
+
unless s.empty?
|
|
281
|
+
s = @layout_file.shrink_path(s)
|
|
282
|
+
textfield.setText(s, true)
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
def self.set_combobox_by_data(combobox, dataval, notify = true)
|
|
287
|
+
idx = -1
|
|
288
|
+
if combobox.find { |text, data|
|
|
289
|
+
idx += 1
|
|
290
|
+
data == dataval
|
|
291
|
+
}
|
|
292
|
+
combobox.setCurrentItem(idx, notify)
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
# *****************************************************************************
|
|
299
|
+
# Main
|
|
300
|
+
|
|
301
|
+
if __FILE__ == $0
|
|
302
|
+
|
|
303
|
+
system("ruby mcc2.rb #{ARGV}")
|
|
304
|
+
exit
|
|
305
|
+
lay = Layout.new(nil, nil)
|
|
306
|
+
|
|
307
|
+
# ...........................................................
|
|
308
|
+
# Test für das Erstellen einer neune XML-Datei
|
|
309
|
+
lay.filename = 't:\Project\MCC2a\trunk\layouts\test1.xml'
|
|
310
|
+
lay.load_from_xml
|
|
311
|
+
# ...........................................................
|
|
312
|
+
# Test für das Erstellen einer neune XML-Datei
|
|
313
|
+
# ~ lay.create_xml
|
|
314
|
+
|
|
315
|
+
# ~ lay.add_object(TEXTOBJECT)
|
|
316
|
+
# ~ lay.add_object(BARCODEOBJECT)
|
|
317
|
+
# ~ lay.add_object(PICTUREOBJECT)
|
|
318
|
+
# ~ lay.add_object(TEXTOBJECT)
|
|
319
|
+
# ~ lay.add_object(BARCODEOBJECT)
|
|
320
|
+
# ~ lay.add_object(TEXTOBJECT)
|
|
321
|
+
|
|
322
|
+
print lay.xml_doc
|
|
323
|
+
end
|