summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 15:18:56 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 15:18:56 +0000
commitc25ec0608a167bcf1d891043f02273761c351701 (patch)
tree32c3e19f0b663e37ad1910e8fddeac200ad3856d
initial import
-rw-r--r--basic/inc/basrid.hxx75
-rw-r--r--basic/inc/sb.hrc81
-rw-r--r--basic/inc/sb.hxx76
-rw-r--r--basic/inc/testtool.hrc70
-rw-r--r--basic/inc/ttmsg.hrc147
-rw-r--r--basic/prj/d.lst44
-rw-r--r--basic/source/app/app.cxx1580
-rw-r--r--basic/source/app/app.hxx228
-rw-r--r--basic/source/app/appbased.cxx338
-rw-r--r--basic/source/app/appbased.hxx108
-rw-r--r--basic/source/app/appedit.cxx286
-rw-r--r--basic/source/app/appedit.hxx101
-rw-r--r--basic/source/app/apperror.cxx115
-rw-r--r--basic/source/app/apperror.hxx81
-rw-r--r--basic/source/app/appwin.cxx647
-rw-r--r--basic/source/app/appwin.hxx175
-rw-r--r--basic/source/app/basic.hrc218
-rw-r--r--basic/source/app/basic.src4089
-rw-r--r--basic/source/app/basicrt.cxx163
-rw-r--r--basic/source/app/basmsg.hrc79
-rw-r--r--basic/source/app/basmsg.src142
-rw-r--r--basic/source/app/brkpnts.cxx434
-rw-r--r--basic/source/app/brkpnts.hxx130
-rw-r--r--basic/source/app/dataedit.hxx155
-rw-r--r--basic/source/app/dialogs.cxx1064
-rw-r--r--basic/source/app/dialogs.hxx307
-rw-r--r--basic/source/app/makefile.mk164
-rw-r--r--basic/source/app/msgedit.cxx858
-rw-r--r--basic/source/app/msgedit.hxx134
-rw-r--r--basic/source/app/mybasic.cxx330
-rw-r--r--basic/source/app/printer.cxx216
-rw-r--r--basic/source/app/printer.hxx92
-rw-r--r--basic/source/app/process.cxx222
-rw-r--r--basic/source/app/processw.cxx324
-rw-r--r--basic/source/app/processw.hxx131
-rw-r--r--basic/source/app/resids.hrc148
-rw-r--r--basic/source/app/status.cxx157
-rw-r--r--basic/source/app/status.hxx93
-rw-r--r--basic/source/app/svtmsg.src1330
-rw-r--r--basic/source/app/testbasi.cxx62
-rw-r--r--basic/source/app/testtool.idl81
-rw-r--r--basic/source/app/testtool.src221
-rw-r--r--basic/source/app/textedit.cxx898
-rw-r--r--basic/source/app/textedit.hxx178
-rw-r--r--basic/source/app/ttbasic.cxx66
-rw-r--r--basic/source/app/ttbasic.hxx66
-rw-r--r--basic/source/app/ttmsg.src659
-rw-r--r--basic/source/basmgr/basmgr.cxx71
-rw-r--r--basic/source/basmgr/makefile.mk82
-rw-r--r--basic/source/classes/disas.cxx701
-rw-r--r--basic/source/classes/image.cxx431
-rw-r--r--basic/source/classes/makefile.mk93
-rw-r--r--basic/source/classes/propacc.cxx435
-rw-r--r--basic/source/classes/sb.cxx1028
-rw-r--r--basic/source/classes/sb.src3747
-rw-r--r--basic/source/classes/sbintern.cxx109
-rw-r--r--basic/source/classes/sbunoobj.cxx2500
-rw-r--r--basic/source/classes/sbxmod.cxx1984
-rw-r--r--basic/source/comp/buffer.cxx253
-rw-r--r--basic/source/comp/codegen.cxx241
-rw-r--r--basic/source/comp/dim.cxx792
-rw-r--r--basic/source/comp/exprgen.cxx273
-rw-r--r--basic/source/comp/exprnode.cxx497
-rw-r--r--basic/source/comp/exprtree.cxx971
-rw-r--r--basic/source/comp/io.cxx353
-rw-r--r--basic/source/comp/loops.cxx561
-rw-r--r--basic/source/comp/makefile.mk106
-rw-r--r--basic/source/comp/parser.cxx774
-rw-r--r--basic/source/comp/sbcomp.cxx138
-rw-r--r--basic/source/comp/scanner.cxx501
-rw-r--r--basic/source/comp/symtbl.cxx528
-rw-r--r--basic/source/comp/token.cxx689
-rw-r--r--basic/source/inc/buffer.hxx98
-rw-r--r--basic/source/inc/codegen.hxx101
-rw-r--r--basic/source/inc/collelem.hxx83
-rw-r--r--basic/source/inc/disas.hxx106
-rw-r--r--basic/source/inc/expr.hxx255
-rw-r--r--basic/source/inc/filefmt.hxx207
-rw-r--r--basic/source/inc/image.hxx123
-rw-r--r--basic/source/inc/iosys.hxx149
-rw-r--r--basic/source/inc/object.hxx137
-rw-r--r--basic/source/inc/opcodes.hxx191
-rw-r--r--basic/source/inc/parser.hxx192
-rw-r--r--basic/source/inc/propacc.hxx235
-rw-r--r--basic/source/inc/runtime.hxx473
-rw-r--r--basic/source/inc/sbcomp.hxx72
-rw-r--r--basic/source/inc/sbintern.hxx131
-rw-r--r--basic/source/inc/sbjsmeth.hxx89
-rw-r--r--basic/source/inc/sbjsmod.hxx84
-rw-r--r--basic/source/inc/sbunoobj.hxx226
-rw-r--r--basic/source/inc/scanner.hxx136
-rw-r--r--basic/source/inc/stdobj.hxx86
-rw-r--r--basic/source/inc/symtbl.hxx266
-rw-r--r--basic/source/inc/token.hxx199
-rw-r--r--basic/source/runtime/basrdll.cxx141
-rw-r--r--basic/source/runtime/ddectrl.cxx232
-rw-r--r--basic/source/runtime/ddectrl.hxx102
-rw-r--r--basic/source/runtime/dllmgr.cxx702
-rw-r--r--basic/source/runtime/dllmgr.hxx135
-rw-r--r--basic/source/runtime/inputbox.cxx247
-rw-r--r--basic/source/runtime/iosys.cxx1257
-rw-r--r--basic/source/runtime/makefile.mk116
-rw-r--r--basic/source/runtime/methods.cxx3228
-rw-r--r--basic/source/runtime/methods1.cxx1266
-rw-r--r--basic/source/runtime/os2.asm89
-rw-r--r--basic/source/runtime/props.cxx504
-rw-r--r--basic/source/runtime/rtlproto.hxx354
-rw-r--r--basic/source/runtime/runtime.cxx934
-rw-r--r--basic/source/runtime/stdobj.cxx729
-rw-r--r--basic/source/runtime/stdobj1.cxx547
-rw-r--r--basic/source/runtime/step0.cxx799
-rw-r--r--basic/source/runtime/step1.cxx423
-rw-r--r--basic/source/runtime/step2.cxx960
-rw-r--r--basic/source/runtime/win.asm72
-rw-r--r--basic/source/runtime/wnt.asm84
-rw-r--r--basic/source/sample/collelem.cxx120
-rw-r--r--basic/source/sample/makefile.mk95
-rw-r--r--basic/source/sample/object.cxx319
-rw-r--r--basic/source/sample/sample.bas39
-rw-r--r--basic/util/makefile.mk363
-rw-r--r--basic/win/res/basic.icobin0 -> 766 bytes
-rw-r--r--basic/win/res/testtool.icobin0 -> 766 bytes
-rw-r--r--basic/win/res/work.icobin0 -> 766 bytes
-rw-r--r--basic/workben/basmgr.src65
-rw-r--r--basic/workben/makefile.mk221
-rw-r--r--basic/workben/mgrtest.cxx644
-rw-r--r--configmgr/prj/d.lst9
-rw-r--r--configmgr/source/api/confeventhelpers.cxx484
-rw-r--r--configmgr/source/api/confeventhelpers.hxx248
-rw-r--r--configmgr/source/api/confevents.cxx410
-rw-r--r--configmgr/source/api/confsvccomponent.cxx181
-rw-r--r--configmgr/source/api/makefile.mk102
-rw-r--r--configmgr/source/cmdtools/makefile.mk121
-rw-r--r--configmgr/source/inc/attributes.hxx116
-rw-r--r--configmgr/source/inc/bootstrap.hxx111
-rw-r--r--configmgr/source/inc/commontypes.hxx129
-rw-r--r--configmgr/source/inc/confapifactory.hxx105
-rw-r--r--configmgr/source/inc/confevents.hxx211
-rw-r--r--configmgr/source/inc/confsvccomponent.hxx139
-rw-r--r--configmgr/source/inc/filehelper.hxx84
-rw-r--r--configmgr/source/inc/oslstream.hxx149
-rw-r--r--configmgr/source/inc/strdecl.hxx113
-rw-r--r--configmgr/source/inc/strings.hxx112
-rw-r--r--configmgr/source/inc/tracer.hxx180
-rw-r--r--configmgr/source/inc/treeactions.hxx111
-rw-r--r--configmgr/source/inc/typeconverter.hxx112
-rw-r--r--configmgr/source/misc/configunoreg.cxx490
-rw-r--r--configmgr/source/misc/filehelper.cxx320
-rw-r--r--configmgr/source/misc/makefile.mk100
-rw-r--r--configmgr/source/misc/oslstream.cxx239
-rw-r--r--configmgr/source/misc/strimpl.cxx124
-rw-r--r--configmgr/source/misc/tracer.cxx396
-rw-r--r--configmgr/source/registry/cfgregistrykey.cxx783
-rw-r--r--configmgr/source/registry/cfgregistrykey.hxx256
-rw-r--r--configmgr/source/registry/configregistry.cxx344
-rw-r--r--configmgr/source/registry/configregistry.hxx175
-rw-r--r--configmgr/source/registry/makefile.mk82
-rw-r--r--configmgr/source/tree/changes.cxx194
-rw-r--r--configmgr/source/tree/cmtree.cxx719
-rw-r--r--configmgr/source/tree/cmtreemodel.cxx323
-rw-r--r--configmgr/source/tree/makefile.mk89
-rw-r--r--configmgr/source/treecache/makefile.mk83
-rw-r--r--configmgr/source/xml/makefile.mk92
-rw-r--r--configmgr/source/xml/typeconverter.cxx362
-rw-r--r--configmgr/util/exports.dxp3
-rw-r--r--configmgr/util/makefile.mk106
-rw-r--r--configmgr/version.mk81
-rw-r--r--configmgr/workben/apitest/cfgadduser.cxx409
-rw-r--r--configmgr/workben/apitest/cfgapi.cxx496
-rw-r--r--configmgr/workben/apitest/cfgregistry.cxx226
-rw-r--r--configmgr/workben/apitest/makefile.mk133
-rw-r--r--configmgr/workben/apitest/sregistry8
-rw-r--r--configmgr/workben/local_io/cfgfile.cxx111
-rw-r--r--configmgr/workben/local_io/cfglocal.cxx666
-rw-r--r--configmgr/workben/local_io/com.sun.star.office.Setup.xml29
-rw-r--r--configmgr/workben/local_io/filetest.cxx127
-rw-r--r--configmgr/workben/local_io/makefile.mk154
-rw-r--r--configmgr/workben/local_io/simpletest.cxx537
-rw-r--r--configmgr/workben/local_io/xmlexport.cxx302
-rw-r--r--configmgr/workben/local_io/xmlimport.cxx545
-rw-r--r--connectivity/inc/connectivity/CommonTools.hxx249
-rw-r--r--connectivity/inc/connectivity/PColumn.hxx114
-rw-r--r--connectivity/inc/connectivity/sdbcx/IRefreshable.hxx88
-rw-r--r--connectivity/inc/connectivity/sdbcx/VCatalog.hxx186
-rw-r--r--connectivity/inc/connectivity/sdbcx/VCollection.hxx242
-rw-r--r--connectivity/inc/connectivity/sdbcx/VColumn.hxx175
-rw-r--r--connectivity/inc/connectivity/sdbcx/VDescriptor.hxx120
-rw-r--r--connectivity/inc/connectivity/sdbcx/VGroup.hxx175
-rw-r--r--connectivity/inc/connectivity/sdbcx/VIndex.hxx177
-rw-r--r--connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx102
-rw-r--r--connectivity/inc/connectivity/sdbcx/VKey.hxx165
-rw-r--r--connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx102
-rw-r--r--connectivity/inc/connectivity/sdbcx/VTable.hxx209
-rw-r--r--connectivity/inc/connectivity/sdbcx/VTypeDef.hxx94
-rw-r--r--connectivity/inc/connectivity/sdbcx/VUser.hxx171
-rw-r--r--connectivity/inc/connectivity/sdbcx/VView.hxx167
-rw-r--r--connectivity/inc/connectivity/sqliterator.hxx337
-rw-r--r--connectivity/inc/connectivity/sqlnode.hxx405
-rw-r--r--connectivity/inc/connectivity/sqlparse.hxx260
-rw-r--r--connectivity/prj/d.lst42
-rw-r--r--connectivity/source/commontools/CommonTools.cxx318
-rw-r--r--connectivity/source/commontools/DateConversion.cxx370
-rw-r--r--connectivity/source/commontools/makefile.mk90
-rw-r--r--connectivity/source/drivers/adabas/BCatalog.cxx195
-rw-r--r--connectivity/source/drivers/adabas/BColumns.cxx241
-rw-r--r--connectivity/source/drivers/adabas/BConnection.cxx233
-rw-r--r--connectivity/source/drivers/adabas/BDatabaseMetaData.cxx80
-rw-r--r--connectivity/source/drivers/adabas/BDriver.cxx252
-rw-r--r--connectivity/source/drivers/adabas/BGroup.cxx131
-rw-r--r--connectivity/source/drivers/adabas/BGroups.cxx161
-rw-r--r--connectivity/source/drivers/adabas/BIndex.cxx139
-rw-r--r--connectivity/source/drivers/adabas/BIndexColumns.cxx146
-rw-r--r--connectivity/source/drivers/adabas/BIndexes.cxx241
-rw-r--r--connectivity/source/drivers/adabas/BKeys.cxx285
-rw-r--r--connectivity/source/drivers/adabas/BResultSetMetaData.cxx249
-rw-r--r--connectivity/source/drivers/adabas/BTable.cxx590
-rw-r--r--connectivity/source/drivers/adabas/BTables.cxx419
-rw-r--r--connectivity/source/drivers/adabas/BUser.cxx151
-rw-r--r--connectivity/source/drivers/adabas/BUsers.cxx160
-rw-r--r--connectivity/source/drivers/adabas/Bservices.cxx212
-rw-r--r--connectivity/source/drivers/adabas/adabas.map8
-rw-r--r--connectivity/source/drivers/adabas/adabas.xml70
-rw-r--r--connectivity/source/drivers/adabas/exports.dxp3
-rw-r--r--connectivity/source/drivers/adabas/makefile.mk199
-rw-r--r--connectivity/source/drivers/ado/ACallableStatement.cxx258
-rw-r--r--connectivity/source/drivers/ado/ACatalog.cxx216
-rw-r--r--connectivity/source/drivers/ado/AColumn.cxx426
-rw-r--r--connectivity/source/drivers/ado/AColumns.cxx149
-rw-r--r--connectivity/source/drivers/ado/AConnection.cxx554
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaData.cxx1602
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx1282
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaDataResultSetMetaData.cxx515
-rw-r--r--connectivity/source/drivers/ado/ADriver.cxx265
-rw-r--r--connectivity/source/drivers/ado/AGroup.cxx342
-rw-r--r--connectivity/source/drivers/ado/AGroups.cxx145
-rw-r--r--connectivity/source/drivers/ado/AIndex.cxx283
-rw-r--r--connectivity/source/drivers/ado/AIndexes.cxx148
-rw-r--r--connectivity/source/drivers/ado/AKey.cxx326
-rw-r--r--connectivity/source/drivers/ado/AKeyColumn.cxx101
-rw-r--r--connectivity/source/drivers/ado/AKeyColumns.cxx142
-rw-r--r--connectivity/source/drivers/ado/AKeys.cxx153
-rw-r--r--connectivity/source/drivers/ado/APreparedStatement.cxx446
-rw-r--r--connectivity/source/drivers/ado/AResultSet.cxx1269
-rw-r--r--connectivity/source/drivers/ado/AResultSetMetaData.cxx257
-rw-r--r--connectivity/source/drivers/ado/AStatement.cxx840
-rw-r--r--connectivity/source/drivers/ado/ATable.cxx444
-rw-r--r--connectivity/source/drivers/ado/ATables.cxx158
-rw-r--r--connectivity/source/drivers/ado/AUser.cxx248
-rw-r--r--connectivity/source/drivers/ado/AUsers.cxx144
-rw-r--r--connectivity/source/drivers/ado/AView.cxx222
-rw-r--r--connectivity/source/drivers/ado/AViews.cxx158
-rw-r--r--connectivity/source/drivers/ado/Aservices.cxx212
-rw-r--r--connectivity/source/drivers/ado/ado.xml70
-rw-r--r--connectivity/source/drivers/ado/adoimp.cxx229
-rw-r--r--connectivity/source/drivers/ado/exports.dxp3
-rw-r--r--connectivity/source/drivers/ado/makefile.mk226
-rw-r--r--connectivity/source/drivers/dbase/DCatalog.cxx115
-rw-r--r--connectivity/source/drivers/dbase/DColumns.cxx105
-rw-r--r--connectivity/source/drivers/dbase/DConnection.cxx141
-rw-r--r--connectivity/source/drivers/dbase/DDatabaseMetaData.cxx457
-rw-r--r--connectivity/source/drivers/dbase/DDriver.cxx151
-rw-r--r--connectivity/source/drivers/dbase/DIndex.cxx701
-rw-r--r--connectivity/source/drivers/dbase/DIndexColumns.cxx119
-rw-r--r--connectivity/source/drivers/dbase/DIndexIter.cxx344
-rw-r--r--connectivity/source/drivers/dbase/DIndexes.cxx172
-rw-r--r--connectivity/source/drivers/dbase/DTable.cxx1861
-rw-r--r--connectivity/source/drivers/dbase/DTables.cxx176
-rw-r--r--connectivity/source/drivers/dbase/Dservices.cxx211
-rw-r--r--connectivity/source/drivers/dbase/dindexnode.cxx1006
-rw-r--r--connectivity/source/drivers/dbase/exports.dxp3
-rw-r--r--connectivity/source/drivers/dbase/makefile.mk132
-rw-r--r--connectivity/source/drivers/file/FCatalog.cxx136
-rw-r--r--connectivity/source/drivers/file/FColumns.cxx142
-rw-r--r--connectivity/source/drivers/file/FConnection.cxx451
-rw-r--r--connectivity/source/drivers/file/FDatabaseMetaData.cxx1327
-rw-r--r--connectivity/source/drivers/file/FDriver.cxx219
-rw-r--r--connectivity/source/drivers/file/FPreparedStatement.cxx473
-rw-r--r--connectivity/source/drivers/file/FResultSet.cxx2297
-rw-r--r--connectivity/source/drivers/file/FResultSetMetaData.cxx201
-rw-r--r--connectivity/source/drivers/file/FStatement.cxx358
-rw-r--r--connectivity/source/drivers/file/FTable.cxx201
-rw-r--r--connectivity/source/drivers/file/FTables.cxx161
-rw-r--r--connectivity/source/drivers/file/file.xml70
-rw-r--r--connectivity/source/drivers/file/makefile.mk158
-rw-r--r--connectivity/source/drivers/jdbc/Array.cxx238
-rw-r--r--connectivity/source/drivers/jdbc/Blob.cxx221
-rw-r--r--connectivity/source/drivers/jdbc/Boolean.cxx114
-rw-r--r--connectivity/source/drivers/jdbc/CallableStatement.cxx590
-rw-r--r--connectivity/source/drivers/jdbc/Class.cxx185
-rw-r--r--connectivity/source/drivers/jdbc/Clob.cxx212
-rw-r--r--connectivity/source/drivers/jdbc/DatabaseMetaData.cxx3269
-rw-r--r--connectivity/source/drivers/jdbc/Date.cxx225
-rw-r--r--connectivity/source/drivers/jdbc/DriverManager.cxx147
-rw-r--r--connectivity/source/drivers/jdbc/DriverPropertyInfo.cxx191
-rw-r--r--connectivity/source/drivers/jdbc/Exception.cxx93
-rw-r--r--connectivity/source/drivers/jdbc/InputStream.cxx187
-rw-r--r--connectivity/source/drivers/jdbc/JDriver.cxx295
-rw-r--r--connectivity/source/drivers/jdbc/Object.cxx396
-rw-r--r--connectivity/source/drivers/jdbc/PreparedStatement.cxx842
-rw-r--r--connectivity/source/drivers/jdbc/Reader.cxx187
-rw-r--r--connectivity/source/drivers/jdbc/Ref.cxx121
-rw-r--r--connectivity/source/drivers/jdbc/ResultSet.cxx1842
-rw-r--r--connectivity/source/drivers/jdbc/ResultSetMetaData.cxx563
-rw-r--r--connectivity/source/drivers/jdbc/SQLException.cxx186
-rw-r--r--connectivity/source/drivers/jdbc/SQLWarning.cxx95
-rw-r--r--connectivity/source/drivers/jdbc/String.cxx126
-rw-r--r--connectivity/source/drivers/jdbc/Throwable.cxx160
-rw-r--r--connectivity/source/drivers/jdbc/Timestamp.cxx240
-rw-r--r--connectivity/source/drivers/jdbc/exports.dxp3
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.xml69
-rw-r--r--connectivity/source/drivers/jdbc/jservices.cxx209
-rw-r--r--connectivity/source/drivers/jdbc/makefile.mk187
-rw-r--r--connectivity/source/drivers/jdbc/tools.cxx159
-rw-r--r--connectivity/source/drivers/odbc/OConnection.cxx539
-rw-r--r--connectivity/source/drivers/odbc/ODatabaseMetaData.cxx1593
-rw-r--r--connectivity/source/drivers/odbc/ODriver.cxx209
-rw-r--r--connectivity/source/drivers/odbc/OFunctions.cxx338
-rw-r--r--connectivity/source/drivers/odbc/OPreparedStatement.cxx1063
-rw-r--r--connectivity/source/drivers/odbc/OResultSet.cxx2051
-rw-r--r--connectivity/source/drivers/odbc/OResultSetMetaData.cxx254
-rw-r--r--connectivity/source/drivers/odbc/OStatement.cxx1004
-rw-r--r--connectivity/source/drivers/odbc/OTools.cxx545
-rw-r--r--connectivity/source/drivers/odbc/makefile.mk177
-rw-r--r--connectivity/source/drivers/odbc/odbc.map8
-rw-r--r--connectivity/source/drivers/odbc/odbc.xml70
-rw-r--r--connectivity/source/drivers/odbc/oservices.cxx212
-rw-r--r--connectivity/source/inc/OColumn.hxx174
-rw-r--r--connectivity/source/inc/OSubComponent.hxx135
-rw-r--r--connectivity/source/inc/OTypeInfo.hxx119
-rw-r--r--connectivity/source/inc/adabas/BCatalog.hxx96
-rw-r--r--connectivity/source/inc/adabas/BColumn.hxx90
-rw-r--r--connectivity/source/inc/adabas/BColumns.hxx107
-rw-r--r--connectivity/source/inc/adabas/BConnection.hxx112
-rw-r--r--connectivity/source/inc/adabas/BDatabaseMetaData.hxx88
-rw-r--r--connectivity/source/inc/adabas/BDriver.hxx129
-rw-r--r--connectivity/source/inc/adabas/BGroup.hxx86
-rw-r--r--connectivity/source/inc/adabas/BGroups.hxx106
-rw-r--r--connectivity/source/inc/adabas/BIndex.hxx96
-rw-r--r--connectivity/source/inc/adabas/BIndexColumn.hxx94
-rw-r--r--connectivity/source/inc/adabas/BIndexColumns.hxx98
-rw-r--r--connectivity/source/inc/adabas/BIndexes.hxx102
-rw-r--r--connectivity/source/inc/adabas/BKeys.hxx107
-rw-r--r--connectivity/source/inc/adabas/BTable.hxx135
-rw-r--r--connectivity/source/inc/adabas/BTables.hxx102
-rw-r--r--connectivity/source/inc/adabas/BUser.hxx107
-rw-r--r--connectivity/source/inc/adabas/BUsers.hxx105
-rw-r--r--connectivity/source/inc/ado/ACallableStatement.hxx129
-rw-r--r--connectivity/source/inc/ado/ACatalog.hxx96
-rw-r--r--connectivity/source/inc/ado/ACollection.hxx274
-rw-r--r--connectivity/source/inc/ado/AColumn.hxx124
-rw-r--r--connectivity/source/inc/ado/AColumns.hxx117
-rw-r--r--connectivity/source/inc/ado/AConnection.hxx183
-rw-r--r--connectivity/source/inc/ado/ADatabaseMetaData.hxx266
-rw-r--r--connectivity/source/inc/ado/ADatabaseMetaDataResultSet.hxx284
-rw-r--r--connectivity/source/inc/ado/ADatabaseMetaDataResultSetMetaData.hxx159
-rw-r--r--connectivity/source/inc/ado/ADriver.hxx132
-rw-r--r--connectivity/source/inc/ado/AGroup.hxx120
-rw-r--r--connectivity/source/inc/ado/AGroups.hxx115
-rw-r--r--connectivity/source/inc/ado/AIndex.hxx118
-rw-r--r--connectivity/source/inc/ado/AIndexColumn.hxx94
-rw-r--r--connectivity/source/inc/ado/AIndexColumns.hxx91
-rw-r--r--connectivity/source/inc/ado/AIndexes.hxx112
-rw-r--r--connectivity/source/inc/ado/AKey.hxx120
-rw-r--r--connectivity/source/inc/ado/AKeyColumn.hxx94
-rw-r--r--connectivity/source/inc/ado/AKeyColumns.hxx91
-rw-r--r--connectivity/source/inc/ado/AKeys.hxx111
-rw-r--r--connectivity/source/inc/ado/APreparedStatement.hxx169
-rw-r--r--connectivity/source/inc/ado/AResultSet.hxx296
-rw-r--r--connectivity/source/inc/ado/AResultSetMetaData.hxx140
-rw-r--r--connectivity/source/inc/ado/AStatement.hxx262
-rw-r--r--connectivity/source/inc/ado/ATable.hxx129
-rw-r--r--connectivity/source/inc/ado/ATables.hxx108
-rw-r--r--connectivity/source/inc/ado/AUser.hxx134
-rw-r--r--connectivity/source/inc/ado/AUsers.hxx115
-rw-r--r--connectivity/source/inc/ado/AView.hxx122
-rw-r--r--connectivity/source/inc/ado/AViews.hxx110
-rw-r--r--connectivity/source/inc/ado/Aolevariant.hxx373
-rw-r--r--connectivity/source/inc/ado/Aolewrap.hxx254
-rw-r--r--connectivity/source/inc/ado/Awrapado.hxx1021
-rw-r--r--connectivity/source/inc/ado/Awrapadox.hxx634
-rw-r--r--connectivity/source/inc/ado/adoimp.hxx146
-rw-r--r--connectivity/source/inc/dbase/DCatalog.hxx85
-rw-r--r--connectivity/source/inc/dbase/DColumns.hxx90
-rw-r--r--connectivity/source/inc/dbase/DConnection.hxx90
-rw-r--r--connectivity/source/inc/dbase/DDatabaseMetaData.hxx105
-rw-r--r--connectivity/source/inc/dbase/DDatabaseMetaDataResultSet.hxx253
-rw-r--r--connectivity/source/inc/dbase/DDatabaseMetaDataResultSetMetaData.hxx150
-rw-r--r--connectivity/source/inc/dbase/DDriver.hxx100
-rw-r--r--connectivity/source/inc/dbase/DIndex.hxx201
-rw-r--r--connectivity/source/inc/dbase/DIndexColumns.hxx99
-rw-r--r--connectivity/source/inc/dbase/DIndexIter.hxx125
-rw-r--r--connectivity/source/inc/dbase/DIndexPage.hxx127
-rw-r--r--connectivity/source/inc/dbase/DIndexes.hxx103
-rw-r--r--connectivity/source/inc/dbase/DTable.hxx191
-rw-r--r--connectivity/source/inc/dbase/DTables.hxx96
-rw-r--r--connectivity/source/inc/dbase/dindexnode.hxx410
-rw-r--r--connectivity/source/inc/file/FCatalog.hxx98
-rw-r--r--connectivity/source/inc/file/FColumns.hxx102
-rw-r--r--connectivity/source/inc/file/FConnection.hxx213
-rw-r--r--connectivity/source/inc/file/FDatabaseMetaData.hxx245
-rw-r--r--connectivity/source/inc/file/FDriver.hxx133
-rw-r--r--connectivity/source/inc/file/FPreparedStatement.hxx163
-rw-r--r--connectivity/source/inc/file/FResultSet.hxx458
-rw-r--r--connectivity/source/inc/file/FResultSetMetaData.hxx127
-rw-r--r--connectivity/source/inc/file/FStatement.hxx233
-rw-r--r--connectivity/source/inc/file/FTable.hxx163
-rw-r--r--connectivity/source/inc/file/FTables.hxx98
-rw-r--r--connectivity/source/inc/file/fanalyzer.hxx105
-rw-r--r--connectivity/source/inc/file/fcode.hxx394
-rw-r--r--connectivity/source/inc/file/fcomp.hxx140
-rw-r--r--connectivity/source/inc/internalnode.hxx95
-rw-r--r--connectivity/source/inc/java/io/InputStream.hxx102
-rw-r--r--connectivity/source/inc/java/io/Reader.hxx102
-rw-r--r--connectivity/source/inc/java/lang/Boolean.hxx91
-rw-r--r--connectivity/source/inc/java/lang/Class.hxx93
-rw-r--r--connectivity/source/inc/java/lang/Exception.hxx89
-rw-r--r--connectivity/source/inc/java/lang/Object.hxx166
-rw-r--r--connectivity/source/inc/java/lang/String.hxx90
-rw-r--r--connectivity/source/inc/java/lang/Throwable.hxx91
-rw-r--r--connectivity/source/inc/java/sql/Array.hxx106
-rw-r--r--connectivity/source/inc/java/sql/Blob.hxx106
-rw-r--r--connectivity/source/inc/java/sql/CallableStatement.hxx129
-rw-r--r--connectivity/source/inc/java/sql/Clob.hxx104
-rw-r--r--connectivity/source/inc/java/sql/Connection.hxx161
-rw-r--r--connectivity/source/inc/java/sql/DatabaseMetaData.hxx248
-rw-r--r--connectivity/source/inc/java/sql/Driver.hxx118
-rw-r--r--connectivity/source/inc/java/sql/DriverManager.hxx99
-rw-r--r--connectivity/source/inc/java/sql/DriverPropertyInfo.hxx101
-rw-r--r--connectivity/source/inc/java/sql/PreparedStatement.hxx146
-rw-r--r--connectivity/source/inc/java/sql/Ref.hxx99
-rw-r--r--connectivity/source/inc/java/sql/ResultSet.hxx272
-rw-r--r--connectivity/source/inc/java/sql/ResultSetMetaData.hxx118
-rw-r--r--connectivity/source/inc/java/sql/SQLException.hxx106
-rw-r--r--connectivity/source/inc/java/sql/SQLWarning.hxx102
-rw-r--r--connectivity/source/inc/java/sql/Timestamp.hxx151
-rw-r--r--connectivity/source/inc/java/tools.hxx127
-rw-r--r--connectivity/source/inc/java/util/Date.hxx103
-rw-r--r--connectivity/source/inc/java/util/Property.hxx74
-rw-r--r--connectivity/source/inc/odbc/OBoundParam.hxx271
-rw-r--r--connectivity/source/inc/odbc/OConnection.hxx192
-rw-r--r--connectivity/source/inc/odbc/ODatabaseMetaData.hxx244
-rw-r--r--connectivity/source/inc/odbc/ODefs3.hxx126
-rw-r--r--connectivity/source/inc/odbc/ODriver.hxx128
-rw-r--r--connectivity/source/inc/odbc/OFunctiondefs.hxx232
-rw-r--r--connectivity/source/inc/odbc/OFunctions.hxx596
-rw-r--r--connectivity/source/inc/odbc/OPreparedStatement.hxx188
-rw-r--r--connectivity/source/inc/odbc/OResultSet.hxx363
-rw-r--r--connectivity/source/inc/odbc/OResultSetMetaData.hxx132
-rw-r--r--connectivity/source/inc/odbc/OStatement.hxx272
-rw-r--r--connectivity/source/inc/odbc/OTools.hxx559
-rw-r--r--connectivity/source/inc/propertyids.hxx196
-rw-r--r--connectivity/source/inc/sqlscan.hxx119
-rw-r--r--connectivity/source/manager/exports.dxp3
-rw-r--r--connectivity/source/manager/makefile.mk137
-rw-r--r--connectivity/source/manager/mdrivermanager.cxx400
-rw-r--r--connectivity/source/manager/sdbc.map8
-rw-r--r--connectivity/source/parse/PColumn.cxx134
-rw-r--r--connectivity/source/parse/internalnode.cxx127
-rw-r--r--connectivity/source/parse/makefile.mk114
-rw-r--r--connectivity/source/parse/sqlbison.y4232
-rw-r--r--connectivity/source/parse/sqlflex.l592
-rw-r--r--connectivity/source/parse/sqliterator.cxx1583
-rw-r--r--connectivity/source/parse/sqlnode.cxx1399
-rw-r--r--connectivity/source/resource/makefile.mk84
-rw-r--r--connectivity/source/sdbcx/VCatalog.cxx170
-rw-r--r--connectivity/source/sdbcx/VCollection.cxx238
-rw-r--r--connectivity/source/sdbcx/VColumn.cxx186
-rw-r--r--connectivity/source/sdbcx/VGroup.cxx183
-rw-r--r--connectivity/source/sdbcx/VIndex.cxx179
-rw-r--r--connectivity/source/sdbcx/VIndexColumn.cxx113
-rw-r--r--connectivity/source/sdbcx/VKey.cxx187
-rw-r--r--connectivity/source/sdbcx/VKeyColumn.cxx111
-rw-r--r--connectivity/source/sdbcx/VTable.cxx247
-rw-r--r--connectivity/source/sdbcx/VUser.cxx194
-rw-r--r--connectivity/source/sdbcx/VView.cxx152
-rw-r--r--connectivity/source/sdbcx/makefile.mk161
-rw-r--r--connectivity/version.mk175
-rw-r--r--connectivity/workben/TT/StartTest.classbin0 -> 183 bytes
-rw-r--r--connectivity/workben/TT/StartTest.java327
-rw-r--r--connectivity/workben/little/main.cxx170
-rw-r--r--connectivity/workben/little/makefile.mk101
-rw-r--r--desktop/inc/app.hxx80
-rw-r--r--desktop/prj/d.lst10
-rw-r--r--desktop/source/app/app.cxx119
-rw-r--r--desktop/source/app/exports.dxp3
-rw-r--r--desktop/source/app/makefile.mk124
-rw-r--r--desktop/util/makefile.mk191
-rw-r--r--desktop/util/soffice.icobin0 -> 4990 bytes
-rw-r--r--desktop/util/verinfo.rc347
-rw-r--r--desktop/util/writer.r1
-rw-r--r--eventattacher/prj/d.lst2
-rw-r--r--eventattacher/source/eventattacher.cxx969
-rw-r--r--eventattacher/source/makefile.mk132
493 files changed, 152257 insertions, 0 deletions
diff --git a/basic/inc/basrid.hxx b/basic/inc/basrid.hxx
new file mode 100644
index 000000000000..ef7a886441d2
--- /dev/null
+++ b/basic/inc/basrid.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * $RCSfile: basrid.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _BASRID_HXX
+#define _BASRID_HXX
+
+#ifndef _TOOLS_RESID_HXX //autogen
+#include <tools/resid.hxx>
+#endif
+
+class BasicResId: public ResId
+{
+public:
+ BasicResId( USHORT nId );
+};
+
+#endif //_BASRID_HXX
diff --git a/basic/inc/sb.hrc b/basic/inc/sb.hrc
new file mode 100644
index 000000000000..c7d7c2bc6697
--- /dev/null
+++ b/basic/inc/sb.hrc
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: sb.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SB_HRC
+#define _SB_HRC
+
+#include <svtools/solar.hrc>
+
+#ifndef IDS_SBERR_START
+ #define IDS_SBERR_START RID_BASIC_START
+#endif
+
+#define IDS_SBERR_TERMINATED IDS_SBERR_START+2000
+#define IDS_SBERR_STOREREF IDS_SBERR_START+2001
+
+// #define IDS_SBERR_LIBLOAD IDS_SBERR_START+2002
+// #define IDS_SBERR_LIBSAVE IDS_SBERR_START+2003
+// #define IDS_SBERR_MGROPEN IDS_SBERR_START+2004
+// #define IDS_SBERR_MGRSAVE IDS_SBERR_START+2005
+// #define IDS_SBERR_REMOVELIB IDS_SBERR_START+2006
+// #define IDS_SBERR_UNLOADLIB IDS_SBERR_START+2007
+
+#endif
diff --git a/basic/inc/sb.hxx b/basic/inc/sb.hxx
new file mode 100644
index 000000000000..5cae2d1ebefe
--- /dev/null
+++ b/basic/inc/sb.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * $RCSfile: sb.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SB_HXX
+#define _SB_HXX
+
+#ifndef _SBERRORS_HXX
+ #include "sberrors.hxx"
+#endif
+
+
+#include <sbdef.hxx>
+#include <sbmeth.hxx>
+#include <sbmod.hxx>
+#include <sbprop.hxx>
+#include <sbstar.hxx>
+
+#endif
diff --git a/basic/inc/testtool.hrc b/basic/inc/testtool.hrc
new file mode 100644
index 000000000000..28f82508fa0e
--- /dev/null
+++ b/basic/inc/testtool.hrc
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * $RCSfile: testtool.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#define S_INVALID_KEYCODE 257
+#define S_MANDATORY_FILE 258
+#define S_READING_LONGNAMES 259
+#define S_READING_SLOT_IDS 260
+#define S_READING_CONTROLS 261
+#define S_READING_BASIC_MODULE 262
+#define S_STARTING_APPLICATION 263
+
+
+
diff --git a/basic/inc/ttmsg.hrc b/basic/inc/ttmsg.hrc
new file mode 100644
index 000000000000..3e7074566708
--- /dev/null
+++ b/basic/inc/ttmsg.hrc
@@ -0,0 +1,147 @@
+/*************************************************************************
+ *
+ * $RCSfile: ttmsg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include <svtools/ttglobal.hrc>
+
+
+// Hier sind die Messages aus dem Verzeichnis /basic/source/testtool enhalten
+
+
+///////////////////////////////
+// Fehlermeldungen, die in das Resultfile gelangen.
+// *********************
+// *** !!ACHTUNG!! ***
+// *********************
+// Die Nummern drfen sich NIE! ndern,
+// da sie in den Resultfiles gespeichert sind, und bei erneutem Anzeigen
+// statdessen die entsprechenden neuen oder garkeine Strings angzeigt werden.
+///////////////////////////////
+
+#define S_NAME_NOT_THERE ( TT_START + 0 )
+#define S_DOUBLE_NAME ( TT_START + 1 )
+#define S_READING_FILE ( TT_START + 2 )
+#define S_CANNOT_OPEN_FILE ( TT_START + 3 )
+#define S_INVALID_LINE ( TT_START + 4 )
+#define S_SHORTNAME_UNKNOWN ( TT_START + 5 )
+#define S_LONGNAME_UNKNOWN ( TT_START + 6 )
+#define S_FIRST_SHORTNAME_REQ_ASTRX ( TT_START + 7 )
+#define S_TIMOUT_WAITING ( TT_START + 8 )
+#define S_APPLICATION_RESTARTED ( TT_START + 9 )
+#define S_APPLICATION_START_FAILED ( TT_START + 10 )
+#define S_TIMOUT_SENDING ( TT_START + 11 )
+#define S_NO_CONNECTION ( TT_START + 12 )
+#define S_NO_FILES_FOUND ( TT_START + 13 )
+#define S_ERRORS_DETECTED ( TT_START + 14 )
+#define S_NO_ERRORS_DETECTED ( TT_START + 15 )
+#define S_WARNINGS_DETECTED ( TT_START + 16 )
+#define S_NO_WARNINGS_DETECTED ( TT_START + 17 )
+#define S_UNKNOWN_SLOT_CONTROL ( TT_START + 18 )
+#define S_RETURN_SEQUENCE_MISSMATCH ( TT_START + 19 )
+#define S_RETURNED_VALUE_ID_MISSMATCH ( TT_START + 20 )
+#define S_RETURNED_VALUE_NO_RECEIVER ( TT_START + 21 )
+#define S_UNKNOWN_METHOD ( TT_START + 22 )
+#define S_INCLUDE_FILE_WARNINGS_DETECTED ( TT_START + 23 )
+#define S_NO_INCLUDE_FILE_WARNINGS_DETECTED ( TT_START + 24 )
+
+
+// Stings
+
+
+/*
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+#define S_ ( TT_START + 0 )
+*/
diff --git a/basic/prj/d.lst b/basic/prj/d.lst
new file mode 100644
index 000000000000..bde728a2833c
--- /dev/null
+++ b/basic/prj/d.lst
@@ -0,0 +1,44 @@
+touch: ..\%__SRC%\misc\basic.hid %_DEST%\bin%_EXT%\basic.hid
+..\%__SRC%\lib\basic.lib %_DEST%\lib%_EXT%\basic.lib
+..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
+..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
+..\%__SRC%\slb\sb.lib %_DEST%\lib%_EXT%\xsb.lib
+..\%__SRC%\srs\classes.srs %_DEST%\res%_EXT%\basic.srs
+..\%__SRC%\res\*.srs %_DEST%\res%_EXT%\*.srs
+..\%__SRC%\bin\sb?????.dll %_DEST%\bin%_EXT%\sb?????.dll
+..\%__SRC%\bin\sb?????.sym %_DEST%\bin%_EXT%\sb?????.sym
+..\%__SRC%\misc\sb?????.map %_DEST%\bin%_EXT%\sb?????.map
+..\%__SRC%\bin\testtool.exe %_DEST%\bin%_EXT%\testtool.exe
+..\%__SRC%\bin\testtool %_DEST%\bin%_EXT%\testtool.bin
+..\%__SRC%\bin\stt%UPD%49.res %_DEST%\bin%_EXT%\testtool.res
+..\%__SRC%\bin\stt*.res %_DEST%\bin%_EXT%\stt*.res
+..\%__SRC%\inc\classes %_DEST%\bin%_EXT%\classes
+..\%__SRC%\inc\keycodes %_DEST%\bin%_EXT%\keycodes
+..\%__SRC%\inc\res_type %_DEST%\bin%_EXT%\res_type
+..\%__SRC%\lib\app.lib %_DEST%\lib%_EXT%\app.lib
+..\%__SRC%\lib\libapp.a %_DEST%\lib%_EXT%\libapp.a
+..\%__SRC%\lib\sample.lib %_DEST%\lib%_EXT%\sample.lib
+..\%__SRC%\lib\libsample.a %_DEST%\lib%_EXT%\libsample.a
+
+mkdir: %_DEST%\inc%_EXT%\basic
+hedabu: ..\inc\sbdef.hxx %_DEST%\inc%_EXT%\basic\sbdef.hxx
+hedabu: ..\inc\sbmod.hxx %_DEST%\inc%_EXT%\basic\sbmod.hxx
+hedabu: ..\inc\sbjsmod.hxx %_DEST%\inc%_EXT%\basic\sbjsmod.hxx
+hedabu: ..\inc\sbmeth.hxx %_DEST%\inc%_EXT%\basic\sbmeth.hxx
+hedabu: ..\inc\sbprop.hxx %_DEST%\inc%_EXT%\basic\sbprop.hxx
+hedabu: ..\inc\sbstar.hxx %_DEST%\inc%_EXT%\basic\sbstar.hxx
+hedabu: ..\inc\sbuno.hxx %_DEST%\inc%_EXT%\basic\sbuno.hxx
+hedabu: ..\inc\basmgr.hxx %_DEST%\inc%_EXT%\basic\basmgr.hxx
+hedabu: ..\inc\sberrors.hxx %_DEST%\inc%_EXT%\basic\sberrors.hxx
+hedabu: ..\inc\basrdll.hxx %_DEST%\inc%_EXT%\basic\basrdll.hxx
+hedabu: ..\inc\stdobj1.hxx %_DEST%\inc%_EXT%\basic\sbstdobj.hxx
+hedabu: ..\inc\hilight.hxx %_DEST%\inc%_EXT%\basic\hilight.hxx
+hedabu: ..\inc\process.hxx %_DEST%\inc%_EXT%\basic\process.hxx
+hedabu: ..\inc\testtool.hrc %_DEST%\inc%_EXT%\basic\testtool.hrc
+hedabu: ..\inc\ttmsg.hrc %_DEST%\inc%_EXT%\basic\ttmsg.hrc
+hedabu: ..\inc\mybasic.hxx %_DEST%\inc%_EXT%\basic\mybasic.hxx
+hedabu: ..\inc\testtool.hxx %_DEST%\inc%_EXT%\basic\testtool.hxx
+hedabu: ..\inc\basicrt.hxx %_DEST%\inc%_EXT%\basic\basicrt.hxx
+hedabu: ..\inc\dispdefs.hxx %_DEST%\inc%_EXT%\basic\dispdefs.hxx
+hedabu: ..\inc\ttstrhlp.hxx %_DEST%\inc%_EXT%\basic\ttstrhlp.hxx
+
diff --git a/basic/source/app/app.cxx b/basic/source/app/app.cxx
new file mode 100644
index 000000000000..35a50b904abd
--- /dev/null
+++ b/basic/source/app/app.cxx
@@ -0,0 +1,1580 @@
+/*************************************************************************
+ *
+ * $RCSfile: app.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _FSYS_HXX //autogen
+#include <tools/fsys.hxx>
+#endif
+#ifndef _SV_FILEDLG_HXX //autogen
+#include <svtools/filedlg.hxx>
+#endif
+#ifndef _SV_CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+
+#include <vcl/system.hxx>
+
+#include <vcl/font.hxx>
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+#ifndef _SBXCLASS_HXX //autogen
+#include <svtools/sbx.hxx>
+#endif
+#ifdef VCL
+#include <svtools/filedlg.hxx>
+#endif
+
+#include "basic.hrc"
+#include "app.hxx"
+#include "printer.hxx"
+#include "status.hxx"
+#include "appedit.hxx"
+#include "appbased.hxx"
+#include "apperror.hxx"
+#include "mybasic.hxx"
+#include "ttbasic.hxx"
+#include "dialogs.hxx"
+#include "basrdll.hxx"
+
+#ifndef _RUNTIME_HXX
+#include "runtime.hxx"
+#endif
+
+#ifndef _SB_INTERN_HXX
+#include "sbintern.hxx"
+#endif
+
+#ifdef _USE_UNO
+#include <ucbhelper/contentbroker.hxx>
+#include <ucbhelper/registerucb.hxx>
+#include <unotools/regpathhelper.hxx>
+#include <unotools/processfactory.hxx>
+
+#include <cppuhelper/servicefactory.hxx>
+#include <com/sun/star/registry/XImplementationRegistration.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/ucb/XContentProviderManager.hpp>
+#include <com/sun/star/ucb/ContentProviderServiceInfo2.hpp>
+
+using namespace utl;
+using namespace ucb;
+using namespace cppu;
+using namespace rtl;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::registry;
+using namespace com::sun::star::ucb;
+
+#endif /* _USE_UNO */
+
+
+BasicApp aBasicApp; // Applikations-Instanz
+
+#ifdef _USE_UNO
+Reference< XContentProviderManager > InitializeUCB( std::vector< ucb::ContentProviderRegistrationInfo > &rRegisteredProviders )
+{
+ //////////////////////////////////////////////////////////////////////
+ // Bootstrap service factory, set global factory
+ Reference< XMultiServiceFactory > xSMgr( createRegistryServiceFactory( getPathToSystemRegistry() ) );
+ setProcessServiceFactory( xSMgr );
+
+ //////////////////////////////////////////////////////////////////////
+ // Create UCB.
+ Reference< XImplementationRegistration >
+ xIR( xSMgr->createInstance( OUString::createFromAscii( "com.sun.star.registry.ImplementationRegistration" ) ), UNO_QUERY );
+ xIR->registerImplementation( OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ),
+ OUString::createFromAscii( "ucb1.dll" ),
+ Reference< XSimpleRegistry >() );
+ xIR->registerImplementation( OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ),
+ OUString::createFromAscii( "ucpfile1.dll" ),
+ Reference< XSimpleRegistry >() );
+ xIR->registerImplementation( OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ),
+ OUString::createFromAscii( "fileacc.dll" ),
+ Reference< XSimpleRegistry >() );
+
+ // Create unconfigured Ucb:
+ Sequence< Any > aArgs(1);
+ aArgs[0] <<= sal_False;
+ ucb::ContentBroker::initialize( xSMgr, aArgs );
+ Reference< XContentProviderManager > xUcb = ucb::ContentBroker::get()->getContentProviderManagerInterface();
+ /*
+ Reference< XContentProviderManager > xUcb(
+ xSMgr->createInstanceWithArguments(
+ OUString::createFromAscii(
+ "com.sun.star.ucb.UniversalContentBroker" ),
+ aArgs ),
+ UNO_QUERY );
+ */
+ // Configure Ucb (use only file content provider):
+ Sequence< ContentProviderServiceInfo2 > aProviders(1);
+ aProviders[0].Service
+ = OUString::createFromAscii(
+ "com.sun.star.ucb.FileContentProvider");
+ aProviders[0].Scheme = OUString::createFromAscii("file");
+ aProviders[0].ReplaceExisting = false;
+ ucb::registerAtUcb(xUcb, xSMgr, aProviders, &rRegisteredProviders);
+ return xUcb;
+}
+#endif
+
+void BasicApp::Main( )
+{
+#ifdef _USE_UNO
+ std::vector< ucb::ContentProviderRegistrationInfo > aRegisteredProviders;
+ Reference< XContentProviderManager > xUcb = InitializeUCB( aRegisteredProviders );
+#endif
+ {
+ LanguageType aRequestedLanguage;
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+
+ // 1033 = LANGUAGE_ENGLISH_US
+ // 1031 = LANGUAGE_GERMAN
+ aConf.SetGroup("Misc");
+ ByteString aLang = aConf.ReadKey( "Language", ByteString::CreateFromInt32( LANGUAGE_SYSTEM ) );
+ aRequestedLanguage = LanguageType( aLang.ToInt32() );
+
+ AllSettings aSettings = GetSettings();
+ International aInternational;
+ aInternational = GetSettings().GetInternational();
+ aInternational = International( aRequestedLanguage );
+ aSettings.SetInternational( aInternational );
+ SetSettings( aSettings );
+ aInternational = GetSettings().GetInternational();
+ }
+
+
+// ResMgr::CreateResMgr( CREATEVERSIONRESMGR( stt ), )
+//const char* ResMgr::GetLang( LanguageType& nType, USHORT nPrio )
+
+ Resource::SetResManager( CREATEVERSIONRESMGR( stt ) );
+// ResMgr::CreateResMgr( CREATEVERSIONRESMGR( stt )
+// ResMgr *pRes = new ResMgr( "testtool.res" );
+// Resource::SetResManager( pRes );
+
+ BasicDLL aBasicDLL;
+ nWait = 0;
+
+ // Hilfe:
+// pHelp = new Help;
+// SetHelp( pHelp );
+// Help::EnableContextHelp();
+// Help::EnableExtHelp();
+// DeactivateExtHelp();
+
+ // Acceleratoren
+ Accelerator aAccel( ResId( MAIN_ACCEL ) );
+ InsertAccel( &aAccel );
+ pMainAccel = &aAccel;
+
+ // Frame Window:
+ pFrame = new BasicFrame;
+ aAccel.SetSelectHdl( LINK( pFrame, BasicFrame, Accel ) );
+
+ pFrame->Show();
+
+ GetpApp()->PostUserEvent( LINK( this, BasicApp, LateInit ) );
+ Execute();
+
+ // Loeschen der Members:
+// delete pHelp;
+ delete pFrame;
+
+ RemoveAccel( pMainAccel );
+#ifdef _USE_UNO
+ ucb::deregisterFromUcb(xUcb, aRegisteredProviders);
+#endif
+}
+
+void BasicApp::LoadIniFile()
+{
+ pFrame->LoadIniFile();
+}
+
+void BasicApp::SetFocus()
+{
+ if( pFrame->pWork && pFrame->pWork->ISA(AppEdit) )
+ ((AppEdit*)pFrame->pWork)->pDataEdit->GrabFocus();
+}
+
+IMPL_LINK( BasicApp, LateInit, void *, pDummy )
+{
+ BOOL bFileLoaded = FALSE;
+ for ( int i = 0 ; i < Application::GetCommandLineParamCount() ; i++ )
+ {
+ if ( Application::GetCommandLineParam( i ).Copy(0,1).CompareToAscii("-") != COMPARE_EQUAL )
+ {
+ pFrame->LoadFile( Application::GetCommandLineParam( i ) );
+ bFileLoaded = TRUE;
+ }
+ else
+ {
+ if ( Application::GetCommandLineParam( i ).Copy(0,4).CompareIgnoreCaseToAscii("-run") == COMPARE_EQUAL )
+ pFrame->SetAutoRun( TRUE );
+ }
+ }
+
+ if ( !bFileLoaded )
+ {
+ AppWin *pWin = new AppBasEd( pFrame, NULL );
+ pWin->Show();
+ }
+
+ pFrame->pStatus->SetStatusSize( pFrame->pStatus->GetStatusSize()+1 );
+ pFrame->pStatus->SetStatusSize( pFrame->pStatus->GetStatusSize()-1 );
+
+ if ( pFrame->IsAutoRun() )
+ {
+ pFrame->Command( RID_RUNSTART );
+ }
+
+ if ( pFrame->IsAutoRun() )
+ pFrame->Command( RID_QUIT );
+
+ return 0;
+}
+
+//////////////////////////////////////////////////////////////////////////
+
+class FloatingExecutionStatus : public FloatingWindow
+{
+public:
+ FloatingExecutionStatus( Window * pParent );
+ void SetStatus( String aW );
+ void SetAdditionalInfo( String aF );
+
+private:
+ Timer aAusblend;
+ DECL_LINK(HideNow, FloatingExecutionStatus* );
+ FixedText aStatus;
+ FixedText aAdditionalInfo;
+};
+
+
+FloatingExecutionStatus::FloatingExecutionStatus( Window * pParent )
+ : FloatingWindow( pParent, ResId(LOAD_CONF) ),
+ aStatus( this, ResId( WORK ) ),
+ aAdditionalInfo( this, ResId( FILENAME ) )
+{
+ FreeResource();
+ aAusblend.SetTimeoutHdl( LINK(this, FloatingExecutionStatus, HideNow ) );
+ aAusblend.SetTimeout(5000); // in ms
+ aAusblend.Start();
+}
+
+void FloatingExecutionStatus::SetStatus( String aW )
+{
+ Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ ToTop( TOTOP_NOGRABFOCUS );
+ aAusblend.Start();
+ aStatus.SetText( aW );
+}
+
+void FloatingExecutionStatus::SetAdditionalInfo( String aF )
+{
+ Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ ToTop( TOTOP_NOGRABFOCUS );
+ aAusblend.Start();
+ aAdditionalInfo.SetText( aF );
+}
+
+IMPL_LINK(FloatingExecutionStatus, HideNow, FloatingExecutionStatus*, pFLC )
+{
+ Hide();
+ return 0;
+}
+
+//////////////////////////////////////////////////////////////////////////
+
+TYPEINIT1(TTExecutionStatusHint, SfxSimpleHint);
+
+BasicFrame::BasicFrame() : WorkWindow( NULL,
+ WinBits( WB_APP | WB_MOVEABLE | WB_SIZEABLE | WB_CLOSEABLE ) )
+, bIsAutoRun ( FALSE )
+, pDisplayHidDlg( NULL )
+, pBasic( NULL )
+, pWork( NULL )
+, pExecutionStatus( NULL )
+{
+
+ pBasic = TTBasic::CreateMyBasic(); // depending on what was linked to the executable
+ bInBreak = FALSE;
+ bDisas = FALSE;
+ nFlags = 0;
+// Icon aAppIcon;
+
+ if ( pBasic->pTestObject ) // also sid wir testtool
+ {
+// aAppIcon = Icon( ResId( RID_APPICON2 ) );
+ aAppName = String( ResId( IDS_APPNAME2 ) );
+ }
+ else
+ {
+// aAppIcon = Icon( ResId( RID_APPICON ) );
+ aAppName = String( ResId( IDS_APPNAME ) );
+ }
+
+ // Menu:
+ MenuBar *pBar = new MenuBar( ResId( RID_APPMENUBAR ) );
+ SetMenuBar( pBar );
+
+ pBar->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+
+
+ // Menu Handler:
+ PopupMenu* pFileMenu = pBar->GetPopupMenu( RID_APPFILE );
+ pFileMenu->SetSelectHdl( LINK( this, BasicFrame, MenuCommand ) );
+ pFileMenu->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+ pFileMenu->SetActivateHdl( LINK( this, BasicFrame, InitMenu ) );
+ pFileMenu->SetDeactivateHdl( LINK( this, BasicFrame, DeInitMenu ) );
+ if (Basic().pTestObject ) // Wir sind also TestTool
+ {
+ pFileMenu->RemoveItem( pFileMenu->GetItemPos( RID_FILELOADLIB ) -1 ); // Der Trenner davor
+ pFileMenu->RemoveItem( pFileMenu->GetItemPos( RID_FILELOADLIB ) );
+ pFileMenu->RemoveItem( pFileMenu->GetItemPos( RID_FILESAVELIB ) );
+ }
+
+ PopupMenu* pEditMenu = pBar->GetPopupMenu( RID_APPEDIT );
+ pEditMenu->SetSelectHdl( LINK( this, BasicFrame, MenuCommand ) );
+ pEditMenu->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+ pEditMenu->SetActivateHdl( LINK( this, BasicFrame, InitMenu ) );
+ pEditMenu->SetDeactivateHdl( LINK( this, BasicFrame, DeInitMenu ) );
+ PopupMenu* pRunMenu = pBar->GetPopupMenu( RID_APPRUN );
+ pRunMenu->SetSelectHdl( LINK( this, BasicFrame, MenuCommand ) );
+ pRunMenu->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+ pRunMenu->SetActivateHdl( LINK( this, BasicFrame, InitMenu ) );
+ pRunMenu->SetDeactivateHdl( LINK( this, BasicFrame, DeInitMenu ) );
+ if (Basic().pTestObject ) // Wir sind also TestTool
+ {
+ pRunMenu->RemoveItem( pRunMenu->GetItemPos( RID_RUNDISAS ) );
+ }
+
+ PopupMenu *pExtras;
+ if (Basic().pTestObject ) // Wir sind also TestTool
+ {
+ pExtras = new PopupMenu( ResId( RID_TT_EXTRAS ) );
+ pBar->InsertItem( RID_TT_EXTRAS, String( ResId( RID_TT_EXTRAS_NAME ) ), 0, pBar->GetItemPos( RID_APPWINDOW ) );
+ pBar->SetPopupMenu( RID_TT_EXTRAS, pExtras );
+
+ pExtras->SetSelectHdl( LINK( this, BasicFrame, MenuCommand ) );
+ pExtras->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+ pExtras->SetDeactivateHdl( LINK( this, BasicFrame, DeInitMenu ) );
+ }
+
+ PopupMenu* pWinMenu = pBar->GetPopupMenu( RID_APPWINDOW );
+ pWinMenu->SetSelectHdl( LINK( this, BasicFrame, MenuCommand ) );
+ pWinMenu->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+ pWinMenu->SetDeactivateHdl( LINK( this, BasicFrame, DeInitMenu ) );
+ PopupMenu* pHelpMenu = pBar->GetPopupMenu( RID_APPHELP );
+ pHelpMenu->SetSelectHdl( LINK( this, BasicFrame, MenuCommand ) );
+ pHelpMenu->SetHighlightHdl( LINK( this, BasicFrame, HighlightMenu ) );
+ pHelpMenu->SetActivateHdl( LINK( this, BasicFrame, InitMenu ) );
+ pHelpMenu->SetDeactivateHdl( LINK( this, BasicFrame, DeInitMenu ) );
+
+ LoadLRU();
+
+ LoadIniFile();
+
+#ifndef UNX
+ pPrn = new BasicPrinter;
+#else
+ pPrn = NULL;
+#endif
+ pList = new EditList;
+ pStatus = new StatusLine( this );
+
+ UpdateTitle();
+// SetIcon( aAppIcon );
+
+ // Groesse: halbe Breite, dreiviertel Hoehe minus 2 * IconSize
+ {
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("WinGeom");
+ SetWindowState( aConf.ReadKey("WinParams", "") );
+ }
+
+// pWork = new AppEdit( this, NULL );
+// pWork->Show();
+// pWork->Close();
+
+ aLineNum.SetTimeoutHdl( LINK( this, BasicFrame, ShowLineNr ) );
+ aLineNum.SetTimeout(200);
+ aLineNum.Start();
+
+
+ aCheckFiles.SetTimeout( 10000 );
+ aCheckFiles.SetTimeoutHdl( LINK( this, BasicFrame, CheckAllFiles ) );
+ aCheckFiles.Start();
+
+ GetMenuBar()->SetCloserHdl( LINK( this, BasicFrame, CloseButtonClick ) );
+ GetMenuBar()->SetFloatButtonClickHdl( LINK( this, BasicFrame, FloatButtonClick ) );
+ GetMenuBar()->SetHideButtonClickHdl( LINK( this, BasicFrame, HideButtonClick ) );
+}
+
+void BasicFrame::LoadIniFile()
+{
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("Misc");
+
+ ByteString aTemp = aConf.ReadKey( "AutoReload", "0" );
+ bAutoReload = ( aTemp.CompareTo("1") == COMPARE_EQUAL );
+
+ if ( pBasic )
+ pBasic->LoadIniFile();
+}
+
+BasicFrame::~BasicFrame()
+{
+ AppWin* p = pList->First();
+ if( p ) while( (p = pList->Remove() ) != NULL ) delete p;
+ delete pStatus;
+ delete pPrn;
+ delete pList;
+// delete pExecutionStatus;
+// delete pBasic;
+ pBasic.Clear(); // Da jetzt REF
+}
+
+void BasicFrame::UpdateTitle()
+{
+ String aTitle;
+ aTitle += aAppName;
+ if ( aAppMode.Len() )
+ {
+ aTitle.AppendAscii(" [");
+ aTitle += aAppMode;
+ aTitle.AppendAscii("]");
+ }
+ aTitle.AppendAscii(" - ");
+ aTitle += aAppFile;
+ SetText( aTitle );
+}
+
+IMPL_LINK( BasicFrame, CheckAllFiles, Timer*, pTimer )
+{
+ if ( pWork )
+ {
+ AppWin* pStartWin = pWork;
+ Window* pFocusWin = Application::GetFocusWindow();
+ for ( int i = pList->Count()-1 ; i >= 0 ; i-- )
+ pList->GetObject( i )->CheckReload();
+
+ if ( pWork != pStartWin )
+ {
+ pWork = pStartWin;
+ pWork->ToTop();
+ }
+ if ( pFocusWin )
+ pFocusWin->GrabFocus();
+ }
+ pTimer->Start();
+ return 0;
+}
+
+BOOL BasicFrame::IsAutoRun()
+{
+ return bIsAutoRun;
+}
+
+void BasicFrame::SetAutoRun( BOOL bAuto )
+{
+ bIsAutoRun = bAuto;
+}
+
+void BasicFrame::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
+ const SfxHint& rHint, const TypeId& )
+{
+ if ( rHint.ISA( TTExecutionStatusHint ) )
+ {
+ TTExecutionStatusHint *pStatusHint = ( TTExecutionStatusHint* )&rHint;
+ switch ( pStatusHint->GetType() )
+ {
+ case TT_EXECUTION_ENTERWAIT:
+ {
+ EnterWait();
+ }
+ break;
+ case TT_EXECUTION_LEAVEWAIT:
+ {
+ LeaveWait();
+ }
+ break;
+ case TT_EXECUTION_SHOW_ACTION:
+ {
+ if ( !pExecutionStatus )
+ pExecutionStatus = new FloatingExecutionStatus( this );
+ pExecutionStatus->SetStatus( pStatusHint->GetExecutionStatus() );
+ pExecutionStatus->SetAdditionalInfo( pStatusHint->GetAdditionalExecutionStatus() );
+ }
+ break;
+ }
+ }
+
+
+ Broadcast( rHint );
+}
+
+void BasicFrame::Resize()
+{
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("WinGeom");
+ aConf.WriteKey("WinParams",GetWindowState());
+
+ // Statusbar
+ Size aOutSize = GetOutputSizePixel();
+ Size aStatusSize = pStatus->GetSizePixel();
+ Point aStatusPos( 0, aOutSize.Height() - aStatusSize.Height() );
+ aStatusSize.Width() = aOutSize.Width();
+
+ pStatus->SetPosPixel( aStatusPos );
+ pStatus->SetSizePixel( aStatusSize );
+
+
+ // Eventuell Maximized window resizen
+ ULONG i;
+ for( i = pList->Count(); i > 0 ; i-- )
+ {
+ if ( pList->GetObject( i-1 )->GetWinState() == TT_WIN_STATE_MAX )
+ pList->GetObject( i-1 )->Maximize(); // resized auch
+ }
+}
+
+void BasicFrame::Move()
+{
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("WinGeom");
+ aConf.WriteKey("WinParams",GetWindowState());
+}
+
+IMPL_LINK( BasicFrame, CloseButtonClick, void*, EMPTYARG )
+{
+ AppWin* p;
+ for ( p = pList->Last() ; p && p->GetWinState() != TT_WIN_STATE_MAX ; p = pList->Prev() )
+ {};
+ if ( p )
+ p->GrabFocus();
+ return Command( RID_FILECLOSE, FALSE );
+}
+
+IMPL_LINK( BasicFrame, FloatButtonClick, void*, EMPTYARG )
+{
+ AppWin* p;
+ for ( p = pList->Last() ; p && p->GetWinState() != TT_WIN_STATE_MAX ; p = pList->Prev() )
+ {};
+ if ( p )
+ p->TitleButtonClick( TITLE_BUTTON_DOCKING );
+ return 1;
+}
+
+IMPL_LINK( BasicFrame, HideButtonClick, void*, EMPTYARG )
+{
+ AppWin* p;
+ for ( p = pList->Last() ; p && p->GetWinState() != TT_WIN_STATE_MAX ; p = pList->Prev() )
+ {};
+ if ( p )
+ p->TitleButtonClick( TITLE_BUTTON_HIDE );
+ return 1;
+}
+
+void BasicFrame::WinShow_Hide()
+{
+ if ( !pList->Count() )
+ return;
+
+ AppWin* p;
+ BOOL bWasFullscreen = FALSE;
+ for ( p = pList->Last() ; p ; p = pList->Prev() )
+ {
+ if ( p->pDataEdit )
+ {
+ if ( p->GetWinState() & TT_WIN_STATE_HIDE // Versteckt
+ || ( bWasFullscreen
+ && ( !p->IsPined() || p->GetWinState() & TT_WIN_STATE_MAX )
+ )
+ )
+ p->Hide( SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ else
+ p->Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ }
+ bWasFullscreen |= p->GetWinState() == TT_WIN_STATE_MAX;
+ }
+}
+
+void BasicFrame::WinMax_Restore()
+{
+ // Die ApplicationButtons
+ AppWin* p;
+ BOOL bHasFullscreenWin = FALSE;
+ for( p = pList->First(); p && !bHasFullscreenWin ; p = pList->Next() )
+ bHasFullscreenWin |= ( p->GetWinState() == TT_WIN_STATE_MAX );
+ GetMenuBar()->ShowButtons( bHasFullscreenWin, bHasFullscreenWin, bHasFullscreenWin );
+ WinShow_Hide();
+}
+
+void BasicFrame::RemoveWindow( AppWin *pWin )
+{
+// delete pIcon;
+ pList->Remove( pWin );
+ pWork = pList->Last();
+
+ WinShow_Hide();
+
+ if ( pWork )
+ pWork->ToTop();
+
+ WinMax_Restore();
+
+ Menu* pMenu = GetMenuBar();
+ if( pList->Count() == 0 ) {
+ pMenu->EnableItem( RID_APPEDIT, FALSE );
+ pMenu->EnableItem( RID_APPRUN, FALSE );
+ pMenu->EnableItem( RID_APPWINDOW, FALSE );
+ }
+
+ PopupMenu* pWinMenu = pMenu->GetPopupMenu( RID_APPWINDOW );
+
+ pWinMenu->RemoveItem( pWinMenu->GetItemPos( pWin->GetWinId() ) );
+
+ // Trenner entfernen
+ if ( pWinMenu->GetItemType( pWinMenu->GetItemCount() - 1 ) == MENUITEM_SEPARATOR )
+ pWinMenu->RemoveItem( pWinMenu->GetItemCount() - 1 );
+
+ pStatus->LoadTaskToolBox();
+}
+
+void BasicFrame::AddWindow( AppWin *pWin )
+{
+ // Eintragen:
+ pList->Insert( pWin, LIST_APPEND );
+ pWork = pWin;
+
+ WinMax_Restore();
+
+ // Hauptmenue aktivieren:
+ MenuBar* pMenu = GetMenuBar();
+ if( pList->Count() > 0 ) {
+ pMenu->EnableItem( RID_APPEDIT, TRUE );
+ pMenu->EnableItem( RID_APPRUN, TRUE );
+ pMenu->EnableItem( RID_APPWINDOW, TRUE );
+ }
+
+ PopupMenu* pWinMenu = pMenu->GetPopupMenu( RID_APPWINDOW );
+ USHORT nLastID = pWinMenu->GetItemId( pWinMenu->GetItemCount() - 1 );
+
+ // Trenner erforderlich
+ if ( nLastID < RID_WIN_FILE1 && pWinMenu->GetItemType( pWinMenu->GetItemCount() - 1 ) != MENUITEM_SEPARATOR )
+ pWinMenu->InsertSeparator();
+
+ // Freie ID finden
+ USHORT nFreeID = RID_WIN_FILE1;
+ while ( pWinMenu->GetItemPos( nFreeID ) != MENU_ITEM_NOTFOUND && nFreeID < RID_WIN_FILEn )
+ nFreeID++;
+
+ pWin->SetWinId( nFreeID );
+ pWinMenu->InsertItem( nFreeID, pWin->GetText() );
+}
+
+void BasicFrame::WindowRenamed( AppWin *pWin )
+{
+ MenuBar* pMenu = GetMenuBar();
+ PopupMenu* pWinMenu = pMenu->GetPopupMenu( RID_APPWINDOW );
+
+ pWinMenu->SetItemText( pWin->GetWinId(), pWin->GetText() );
+
+ pStatus->LoadTaskToolBox();
+
+ aAppFile = pWin->GetText();
+ UpdateTitle();
+}
+
+void BasicFrame::FocusWindow( AppWin *pWin )
+{
+ pWork = pWin;
+ pList->Remove( pWin );
+ pList->Insert( pWin, LIST_APPEND );
+ pWin->Minimize( FALSE );
+
+ aAppFile = pWin->GetText();
+ UpdateTitle();
+
+ WinShow_Hide();
+ pStatus->LoadTaskToolBox();
+}
+
+BOOL BasicFrame::Close()
+{
+ if( bInBreak || Basic().IsRunning() )
+ if( RET_NO == QueryBox( this, ResId( IDS_RUNNING ) ).Execute() )
+ return FALSE;
+
+ StarBASIC::Stop();
+ bInBreak = FALSE;
+ if( CloseAll() )
+ {
+ aLineNum.Stop();
+
+ // Alle brigen Dialoge schliessen um assertions zu vermeiden!!
+ while ( GetWindow( WINDOW_OVERLAP )->GetWindow( WINDOW_FIRSTOVERLAP ) )
+ {
+ delete GetWindow( WINDOW_OVERLAP )->GetWindow( WINDOW_FIRSTOVERLAP )->GetWindow( WINDOW_CLIENT );
+ }
+
+ WorkWindow::Close();
+
+ return TRUE;
+ } else return FALSE;
+}
+
+BOOL BasicFrame::CloseAll()
+{
+ while ( pList->Count() )
+ if ( !pList->Last()->Close() )
+ return FALSE;
+ return TRUE;
+}
+
+BOOL BasicFrame::CompileAll()
+{
+ AppWin* p;
+ for( p = pList->First(); p; p = pList->Next() )
+ if( p->ISA(AppBasEd) && !((AppBasEd*)p)->Compile() ) return FALSE;
+ return TRUE;
+}
+
+// Menu aufsetzen
+
+#define MENU2FILENAME Copy(3)
+#define FILENAME2MENU( Nr, Name ) CUniString("~").Append( UniString::CreateFromInt32(i) ).AppendAscii(" ").Append( Name )
+#define LRUNr( nNr ) CByteString("LRU").Append( ByteString::CreateFromInt32(nNr) )
+void BasicFrame::AddToLRU(String const& aFile)
+{
+ Config aConfig(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ PopupMenu *pPopup = GetMenuBar()->GetPopupMenu(RID_APPFILE);
+
+ aConfig.SetGroup("LRU");
+ DirEntry aFileEntry( aFile );
+ USHORT i,nLastMove = 4;
+
+ for ( i = 1 ; i<4 && nLastMove == 4 ; i++ )
+ {
+ if ( DirEntry( UniString( aConfig.ReadKey(LRUNr(i),""), RTL_TEXTENCODING_UTF8 ) ) == aFileEntry )
+ nLastMove = i;
+ }
+
+ for ( i = nLastMove ; i>1 ; i-- )
+ {
+ aConfig.WriteKey(LRUNr(i), aConfig.ReadKey(LRUNr(i-1),""));
+ pPopup->SetItemText(IDM_FILE_LRU1 + i-1,FILENAME2MENU( i, pPopup->GetItemText(IDM_FILE_LRU1 + i-1-1).MENU2FILENAME ));
+ }
+ aConfig.WriteKey(LRUNr(1), ByteString( aFile, RTL_TEXTENCODING_UTF8 ) );
+ pPopup->SetItemText(IDM_FILE_LRU1,FILENAME2MENU( 1, aFile) );
+}
+
+void BasicFrame::LoadLRU()
+{
+ Config aConfig(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ PopupMenu *pPopup = GetMenuBar()->GetPopupMenu(RID_APPFILE);
+ BOOL bAddSep = TRUE;
+
+ aConfig.SetGroup("LRU");
+
+ for (int i=1; i<=4 && pPopup!=NULL; i++)
+ {
+ String aFile = UniString( aConfig.ReadKey(LRUNr(i)), RTL_TEXTENCODING_UTF8 );
+
+ if (aFile.Len() != 0)
+ {
+ if (bAddSep)
+ {
+ pPopup->InsertSeparator();
+ bAddSep = FALSE;
+ }
+
+ pPopup->InsertItem(IDM_FILE_LRU1 + i-1, FILENAME2MENU( i, aFile ));
+ }
+ }
+}
+
+IMPL_LINK( BasicFrame, InitMenu, Menu *, pMenu )
+{
+ BOOL bNormal = BOOL( !bInBreak );
+ pMenu->EnableItem( RID_RUNCOMPILE, bNormal );
+
+ BOOL bHasEdit = BOOL( /*bNormal &&*/ pWork != NULL );
+
+// pMenu->EnableItem( RID_FILENEW, bNormal ); // immer mglich
+// pMenu->EnableItem( RID_FILEOPEN, bNormal );
+ pMenu->EnableItem( RID_FILECLOSE, bHasEdit );
+ pMenu->EnableItem( RID_FILESAVE, bHasEdit );
+ pMenu->EnableItem( RID_FILESAVEAS, bHasEdit );
+ pMenu->EnableItem( RID_FILEPRINT, bHasEdit );
+ pMenu->EnableItem( RID_FILESETUP, bHasEdit );
+ pMenu->EnableItem( RID_FILELOADLIB, bNormal );
+ pMenu->EnableItem( RID_FILESAVELIB, bHasEdit );
+
+ BOOL bHasErr = BOOL( bNormal && pBasic->GetErrors() != 0 );
+ BOOL bNext = bHasErr & bNormal;
+ BOOL bPrev = bHasErr & bNormal;
+ if( bHasErr ) {
+ short n = (short) pBasic->aErrors.GetCurPos();
+ if( n == 0 ) bPrev = FALSE;
+ if( n ==( pBasic->GetErrors() - 1 ) ) bNext = FALSE;
+ }
+ pMenu->EnableItem( RID_RUNNEXTERR, bNext );
+ pMenu->EnableItem( RID_RUNPREVERR, bPrev );
+ pMenu->CheckItem( RID_RUNDISAS, bDisas );
+ if( pWork ) pWork->InitMenu( pMenu );
+
+ return TRUE;
+}
+
+IMPL_LINK_INLINE_START( BasicFrame, DeInitMenu, Menu *, pMenu )
+{
+ pMenu->EnableItem( RID_RUNCOMPILE );
+
+ pMenu->EnableItem( RID_FILECLOSE );
+ pMenu->EnableItem( RID_FILESAVE );
+ pMenu->EnableItem( RID_FILESAVEAS );
+ pMenu->EnableItem( RID_FILEPRINT );
+ pMenu->EnableItem( RID_FILESETUP );
+ pMenu->EnableItem( RID_FILELOADLIB );
+ pMenu->EnableItem( RID_FILESAVELIB );
+
+ pMenu->EnableItem( RID_RUNNEXTERR );
+ pMenu->EnableItem( RID_RUNPREVERR );
+ if( pWork ) pWork->DeInitMenu( pMenu );
+
+
+ SetAutoRun( FALSE );
+ String aString;
+ pStatus->Message( aString );
+ return 0L;
+}
+IMPL_LINK_INLINE_END( BasicFrame, DeInitMenu, Menu *, pMenu )
+
+IMPL_LINK_INLINE_START( BasicFrame, HighlightMenu, Menu *, pMenu )
+{
+ String s = pMenu->GetHelpText( pMenu->GetCurItemId() );
+ pStatus->Message( s );
+ return 0L;
+}
+IMPL_LINK_INLINE_END( BasicFrame, HighlightMenu, Menu *, pMenu )
+
+IMPL_LINK_INLINE_START( BasicFrame, MenuCommand, Menu *, pMenu )
+{
+ USHORT nId = pMenu->GetCurItemId();
+ BOOL bChecked = pMenu->IsItemChecked( nId );
+ return Command( nId, bChecked );
+}
+IMPL_LINK_INLINE_END( BasicFrame, MenuCommand, Menu *, pMenu )
+
+IMPL_LINK_INLINE_START( BasicFrame, Accel, Accelerator*, pAcc )
+{
+ SetAutoRun( FALSE );
+ return Command( pAcc->GetCurItemId() );
+}
+IMPL_LINK_INLINE_END( BasicFrame, Accel, Accelerator*, pAcc )
+
+IMPL_LINK_INLINE_START( BasicFrame, ShowLineNr, AutoTimer *, pTimer )
+{
+ String aPos;
+ if ( pWork )
+ {
+ aPos = String::CreateFromInt32(pWork->GetLineNr());
+ }
+ pStatus->Pos( aPos );
+ return 0L;
+}
+IMPL_LINK_INLINE_END( BasicFrame, ShowLineNr, AutoTimer *, pTimer )
+
+
+MsgEdit* BasicFrame::GetMsgTree( String aLogFileName )
+{
+ if ( FindErrorWin( aLogFileName ) )
+ {
+ return FindErrorWin( aLogFileName )->GetMsgTree();
+ }
+ else
+ { // create new Window on the fly
+ AppError *pNewWindow = new AppError( this, aLogFileName );
+ pNewWindow->Show();
+ pNewWindow->GrabFocus();
+ return pNewWindow->GetMsgTree();
+ }
+}
+
+IMPL_LINK( BasicFrame, Log, TTLogMsg *, pLogMsg )
+{
+ GetMsgTree( pLogMsg->aLogFileName )->AddAnyMsg( pLogMsg );
+ return 0L;
+}
+
+IMPL_LINK( BasicFrame, WinInfo, WinInfoRec*, pWinInfo )
+{
+ if ( !pDisplayHidDlg )
+ pDisplayHidDlg = new DisplayHidDlg( this );
+ if ( pDisplayHidDlg )
+ {
+ pDisplayHidDlg->AddData( pWinInfo );
+ pDisplayHidDlg->Show();
+ }
+ return 0;
+}
+
+BOOL BasicFrame::LoadFile( String aFilename )
+{
+ BOOL bIsResult = DirEntry( aFilename ).GetExtension().CompareIgnoreCaseToAscii("RES") == COMPARE_EQUAL;
+ BOOL bIsBasic = DirEntry( aFilename ).GetExtension().CompareIgnoreCaseToAscii("BAS") == COMPARE_EQUAL;
+ bIsBasic |= DirEntry( aFilename ).GetExtension().CompareIgnoreCaseToAscii("INC") == COMPARE_EQUAL;
+
+ AppWin* p;
+ if ( bIsResult )
+ {
+ p = new AppError( this, aFilename );
+ }
+ else if ( bIsBasic )
+ {
+ p = new AppBasEd( this, NULL );
+ p->Load( aFilename );
+ }
+ else
+ {
+ p = new AppEdit( this );
+ p->Load( aFilename );
+ }
+ p->Show();
+ p->GrabFocus();
+ return TRUE;
+}
+
+// Kommando ausfuehren
+
+long BasicFrame::Command( short nID, BOOL bChecked )
+{
+ BasicError* pErr;
+
+ switch( nID ) {
+ case RID_FILENEW: {
+ AppBasEd* p = new AppBasEd( this, NULL );
+ p->Show();
+ p->GrabFocus();
+ // InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+ } break;
+ case RID_FILEOPEN:
+ {
+ String s;
+ if( QueryFileName( s, FT_BASIC_SOURCE | FT_RESULT_FILE, FALSE ) ) {
+ AddToLRU( s );
+ LoadFile( s );
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+ }
+ } break;
+ case RID_FILELOADLIB:
+ LoadLibrary();
+ break;
+ case RID_FILESAVELIB:
+ SaveLibrary();
+ break;
+ case RID_FILECLOSE:
+ if( pWork && pWork->Close() ){};
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+ break;
+ case RID_FILEPRINT:
+#ifndef UNX
+ if( pWork )
+ pPrn->Print( pWork->GetText(), pWork->pDataEdit->GetText(), this );
+#else
+ InfoBox( this, ResId( IDS_NOPRINTERERROR ) ).Execute();
+#endif
+ break;
+ case RID_FILESETUP:
+#ifndef UNX
+ pPrn->Setup();
+#else
+ InfoBox( this, ResId( IDS_NOPRINTERERROR ) ).Execute();
+#endif
+ break;
+ case RID_QUIT:
+ if( Close() ) aBasicApp.Quit();
+ break;
+ case IDM_FILE_LRU1:
+ case IDM_FILE_LRU2:
+ case IDM_FILE_LRU3:
+ case IDM_FILE_LRU4:
+ {
+ String s = GetMenuBar()->GetPopupMenu(RID_APPFILE)->GetItemText(nID).MENU2FILENAME;
+
+ AddToLRU( s );
+ LoadFile( s );
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+ }
+ break;
+
+
+ case RID_RUNSTART:
+ nFlags = SbDEBUG_BREAK;
+ goto start;
+ case RID_RUNSTEPOVER:
+ nFlags = SbDEBUG_STEPINTO | SbDEBUG_STEPOVER;
+ goto start;
+ case RID_RUNSTEPINTO:
+ nFlags = SbDEBUG_STEPINTO;
+ goto start;
+ case RID_RUNTOCURSOR:
+ if ( pWork && pWork->ISA(AppBasEd) && ((AppBasEd*)pWork)->GetModule()->SetBP(pWork->GetLineNr()) )
+ {
+ SbModule *pModule = ((AppBasEd*)pWork)->GetModule();
+#ifdef DEBUG
+ USHORT x;
+ x = pWork->GetLineNr();
+ x = ((AppBasEd*)pWork)->GetModule()->GetBPCount();
+ if ( !x )
+ x = pModule->SetBP(pWork->GetLineNr());
+ x = pModule->GetBPCount();
+#endif
+
+ for ( USHORT nMethod = 0; nMethod < pModule->GetMethods()->Count(); nMethod++ )
+ {
+ SbMethod* pMethod = (SbMethod*)pModule->GetMethods()->Get( nMethod );
+ DBG_ASSERT( pMethod, "Methode nicht gefunden! (NULL)" );
+ pMethod->SetDebugFlags( pMethod->GetDebugFlags() | SbDEBUG_BREAK );
+ }
+ }
+ nFlags = SbDEBUG_BREAK;
+ goto start;
+ start: {
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+ if ( !Basic().IsRunning() || bInBreak )
+ {
+ AppBasEd* p = NULL;
+ if( pWork && pWork->ISA(AppBasEd) )
+ {
+ p = ((AppBasEd*)pWork);
+ p->ToTop();
+ }
+ else
+ SetAutoRun( FALSE ); // Wenn kein Programm geladen wurde, dann auch nicht beenden
+
+ if( bInBreak )
+ // Nur das Flag zuruecksetzen
+ bInBreak = FALSE;
+ else
+ {
+ if( !SaveAll() ) break;
+ if( !CompileAll() ) break;
+ String aString;
+ pStatus->Message( aString );
+ if( p )
+ {
+ BasicDLL::SetDebugMode( TRUE );
+ Basic().ClearGlobalVars();
+ p->Run();
+ BasicDLL::SetDebugMode( FALSE );
+ // Falls waehrend Interactive=FALSE abgebrochen
+// BasicDLL::EnableBreak( TRUE );
+ }
+ }}
+ }
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN )); // nach run
+ break;
+ case RID_RUNCOMPILE:
+ if( pWork && pWork->ISA(AppBasEd) && SaveAll() )
+ {
+ ((AppBasEd*)pWork)->Compile();
+ pWork->ToTop();
+ pWork->GrabFocus();
+ }
+ break;
+ case RID_RUNDISAS:
+ bDisas = BOOL( !bChecked );
+ break;
+ case RID_RUNBREAK:
+ if ( Basic().IsRunning() && !bInBreak )
+ {
+// pINST->CalcBreakCallLevel(SbDEBUG_STEPINTO);
+ pINST->nBreakCallLvl = pINST->nCallLvl;
+ }
+ break;
+ case RID_RUNSTOP:
+ Basic().Stop();
+ bInBreak = FALSE;
+ break;
+ case RID_RUNNEXTERR:
+ pErr = pBasic->aErrors.Next();
+ if( pErr ) pErr->Show();
+ break;
+ case RID_RUNPREVERR:
+ pErr = pBasic->aErrors.Prev();
+ if( pErr ) pErr->Show();
+ break;
+
+ case RID_OPTIONS:
+ {
+ new OptionsDialog( this, ResId(IDD_OPTIONS_DLG) );
+ }
+ break;
+ case RID_DECLARE_HELPER:
+ InfoBox( this, ResId( IDS_NOT_YET_IMPLEMENTED ) ).Execute();
+ break;
+
+ case RID_WINTILE:
+ {
+ WindowArrange aArange;
+ for ( ULONG i = 0 ; i < pList->Count() ; i++ )
+ {
+ aArange.AddWindow( pList->GetObject( i ) );
+ pList->GetObject( i )->Restore();
+ }
+
+
+ long nTitleHeight;
+ {
+ long nDummy1, nDummy2, nDummy3;
+ GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
+ }
+
+ Size aSize = GetOutputSizePixel();
+ aSize.Height() -= nTitleHeight;
+ Rectangle aRect( Point( 0, nTitleHeight ), aSize );
+
+ aArange.Arrange( WINDOWARRANGE_TILE, aRect );
+
+ }
+ break;
+ case RID_WINTILEHORZ:
+ {
+ WindowArrange aArange;
+ for ( ULONG i = 0 ; i < pList->Count() ; i++ )
+ {
+ aArange.AddWindow( pList->GetObject( i ) );
+ pList->GetObject( i )->Restore();
+ }
+
+
+ long nTitleHeight;
+ {
+ long nDummy1, nDummy2, nDummy3;
+ GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
+ }
+
+ Size aSize = GetOutputSizePixel();
+ aSize.Height() -= nTitleHeight;
+ Rectangle aRect( Point( 0, nTitleHeight ), aSize );
+
+ aArange.Arrange( WINDOWARRANGE_HORZ, aRect );
+
+ }
+ break;
+ case RID_WINTILEVERT:
+//#define WINDOWARRANGE_TILE 1
+//#define WINDOWARRANGE_HORZ 2
+//#define WINDOWARRANGE_VERT 3
+//#define WINDOWARRANGE_CASCADE 4
+ {
+ WindowArrange aArange;
+ for ( ULONG i = 0 ; i < pList->Count() ; i++ )
+ {
+ aArange.AddWindow( pList->GetObject( i ) );
+ pList->GetObject( i )->Restore();
+ }
+
+
+ long nTitleHeight;
+ {
+ long nDummy1, nDummy2, nDummy3;
+ GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
+ }
+
+ Size aSize = GetOutputSizePixel();
+ aSize.Height() -= nTitleHeight;
+ Rectangle aRect( Point( 0, nTitleHeight ), aSize );
+
+ aArange.Arrange( WINDOWARRANGE_VERT, aRect );
+
+ }
+ break;
+ case RID_WINCASCADE:
+ {
+ for ( ULONG i = 0 ; i < pList->Count() ; i++ )
+ {
+ pList->GetObject( i )->Cascade( i );
+ }
+ }
+ break;
+
+/* case RID_HELPTOPIC:
+ if( pWork ) pWork->Help();
+ break;
+ case RID_HELPKEYS:
+ aBasicApp.pHelp->Start( CUniString( "Keyboard" ) );
+ break;
+ case RID_HELPINDEX:
+ aBasicApp.pHelp->Start( HELP_INDEX );
+ break;
+ case RID_HELPINTRO:
+ aBasicApp.pHelp->Start( HELP_HELPONHELP );
+ break;
+*/ case RID_HELPABOUT:
+ {
+ ResId aResId( IDD_ABOUT_DIALOG );
+ if ( Basic().pTestObject ) // Wir sind also TestTool
+ aResId = ResId( IDD_TT_ABOUT_DIALOG );
+ else
+ aResId = ResId( IDD_ABOUT_DIALOG );
+ AboutDialog( this, aResId ).Execute();
+ }
+ break;
+ case RID_POPUPEDITVAR:
+ {
+ new VarEditDialog( this, pEditVar );
+ }
+ break;
+ default:
+ if ( nID >= RID_WIN_FILE1 && nID <= RID_WIN_FILEn )
+ {
+ MenuBar* pMenu = GetMenuBar();
+ PopupMenu* pWinMenu = pMenu->GetPopupMenu( RID_APPWINDOW );
+ String aName = pWinMenu->GetItemText( nID );
+ AppWin* pWin = FindWin( aName );
+ if ( pWin )
+ pWin->ToTop();
+ }
+ else
+ {
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPEDIT )); // So da Delete richtig ist
+ if( pWork )
+ pWork->Command( CommandEvent( Point(), nID ) );
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPEDIT )); // So da Delete richtig ist
+ }
+ }
+ return TRUE;
+}
+
+BOOL BasicFrame::SaveAll()
+{
+ AppWin* p, *q = pWork;
+ for( p = pList->First(); p; p = pList->Next() )
+ {
+ USHORT nRes = p->QuerySave( QUERY_DISK_CHANGED );
+ if( (( nRes == SAVE_RES_ERROR ) && QueryBox(this,ResId(IDS_ASKSAVEERROR)).Execute() == RET_NO )
+ || ( nRes == SAVE_RES_CANCEL ) )
+ return FALSE;
+ }
+ if ( q )
+ q->ToTop();
+ return TRUE;
+}
+
+IMPL_LINK( BasicFrame, ModuleWinExists, String*, pFilename )
+{
+ return FindModuleWin( *pFilename ) != NULL;
+}
+
+AppBasEd* BasicFrame::FindModuleWin( const String& rName )
+{
+ AppWin* p;
+ for( p = pList->First(); p; p = pList->Next() )
+ {
+ if( p->ISA(AppBasEd) && ((AppBasEd*)p)->GetModName() == rName )
+ return ((AppBasEd*)p);
+ }
+ return NULL;
+}
+
+AppError* BasicFrame::FindErrorWin( const String& rName )
+{
+ AppWin* p;
+ for( p = pList->First(); p; p = pList->Next() )
+ {
+ if( p->ISA(AppError) && ((AppError*)p)->GetText() == rName )
+ return ((AppError*)p);
+ }
+ return NULL;
+}
+
+AppWin* BasicFrame::FindWin( const String& rName )
+{
+ AppWin* p;
+ for( p = pList->First(); p; p = pList->Next() )
+ {
+ if( p->GetText() == rName )
+ return p;
+ }
+ return NULL;
+}
+
+AppWin* BasicFrame::FindWin( USHORT nWinId )
+{
+ AppWin* p;
+ for( p = pList->First(); p; p = pList->Next() )
+ {
+ if( p->GetWinId() == nWinId )
+ return p;
+ }
+ return NULL;
+}
+
+class NewFileDialog : public FileDialog
+{
+private:
+ String aLastPath;
+public:
+ ByteString aPathName;
+ NewFileDialog( Window* pParent, WinBits nWinStyle ):FileDialog( pParent, nWinStyle ){};
+ virtual short Execute();
+ virtual void FilterSelect();
+};
+
+void NewFileDialog::FilterSelect()
+{
+ String aTemp = GetPath();
+ if ( aLastPath.Len() == 0 )
+ aLastPath = DirEntry( GetPath() ).GetPath().GetFull();
+ if ( aLastPath.CompareIgnoreCaseToAscii( DirEntry( GetPath() ).GetPath().GetFull() ) != COMPARE_EQUAL )
+ return; // Der Benutzer entscheidet sich nachdem er den Pfad gendert hat.
+
+ String aCurFilter = GetCurFilter();
+ USHORT nFilterNr = 0;
+ while ( nFilterNr < GetFilterCount() && aCurFilter != GetFilterName( nFilterNr ) )
+ {
+ nFilterNr++;
+ }
+ aPathName = ByteString( GetFilterType( nFilterNr ), RTL_TEXTENCODING_UTF8 );
+
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup( "Path" );
+ aLastPath = UniString( aConf.ReadKey( aPathName, aConf.ReadKey( "Basisverzeichnis" ) ), RTL_TEXTENCODING_UTF8 );
+ SetPath( aLastPath );
+// if ( IsInExecute() )
+// SetPath( "" );
+}
+
+short NewFileDialog::Execute()
+{
+ BOOL bRet = FileDialog::Execute();
+ if ( bRet )
+ {
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup( "Path" );
+ aConf.WriteKey( aPathName, ByteString( DirEntry( GetPath() ).GetPath().GetFull(), RTL_TEXTENCODING_UTF8 ) );
+ }
+ return bRet;
+}
+
+BOOL BasicFrame::QueryFileName
+ (String& rName, FileType nFileType, BOOL bSave )
+{
+ NewFileDialog aDlg( this, bSave ? WinBits( WB_SAVEAS ) :
+ WinBits( WB_OPEN ) );
+ aDlg.SetText( String( ResId( bSave ? IDS_SAVEDLG : IDS_LOADDLG ) ) );
+
+ if ( nFileType & FT_RESULT_FILE )
+ {
+ aDlg.SetDefaultExt( String( ResId( IDS_RESFILE ) ) );
+ aDlg.AddFilter( String( ResId( IDS_RESFILTER ) ), String( ResId( IDS_RESFILE ) ) );
+ aDlg.AddFilter( String( ResId( IDS_TXTFILTER ) ), String( ResId( IDS_TXTFILE ) ) );
+ aDlg.SetCurFilter( ResId( IDS_RESFILTER ) );
+ }
+
+ if ( nFileType & FT_BASIC_SOURCE )
+ {
+ aDlg.SetDefaultExt( String( ResId( IDS_NONAMEFILE ) ) );
+ aDlg.AddFilter( String( ResId( IDS_BASFILTER ) ), String( ResId( IDS_NONAMEFILE ) ) );
+ aDlg.AddFilter( String( ResId( IDS_INCFILTER ) ), String( ResId( IDS_INCFILE ) ) );
+ aDlg.SetCurFilter( ResId( IDS_BASFILTER ) );
+ }
+
+ if ( nFileType & FT_BASIC_LIBRARY )
+ {
+ aDlg.SetDefaultExt( String( ResId( IDS_LIBFILE ) ) );
+ aDlg.AddFilter( String( ResId( IDS_LIBFILTER ) ), String( ResId( IDS_LIBFILE ) ) );
+ aDlg.SetCurFilter( ResId( IDS_LIBFILTER ) );
+ }
+
+
+ aDlg.FilterSelect(); // Setzt den Pfad vom letzten mal.
+// if ( bSave )
+ if ( rName.Len() > 0 )
+ aDlg.SetPath( rName );
+
+ if( aDlg.Execute() )
+ {
+ rName = aDlg.GetPath();
+/* rExtension = aDlg.GetCurrentFilter();
+ var i:integer;
+ for ( i = 0 ; i < aDlg.GetFilterCount() ; i++ )
+ if ( rExtension == aDlg.GetFilterName( i ) )
+ rExtension = aDlg.GetFilterType( i );
+*/
+ return TRUE;
+ } else return FALSE;
+}
+
+USHORT BasicFrame::BreakHandler()
+{
+ bInBreak = TRUE;
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+// MenuBar aBar( ResId( RID_APPMENUBAR ) );
+// aBar.EnableItem( RID_APPEDIT, FALSE );
+ SetAppMode( String( ResId ( IDS_APPMODE_BREAK ) ) );
+ while( bInBreak )
+#if SUPD >= 357
+ GetpApp()->Yield();
+#else
+ GetpApp()->Reschedule();
+#endif
+ SetAppMode( String( ResId ( IDS_APPMODE_RUN ) ) );
+// aBar.EnableItem( RID_APPEDIT, TRUE );
+// InitMenu(GetMenuBar()->GetPopupMenu( RID_APPRUN ));
+ return nFlags;
+}
+
+void BasicFrame::LoadLibrary()
+{
+ String s;
+ if( QueryFileName( s, FT_BASIC_LIBRARY, FALSE ) )
+ {
+ CloseAll();
+ SvFileStream aStrm( s, STREAM_STD_READ );
+ MyBasic* pNew = (MyBasic*) SbxBase::Load( aStrm );
+ if( pNew && pNew->ISA( MyBasic ) )
+ {
+ pBasic = pNew;
+ // Alle Inhalte - sofern vorhanden - anzeigen
+ SbxArray* pMods = pBasic->GetModules();
+ for( USHORT i = 0; i < pMods->Count(); i++ )
+ {
+ SbModule* pMod = (SbModule*) pMods->Get( i );
+ AppWin* p = new AppBasEd( this, pMod );
+ p->Show();
+ }
+ }
+ else
+ {
+ delete pNew;
+ ErrorBox( this, ResId( IDS_READERROR ) ).Execute();
+ }
+ }
+}
+
+void BasicFrame::SaveLibrary()
+{
+ String s;
+ if( QueryFileName( s, FT_BASIC_LIBRARY, TRUE ) )
+ {
+ SvFileStream aStrm( s, STREAM_STD_WRITE );
+ if( !Basic().Store( aStrm ) )
+ ErrorBox( this, ResId( IDS_WRITEERROR ) ).Execute();
+ }
+}
+
+String BasicFrame::GenRealString( const String &aResString )
+{
+ xub_StrLen nStart,nGleich,nEnd,nStartPos = 0;
+ String aType,aValue,aResult(aResString);
+ String aString;
+ xub_StrLen nInsertPos;
+ BOOL bFound;
+
+ while ( (nStart = aResult.Search(StartKenn,nStartPos)) != STRING_NOTFOUND &&
+ (nGleich = aResult.SearchAscii("=",nStart+StartKenn.Len())) != STRING_NOTFOUND &&
+ (nEnd = aResult.Search(EndKenn,nGleich+1)) != STRING_NOTFOUND)
+ {
+ aType = aResult.Copy(nStart,nGleich-nStart);
+ aValue = aResult.Copy(nGleich+1,nEnd-nGleich-1);
+ bFound = FALSE;
+ if ( aType.CompareTo(ResKenn) == COMPARE_EQUAL )
+ {
+// if ( Resource::GetResManager()->IsAvailable( ResId( aValue ) ) )
+ aString = String( ResId( aValue.ToInt32() ) );
+// else
+ {
+// DBG_ERROR( "Ressource konnte nicht geladen werden" );
+// return aResString;
+ }
+ nInsertPos = nStart;
+ nStartPos = nStart;
+ aResult.Erase( nStart, nEnd-nStart+1 );
+ }
+ else if ( aType.Search(BaseArgKenn) == 0 ) // Fngt mit BaseArgKenn an
+ {
+ USHORT nArgNr = aType.Copy( BaseArgKenn.Len() ).ToInt32();
+ DBG_ASSERT( aString.Search( CUniString("($Arg").Append( String::CreateFromInt32(nArgNr) ).AppendAscii(")") ) != STRING_NOTFOUND, "Extra Argument given in String");
+ aString.SearchAndReplace( CUniString("($Arg").Append( String::CreateFromInt32(nArgNr) ).AppendAscii(")"), aValue );
+ nStartPos = nStart;
+ aResult.Erase( nStart, nEnd-nStart+1 );
+ }
+ else
+ {
+ DBG_ERROR( CByteString("Unknown replacement in String: ").Append( ByteString( aResult.Copy(nStart,nEnd-nStart), RTL_TEXTENCODING_UTF8 ) ).GetBuffer() );
+ nStartPos += StartKenn.Len();
+ }
+ }
+ DBG_ASSERT( aString.SearchAscii( "($Arg" ) == STRING_NOTFOUND, "Argument missing in String");
+ aResult.Insert( aString, nInsertPos );
+ return aResult;
+}
+
+
diff --git a/basic/source/app/app.hxx b/basic/source/app/app.hxx
new file mode 100644
index 000000000000..c65a6f126abd
--- /dev/null
+++ b/basic/source/app/app.hxx
@@ -0,0 +1,228 @@
+/*************************************************************************
+ *
+ * $RCSfile: app.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _BASICAPP_HXX
+#define _BASICAPP_HXX
+
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _HELP_HXX //autogen
+#include <vcl/help.hxx>
+#endif
+#ifndef _MENU_HXX //autogen
+#include <vcl/menu.hxx>
+#endif
+#ifndef _WRKWIN_HXX //autogen
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _TIMER_HXX //autogen
+#include <vcl/timer.hxx>
+#endif
+#ifndef _SFXBRDCST_HXX
+#include <svtools/brdcst.hxx>
+#endif
+#ifndef _SFXLSTNER_HXX
+#include <svtools/lstner.hxx>
+#endif
+
+class BasicFrame;
+#include "mybasic.hxx"
+
+class EditList;
+class AppWin;
+class AppEdit;
+class AppBasEd;
+class MsgEdit;
+class AppError;
+class StatusLine;
+class BasicPrinter;
+struct TTLogMsg;
+
+class BasicApp : public Application {
+ short nWait; // Wait-Zaehler
+public:
+// Help* pHelp; // Hilfesystem
+ BasicFrame* pFrame; // Frame Window
+// MenuBar* pMainMenu; // Hauptmenue
+ Accelerator* pMainAccel; // Acceleratoren
+
+#ifndef VCL
+ void Main( int, char*[] );
+#else
+ void Main( );
+#endif
+
+ void LoadIniFile();
+ void SetFocus();
+ void Wait( BOOL );
+ DECL_LINK( LateInit, void * );
+};
+
+
+typedef USHORT FileType;
+
+#define FT_NO_FILE (FileType)0x00 // Ein Fehler ist aufgetreten ...
+#define FT_BASIC_SOURCE (FileType)0x01
+#define FT_BASIC_INCLUDE (FileType)0x02
+#define FT_RESULT_FILE (FileType)0x04
+#define FT_RESULT_FILE_TXT (FileType)0x08
+#define FT_BASIC_LIBRARY (FileType)0x10
+
+struct WinInfoRec;
+class DisplayHidDlg;
+
+class FloatingExecutionStatus;
+
+class BasicFrame : public WorkWindow, public SfxBroadcaster, public SfxListener
+{
+virtual BOOL Close(); // Schliessen
+ BOOL CloseAll(); // Alle Fenster schliessen
+ BOOL CompileAll(); // Alle Texte compilieren
+ AutoTimer aLineNum; // Zeigt die Zeilennummer an
+virtual void Resize();
+virtual void Move();
+ void LoadLibrary();
+ void SaveLibrary();
+ BOOL bIsAutoRun;
+ DisplayHidDlg* pDisplayHidDlg;
+
+// BreakPoint *pRunToCursorBP;
+
+ SbxVariable *pEditVar;
+
+
+
+ Timer aCheckFiles; // Prfen der Dateien auf nderungen
+ BOOL bAutoReload;
+ DECL_LINK( CheckAllFiles, Timer* );
+
+ MyBasicRef pBasic; // BASIC-Engine
+
+ String aAppName; // Inhalt der Titelteile der App:
+ String aAppFile; // AppName AppFile [AppMode]
+ String aAppMode;
+ void UpdateTitle();
+ DECL_LINK( CloseButtonClick, void* );
+ DECL_LINK( FloatButtonClick, void* );
+ DECL_LINK( HideButtonClick, void* );
+
+ FloatingExecutionStatus *pExecutionStatus;
+
+public:
+ BOOL IsAutoRun();
+ void SetAutoRun( BOOL bAuto );
+ BOOL bInBreak; // TRUE, wenn im Break-Handler
+ StatusLine* pStatus; // Statuszeile
+ EditList* pList; // List der Edit-Fenster
+ AppWin* pWork; // aktuelles Edit-Fenster
+ BasicPrinter* pPrn; // Drucker
+ BOOL bDisas; // TRUE: disassemble
+ USHORT nFlags; // Debugging-Flags
+ USHORT nMaximizedWindows; // Anzahl der Fenster, die maximized sind
+ void FocusWindow( AppWin *pWin );
+ void WinMax_Restore();
+ void WinShow_Hide();
+ void RemoveWindow( AppWin *pWin );
+ void AddWindow( AppWin *pWin );
+ void WindowRenamed( AppWin *pWin );
+
+ BasicFrame();
+ ~BasicFrame();
+ MyBasic& Basic() { return *pBasic; }
+ void AddToLRU(String const& aFile);
+ void LoadLRU();
+ DECL_LINK( InitMenu, Menu * );
+ DECL_LINK( DeInitMenu, Menu * );
+ DECL_LINK( HighlightMenu, Menu * );
+ DECL_LINK( MenuCommand, Menu * );
+ DECL_LINK( Accel, Accelerator * );
+ DECL_LINK( ShowLineNr, AutoTimer * );
+ MsgEdit* GetMsgTree( String aLogFileName );
+ DECL_LINK( Log, TTLogMsg * );
+ DECL_LINK( WinInfo, WinInfoRec * );
+ BOOL LoadFile( String aFilename );
+ long Command( short,BOOL=FALSE );// Kommando-Handler
+ BOOL SaveAll(); // Alle Fenster speichern
+ BOOL QueryFileName( String& rName, FileType nFileType, BOOL bSave );// Dateinamen ermitteln
+ DECL_LINK( ModuleWinExists, String* );
+ AppBasEd* FindModuleWin( const String& );
+ AppError* FindErrorWin( const String& );
+ AppWin* FindWin( const String& );
+ AppWin* FindWin( USHORT nWinId );
+ USHORT BreakHandler(); // Break-Handler-Callback
+
+ void SetEditVar( SbxVariable *pVar ){ pEditVar = pVar;}
+ SbxVariable* GetEditVar(){ return pEditVar;}
+ BOOL IsAutoReload() { return bAutoReload; }
+ void LoadIniFile();
+
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ void SetAppMode( const String &aNewMode ){ aAppMode = aNewMode; UpdateTitle(); }
+
+ String GenRealString( const String &aResString );
+
+};
+
+extern BasicApp aBasicApp;
+
+#endif
diff --git a/basic/source/app/appbased.cxx b/basic/source/app/appbased.cxx
new file mode 100644
index 000000000000..47b22bd795cb
--- /dev/null
+++ b/basic/source/app/appbased.cxx
@@ -0,0 +1,338 @@
+/*************************************************************************
+ *
+ * $RCSfile: appbased.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SBXCLASS_HXX //autogen
+#include <svtools/sbx.hxx>
+#endif
+#ifndef _TEXTENG_HXX //autogen
+#include <svtools/texteng.hxx>
+#endif
+#ifndef _TEXTVIEW_HXX //autogen
+#include <svtools/textview.hxx>
+#endif
+#ifndef _SB_SBMETH_HXX //autogen
+#include <sbmeth.hxx>
+#endif
+
+#ifndef _CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+#include "basic.hrc"
+#include "status.hxx"
+#include "appbased.hxx"
+#include "brkpnts.hxx"
+#include "testtool.hxx" // defines fr das Syntaxhighlighting
+
+
+TYPEINIT1(AppBasEd,AppEdit);
+AppBasEd::AppBasEd( BasicFrame* pParent, SbModule* p )
+: AppEdit( pParent )
+, pBreakpoints( NULL )
+{
+ pBreakpoints = new BreakpointWindow( this );
+ pBreakpoints->SetFont( ((TextEdit*)pDataEdit)->GetTextEditImp().pTextEngine->GetFont() );
+
+ pBreakpoints->Show();
+
+
+ ((TextEdit*)pDataEdit)->GetTextEditImp().pTextView->SetAutoIndentMode( TRUE );
+ ((TextEdit*)pDataEdit)->GetTextEditImp().pTextEngine->SetMaxTextLen( STRING_MAXLEN );
+ ((TextEdit*)pDataEdit)->GetTextEditImp().pTextEngine->SetWordDelimiters( CUniString(" ,.;:(){}[]\"'+-*/<>^\\") );
+ ((TextEdit*)pDataEdit)->GetTextEditImp().SyntaxHighlight( TRUE );
+ ((TextEdit*)pDataEdit)->SaveAsUTF8( TRUE );
+
+ String aEmpty;
+
+ pMod = p;
+ if( !pMod )
+ {
+ String aModName = *pNoName;
+ aModName += String::CreateFromInt32( nCount );
+ pMod = pFrame->Basic().MakeModule( aModName, aEmpty );
+ }
+ bCompiled = pMod->IsCompiled();
+
+ pBreakpoints->SetModule( pMod );
+
+ // Icon definieren:
+// pIcon = new Icon( ResId( RID_WORKICON ) );
+// if( pIcon ) SetIcon( *pIcon );
+
+ SetText( pMod->GetName() );
+ pDataEdit->SetText( pMod->GetSource() );
+
+ // Wurde ein Modul bergeben, dann den Quelltext von Platte laden
+ if ( p )
+ LoadSource();
+
+ // Erst nach Laden des Quelltextes die Events weiterleiten
+ ((TextEdit*)pDataEdit)->SetBreakpointWindow( pBreakpoints );
+
+ // Compiled-Flag pflegen:
+ pDataEdit->SetModifyHdl( LINK( this, AppBasEd, EditChange ) );
+
+}
+
+AppBasEd::~AppBasEd()
+{
+ pBreakpoints->SaveBreakpoints( GetText() );
+ delete pBreakpoints;
+ pMod->SetName( CUniString("--").Append( pMod->GetName() ) );
+}
+
+void AppBasEd::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
+ const SfxHint& rHint, const TypeId& )
+{
+ const SfxSimpleHint* p = PTR_CAST(SfxSimpleHint,&rHint);
+ if( p )
+ {
+ ULONG nHintId = p->GetId();
+ if( nHintId == SBX_HINT_LANGUAGE_EXTENSION_LOADED )
+ {
+ ((TextEdit*)pDataEdit)->GetTextEditImp().InvalidateSyntaxHighlight();
+ }
+ }
+}
+
+FileType AppBasEd::GetFileType()
+{
+ return FT_BASIC_SOURCE;
+}
+
+IMPL_LINK_INLINE_START( AppBasEd, EditChange, void *, p )
+{
+ bCompiled = FALSE;
+ return TRUE;
+}
+IMPL_LINK_INLINE_END( AppBasEd, EditChange, void *, p )
+
+// Set up the menu
+long AppBasEd::InitMenu( Menu* pMenu )
+{
+ AppEdit::InitMenu (pMenu );
+ BOOL bRunning = pFrame->Basic().IsRunning();
+ pMenu->EnableItem( RID_RUNCOMPILE, !bCompiled && !bRunning );
+ return TRUE;
+}
+
+long AppBasEd::DeInitMenu( Menu* pMenu )
+{
+ AppEdit::DeInitMenu (pMenu );
+ pMenu->EnableItem( RID_RUNCOMPILE );
+ return TRUE;
+}
+
+// Menu Handler
+
+void AppBasEd::Command( const CommandEvent& rCEvt )
+{
+ switch( rCEvt.GetCommand() ) {
+ case RID_TOGLEBRKPNT:
+ ((TextEdit*)pDataEdit)->GetBreakpointWindow()->ToggleBreakpoint( pDataEdit->GetLineNr() );
+ break;
+ default:
+ AppEdit::Command( rCEvt );
+ }
+}
+
+// Sourcecode-Datei laden
+
+void AppBasEd::Resize()
+{
+ if( pDataEdit ) {
+ AppEdit::Resize();
+
+ // Breakpoint window einfgen
+ Size aEditSize = pDataEdit->GetSizePixel();
+ Point aEditPos = pDataEdit->GetPosPixel();
+
+ pBreakpoints->SetPosPixel( aEditPos );
+
+ aEditPos.X() += BREAKPOINTSWIDTH;
+ pDataEdit->SetPosPixel( aEditPos );
+ aEditSize.Width() -= BREAKPOINTSWIDTH;
+ pDataEdit->SetSizePixel( aEditSize );
+
+ aEditSize.Width() = BREAKPOINTSWIDTH;
+ pBreakpoints->SetSizePixel( aEditSize );
+ }
+}
+
+void AppBasEd::PostLoad()
+{
+ pMod->SetName( GetText() );
+ pMod->Clear();
+ pMod->SetSource( pDataEdit->GetText() );
+ AppEdit::PostLoad();
+
+ pBreakpoints->LoadBreakpoints( GetText() );
+}
+
+USHORT AppBasEd::ImplSave()
+{
+ pBreakpoints->SaveBreakpoints( GetText() );
+ return AppEdit::ImplSave();
+}
+
+void AppBasEd::Reload()
+{
+ TextSelection aSelMemo = pDataEdit->GetSelection();
+ LoadSource();
+ pDataEdit->SetSelection( aSelMemo );
+}
+
+// Sourcecode-Datei nach nderung auf Platte neu laden
+void AppBasEd::LoadSource()
+{
+ BOOL bErr;
+
+// if( pDataEdit->GetText().Len() != 0 ) return;
+ String aName = pMod->GetName();
+ bErr = !pDataEdit->Load( aName );
+ pBreakpoints->LoadBreakpoints( GetText() );
+ if( bErr )
+ ErrorBox( this, ResId( IDS_READERROR ) ).Execute();
+ else
+ UpdateFileInfo( HAS_BEEN_LOADED );
+}
+
+// mit neuem Namen speichern
+void AppBasEd::PostSaveAs()
+{
+ pMod->SetName( GetText() );
+ AppEdit::PostSaveAs();
+}
+
+// Compilieren
+
+BOOL AppBasEd::Compile()
+{
+ if( !pDataEdit->HasText() || bCompiled )
+ return TRUE;
+ pMod->SetSource( pDataEdit->GetText() );
+ BOOL bRes = FALSE;
+ if( pFrame->Basic().Compile( pMod ) )
+ {
+ bRes = TRUE;
+ if( pFrame->bDisas )
+ Disassemble();
+ TextSelection aSel( pDataEdit->GetSelection() );
+ String aString;
+ pFrame->pStatus->Message( aString );
+ if( aSel.HasRange() )
+ aSel.GetStart() = aSel.GetEnd(), pDataEdit->SetSelection( aSel );
+
+ pBreakpoints->SetBPsInModule();
+ }
+ else
+ {
+ BasicError* pErr = pFrame->Basic().aErrors.First();
+ if( pErr ) pErr->Show();
+ }
+ return bCompiled = bRes;
+}
+
+void AppBasEd::Disassemble()
+{
+ String aText;
+ if( pFrame->Basic().Disassemble( pMod, aText ) )
+ Clipboard::CopyString( aText );
+}
+
+void AppBasEd::Run()
+{
+ SbxArray* pAllModules = pFrame->Basic().GetModules();
+ for (USHORT i = 0; i < pAllModules->Count(); i++)
+ {
+ if ( (pAllModules->Get(i)->GetName()).Copy(0,2).CompareToAscii( "--" ) == COMPARE_EQUAL )
+ {
+ SbxVariableRef pMod = pAllModules->Get(i); // Kleiner Hack um ums basic rumzukommen. Sollte demnchst wieder dirkt gehen.
+ pFrame->Basic().Remove(pMod);
+ i--;
+ }
+ }
+
+ SbMethod* pMain = (SbMethod*) pMod->Find( CUniString("Main"), SbxCLASS_METHOD );
+ if( pMain )
+ {
+ pMain->SetDebugFlags( pFrame->nFlags );
+ // Loest Call aus!
+ pFrame->SetAppMode( String( ResId ( IDS_APPMODE_RUN ) ) );
+ pMain->Run();
+ if (aBasicApp.pFrame)
+ {
+ BasicError* pErr = aBasicApp.pFrame->Basic().aErrors.First();
+ if( pErr ) pErr->Show();
+ aBasicApp.pFrame->SetAppMode( String() );
+ }
+ pMain->SetDebugFlags( 0 );
+ }
+}
+
+
diff --git a/basic/source/app/appbased.hxx b/basic/source/app/appbased.hxx
new file mode 100644
index 000000000000..b51974852afb
--- /dev/null
+++ b/basic/source/app/appbased.hxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * $RCSfile: appbased.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _APPBASED_HXX
+#define _APPBASED_HXX
+
+#ifndef _SB_SBMOD_HXX //autogen
+#include <sbmod.hxx>
+#endif
+#ifndef _SB_APPEDIT_HXX
+#include "appedit.hxx"
+#endif
+#ifndef _SB_TEXTEDIT_HXX
+#include "textedit.hxx"
+#endif
+
+class BasicFrame;
+class BreakpointWindow;
+
+class AppBasEd : public AppEdit { // Editor-Window:
+ SbModuleRef pMod; // compiliertes Modul
+ BOOL bCompiled; // TRUE, wenn compiliert
+protected:
+ DECL_LINK( EditChange, void * );
+#define BREAKPOINTSWIDTH 15
+ BreakpointWindow *pBreakpoints;
+ virtual USHORT ImplSave(); // Datei speichern
+
+public:
+ TYPEINFO();
+ AppBasEd( BasicFrame*, SbModule* );
+ ~AppBasEd();
+ FileType GetFileType(); // Liefert den Filetype
+ SbModule* GetModule() { return pMod; }
+ long InitMenu( Menu* ); // Initialisierung des Menues
+ virtual long DeInitMenu( Menu* ); // rcksetzen, so da wieder alle Shortcuts enabled sind
+ virtual void Command( const CommandEvent& rCEvt ); // Kommando-Handler
+ virtual void Resize(); // Bercksichtigt die Breakpointleiste
+ virtual void PostLoad(); // Nachbearbeiten des geladenen (Source am Modul setzen)
+ virtual void PostSaveAs(); // Nachbearbeiten des Modils ...
+ void Reload();
+ void LoadSource(); // Quelltext zu Objekt laden
+ BOOL Compile(); // Text compilieren
+ void Run(); // Image laufenlassen
+ void Disassemble(); // Image disassemblieren
+ const String& GetModName() const { return pMod->GetName(); }
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+};
+
+#endif
diff --git a/basic/source/app/appedit.cxx b/basic/source/app/appedit.cxx
new file mode 100644
index 000000000000..c21f8dd3c5a0
--- /dev/null
+++ b/basic/source/app/appedit.cxx
@@ -0,0 +1,286 @@
+/*************************************************************************
+ *
+ * $RCSfile: appedit.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _TEXTVIEW_HXX //autogen
+#include <svtools/textview.hxx>
+#endif
+
+#ifndef _TEXTENG_HXX //autogen
+#include <svtools/texteng.hxx>
+#endif
+
+#ifndef _UNDO_HXX
+#include <svtools/undo.hxx>
+#endif
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+#include "basic.hrc"
+#include "appedit.hxx"
+#include "brkpnts.hxx"
+
+TYPEINIT1(AppEdit,AppWin);
+AppEdit::AppEdit( BasicFrame* pParent )
+: AppWin( pParent )
+, nCurTextWidth(5)
+, pVScroll( NULL )
+, pHScroll( NULL )
+{
+ String aEmpty;
+ // evtl. den Untitled-String laden:
+
+ pDataEdit = new TextEdit( this, WB_LEFT );
+ // Icon definieren:
+// pIcon = new Icon( ResId( RID_WORKICON ) );
+// if( pIcon ) SetIcon( *pIcon );
+
+ pDataEdit->SetText( aEmpty );
+
+ pDataEdit->Show();
+
+ pVScroll = new ScrollBar( this, WB_VSCROLL|WB_DRAG );
+ pVScroll->Show();
+ pVScroll->SetScrollHdl( LINK( this, AppEdit, Scroll ) );
+ pHScroll = new ScrollBar( this, WB_HSCROLL|WB_DRAG );
+ pHScroll->Show();
+ pHScroll->SetScrollHdl( LINK( this, AppEdit, Scroll ) );
+
+ InitScrollBars();
+}
+
+AppEdit::~AppEdit()
+{
+ DataEdit *pHold = pDataEdit;
+ pDataEdit = NULL; // Erst abklemmen, dann lschen
+ delete pHold;
+ delete pHScroll;
+ delete pVScroll;
+}
+
+IMPL_LINK( AppEdit, Scroll, ScrollBar*, pScroll )
+{
+ if ( !pHScroll || !pVScroll )
+ return 0;
+
+ TextView *pTextView = ((TextEdit*)pDataEdit)->aEdit.pTextView;
+ pTextView->SetStartDocPos( Point( pHScroll->GetThumbPos(), pVScroll->GetThumbPos() ) );
+ pTextView->Invalidate();
+
+ if ( ((TextEdit*)pDataEdit)->GetBreakpointWindow() )
+ ((TextEdit*)pDataEdit)->GetBreakpointWindow()->Scroll( 0, ((TextEdit*)pDataEdit)->GetBreakpointWindow()->GetCurYOffset() - pTextView->GetStartDocPos().Y() );
+
+ return 0L;
+}
+
+
+void AppEdit::InitScrollBars()
+{
+ if ( !pHScroll || !pVScroll )
+ return;
+
+ TextView *pTextView = ((TextEdit*)pDataEdit)->aEdit.pTextView;
+// Kopiert und angepasst.
+ SetScrollBarRanges();
+
+ Size aOutSz( pTextView->GetWindow()->GetOutputSizePixel() );
+ pVScroll->SetVisibleSize( aOutSz.Height() );
+ pVScroll->SetPageSize( aOutSz.Height() * 8 / 10 );
+ pVScroll->SetLineSize( GetTextHeight() );
+ pVScroll->SetThumbPos( pTextView->GetStartDocPos().Y() );
+ pVScroll->Show();
+
+ pHScroll->SetVisibleSize( aOutSz.Width() );
+ pHScroll->SetPageSize( aOutSz.Width() * 8 / 10 );
+ pHScroll->SetLineSize( GetTextWidth( CUniString("x") ) );
+ pHScroll->SetThumbPos( pTextView->GetStartDocPos().X() );
+ pHScroll->Show();
+}
+
+void AppEdit::SetScrollBarRanges()
+{
+ // Extra-Methode, nicht InitScrollBars, da auch fuer EditEngine-Events.
+
+ if ( !pHScroll || !pVScroll )
+ return;
+
+ pHScroll->SetRange( Range( 0, nCurTextWidth ) );
+
+ pVScroll->SetRange( Range( 0, ((TextEdit*)pDataEdit)->aEdit.pTextEngine->GetTextHeight() ) );
+}
+
+
+
+USHORT AppEdit::GetLineNr(){ return pDataEdit->GetLineNr(); }
+
+FileType AppEdit::GetFileType()
+{
+ return FT_BASIC_SOURCE;
+}
+
+// Set up the menu
+long AppEdit::InitMenu( Menu* pMenu )
+{
+ AppWin::InitMenu (pMenu );
+
+ USHORT UndoCount = ((TextEdit*)pDataEdit)->aEdit.pTextEngine->GetUndoManager().GetUndoActionCount();
+ USHORT RedoCount = ((TextEdit*)pDataEdit)->aEdit.pTextEngine->GetUndoManager().GetRedoActionCount();
+
+ pMenu->EnableItem( RID_EDITUNDO, UndoCount > 0 );
+ pMenu->EnableItem( RID_EDITREDO, RedoCount > 0 );
+
+ return TRUE;
+}
+
+long AppEdit::DeInitMenu( Menu* pMenu )
+{
+ AppWin::DeInitMenu (pMenu );
+
+ pMenu->EnableItem( RID_EDITUNDO );
+ pMenu->EnableItem( RID_EDITREDO );
+
+ return TRUE;
+}
+
+// Sourcecode-Datei laden
+
+void AppEdit::Resize()
+{
+ if( !pDataEdit )
+ return;
+
+ Point rHStart,rVStart;
+ Size rHSize,rVSize;
+ Size rNewSize( GetOutputSizePixel() );
+
+ if ( pHScroll )
+ {
+ rHSize = pHScroll->GetSizePixel();
+ ULONG nHieght = rHSize.Height();
+ rNewSize.Height() -= nHieght;
+ rHStart.Y() = rNewSize.Height();
+ }
+
+ if ( pVScroll )
+ {
+ rVSize = pVScroll->GetSizePixel();
+ ULONG nWidth = rVSize.Width();
+ rNewSize.Width() -= nWidth;
+ rVStart.X() = rNewSize.Width();
+ }
+
+ rHSize.Width() = rNewSize.Width();
+ rVSize.Height() = rNewSize.Height();
+
+ if ( pHScroll )
+ {
+ pHScroll->SetPosPixel( rHStart );
+ pHScroll->SetSizePixel( rHSize );
+ }
+
+ if ( pVScroll )
+ {
+ pVScroll->SetPosPixel( rVStart );
+ pVScroll->SetSizePixel( rVSize );
+ }
+ pDataEdit->SetPosPixel( Point() );
+ pDataEdit->SetSizePixel( rNewSize );
+
+
+ TextView *pTextView = ((TextEdit*)pDataEdit)->aEdit.pTextView;
+// Kopiert und adaptiert
+ long nVisY = pTextView->GetStartDocPos().Y();
+ pTextView->ShowCursor();
+ Size aOutSz( pTextView->GetWindow()->GetOutputSizePixel() );
+ long nMaxVisAreaStart = pTextView->GetTextEngine()->GetTextHeight() - aOutSz.Height();
+ if ( nMaxVisAreaStart < 0 )
+ nMaxVisAreaStart = 0;
+ if ( pTextView->GetStartDocPos().Y() > nMaxVisAreaStart )
+ {
+ Point aStartDocPos( pTextView->GetStartDocPos() );
+ aStartDocPos.Y() = nMaxVisAreaStart;
+ pTextView->SetStartDocPos( aStartDocPos );
+ pTextView->ShowCursor();
+// pModulWindow->GetBreakPointWindow().GetCurYOffset() = aStartDocPos.Y();
+ }
+ InitScrollBars();
+ if ( nVisY != pTextView->GetStartDocPos().Y() )
+ pTextView->GetWindow()->Invalidate();
+
+}
+
+void AppEdit::PostLoad()
+{
+}
+
+// mit neuem Namen speichern
+
+void AppEdit::PostSaveAs()
+{
+}
+
+void AppEdit::Highlight( USHORT nLine, USHORT nCol1, USHORT nCol2 )
+{
+ ((TextEdit*)pDataEdit)->Highlight( nLine, nCol1, nCol2 );
+ ToTop();
+}
+
diff --git a/basic/source/app/appedit.hxx b/basic/source/app/appedit.hxx
new file mode 100644
index 000000000000..812c642c419a
--- /dev/null
+++ b/basic/source/app/appedit.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * $RCSfile: appedit.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _APPEDIT_HXX
+#define _APPEDIT_HXX
+
+#ifndef _SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+
+#include "appwin.hxx"
+#include "textedit.hxx"
+
+class BasicFrame;
+
+class AppEdit : public AppWin { // Editor-Window:
+public:
+ ScrollBar *pVScroll;
+ ScrollBar *pHScroll;
+ void SetScrollBarRanges();
+ ULONG nCurTextWidth;
+private:
+ void InitScrollBars();
+protected:
+ DECL_LINK( Scroll, ScrollBar* );
+public:
+ TYPEINFO();
+ AppEdit( BasicFrame* );
+ ~AppEdit();
+ USHORT GetLineNr(); // Aktuelle Zeilennummer
+ FileType GetFileType(); // Liefert den Filetype
+ virtual long InitMenu( Menu* ); // Initialisierung des Menues
+ virtual long DeInitMenu( Menu* ); // rcksetzen, so da wieder alle Shortcuts enabled sind
+// long Command( short ); // Kommando-Handler
+ void Resize();
+ void PostLoad(); // Nachbearbeiten des geladenen (Source am Modul setzen)
+ void PostSaveAs(); // Nachbearbeiten des Modils ...
+ void Mark( short, short, short );// Text markieren
+ void Highlight( USHORT nLine, USHORT nCol1, USHORT nCol2 );
+ virtual BOOL ReloadAllowed(){ return !StarBASIC::IsRunning(); }
+};
+
+#endif
diff --git a/basic/source/app/apperror.cxx b/basic/source/app/apperror.cxx
new file mode 100644
index 000000000000..15b6cb4e53fc
--- /dev/null
+++ b/basic/source/app/apperror.cxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: apperror.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include "basic.hrc"
+#include "apperror.hxx"
+
+TYPEINIT1(AppError,AppWin);
+AppError::AppError( BasicFrame* pParent, String aFileName )
+: AppWin( pParent )
+{
+ SetText( aFileName ); // Mu vor new MsgEdit stehen!!
+ pDataEdit = new MsgEdit( this, pParent, WB_HSCROLL | WB_VSCROLL | WB_LEFT );
+ DirEntry aEntry( aFileName );
+ UpdateFileInfo( HAS_BEEN_LOADED );
+ // Icon definieren:
+// pIcon = new Icon( ResId( RID_WORKICON ) );
+// if( pIcon ) SetIcon( *pIcon );
+
+ pDataEdit->Show();
+ GrabFocus();
+}
+
+AppError::~AppError()
+{
+ DataEdit* pTemp = pDataEdit;
+ pDataEdit = NULL;
+ delete pTemp;
+}
+
+// Set up the menu
+long AppError::InitMenu( Menu* pMenu )
+{
+ AppWin::InitMenu (pMenu );
+
+ pMenu->EnableItem( RID_EDITUNDO, FALSE );
+ pMenu->EnableItem( RID_EDITREDO, FALSE );
+
+ return TRUE;
+}
+
+long AppError::DeInitMenu( Menu* pMenu )
+{
+ AppWin::DeInitMenu (pMenu );
+
+ pMenu->EnableItem( RID_EDITUNDO );
+ pMenu->EnableItem( RID_EDITREDO );
+
+ return TRUE;
+}
+
+USHORT AppError::GetLineNr(){ return pDataEdit->GetLineNr(); }
+
+FileType AppError::GetFileType()
+{
+ return FT_RESULT_FILE;
+}
+
diff --git a/basic/source/app/apperror.hxx b/basic/source/app/apperror.hxx
new file mode 100644
index 000000000000..a806175deaac
--- /dev/null
+++ b/basic/source/app/apperror.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: apperror.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include <appwin.hxx>
+#include <msgedit.hxx>
+
+class AppError : public AppWin
+{
+protected:
+ DECL_LINK( EditChange, MsgEdit * );
+public:
+ TYPEINFO();
+ AppError( BasicFrame*, String );
+ ~AppError();
+// long Command( short nID );
+ virtual long InitMenu( Menu* ); // Initialisierung des Menues
+ virtual long DeInitMenu( Menu* ); // rcksetzen, so da wieder alle Shortcuts enabled sind
+ USHORT GetLineNr(); // Aktuelle Zeilennummer
+ FileType GetFileType(); // Liefert den Filetype
+ MsgEdit* GetMsgTree() { return ((MsgEdit*)pDataEdit); }
+ virtual BOOL ReloadAllowed(){ return !StarBASIC::IsRunning(); }
+};
+
diff --git a/basic/source/app/appwin.cxx b/basic/source/app/appwin.cxx
new file mode 100644
index 000000000000..2cd1cc4196bf
--- /dev/null
+++ b/basic/source/app/appwin.cxx
@@ -0,0 +1,647 @@
+/*************************************************************************
+ *
+ * $RCSfile: appwin.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _FSYS_HXX //autogen
+#include <tools/fsys.hxx>
+#endif
+#ifndef _CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+
+#include "basic.hrc"
+#include "app.hxx"
+#include "mybasic.hxx"
+#include "status.hxx"
+#include "appwin.hxx"
+#include "dataedit.hxx"
+#include "dialogs.hxx"
+
+String *AppWin::pNoName = NULL; // enthaelt den "Untitled"-String
+short AppWin::nNumber = 0; // fortlaufende Nummer
+short AppWin::nCount = 0; // Anzahl Editfenster
+
+TYPEINIT0(AppWin);
+AppWin::AppWin( BasicFrame* pParent )
+: DockingWindow( pParent, WB_SIZEMOVE | WB_CLOSEABLE | WB_PINABLE )
+, pDataEdit(NULL)
+, nSkipReload(0)
+, bHasFile( FALSE )
+, bReloadAborted( FALSE )
+, bFind( TRUE )
+, pFrame( pParent )
+{
+ // evtl. den Untitled-String laden:
+ if( !pNoName )
+ pNoName = new String( ResId( IDS_NONAME ) );
+ nCount++;
+
+ // Maximized Status von aktuellem Fenster holen
+ USHORT nInitialWinState;
+ if ( pFrame->pWork )
+ {
+ nInitialWinState = pFrame->pWork->GetWinState();
+ nInitialWinState &= TT_WIN_STATE_MAX | TT_WIN_STATE_FLOAT;
+ }
+ else
+ nInitialWinState = TT_WIN_STATE_MAX;
+
+ StartListening( *pFrame );
+ pFrame->AddWindow( this );
+
+ ShowTitleButton( TITLE_BUTTON_DOCKING );
+ ShowTitleButton( TITLE_BUTTON_HIDE );
+ SetActivateMode( ACTIVATE_MODE_GRABFOCUS );
+
+ Cascade( nCount );
+ if ( TT_WIN_STATE_MAX == nInitialWinState )
+ Maximize();
+}
+
+AppWin::~AppWin()
+{
+ nCount--;
+ pFrame->RemoveWindow( this );
+ pFrame = NULL; // So da nach BasicRun nicht mehr versucht wird Fenstertext zu setzen
+}
+
+void AppWin::SetText( const XubString& rStr )
+{
+ DockingWindow::SetText( rStr );
+ pFrame->WindowRenamed( this );
+}
+
+void AppWin::TitleButtonClick( USHORT nButton )
+{
+ if ( TITLE_BUTTON_DOCKING == nButton )
+ if ( TT_WIN_STATE_MAX != nWinState )
+ Maximize();
+ else
+ Restore();
+ else // if ( TITLE_BUTTON_HIDE == nButton )
+ Minimize( TRUE );
+}
+
+void AppWin::Maximize()
+{
+ if ( TT_WIN_STATE_MAX != nWinState )
+ {
+ nNormalPos = GetPosPixel();
+ nNormalSize = GetSizePixel();
+
+ SetFloatingMode( FALSE );
+
+ pFrame->nMaximizedWindows++;
+ nWinState = TT_WIN_STATE_MAX;
+ }
+ long nTitleHeight;
+ {
+ long nDummy1, nDummy2, nDummy3;
+ pFrame->GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
+ }
+
+ Size aSize = pFrame->GetOutputSizePixel();
+ aSize.Height() -= nTitleHeight;
+ aSize.Height() -= 2;
+ aSize.Width() -= 2;
+ SetSizePixel( aSize );
+ SetPosPixel( Point( 1,1 ) );
+ pFrame->WinMax_Restore();
+}
+
+void AppWin::Restore()
+{
+ SetFloatingMode( TRUE );
+ SetPosSizePixel( nNormalPos, nNormalSize );
+
+ if ( TT_WIN_STATE_MAX == nWinState )
+ pFrame->nMaximizedWindows--;
+
+ nWinState = TT_WIN_STATE_FLOAT;
+ pFrame->WinMax_Restore();
+}
+
+void AppWin::Minimize( BOOL bMinimize )
+{
+ if ( bMinimize )
+ nWinState |= TT_WIN_STATE_HIDE;
+ else
+ nWinState &= ~TT_WIN_STATE_HIDE;
+ pFrame->WinMax_Restore();
+}
+
+void AppWin::Cascade( USHORT nNr )
+{
+ Restore();
+
+ nNr--;
+ nNr %= 10;
+ nNr++;
+
+ long nTitleHeight;
+ {
+ long nDummy1, nDummy2, nDummy3;
+ pFrame->GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
+ }
+
+ Size aWinSize = pFrame->GetOutputSizePixel();
+ aWinSize.Width() -= aWinSize.Width() / 5; // auf 80 % reduzieren
+ aWinSize.Height() -= nTitleHeight * nNr; // Unten entsprechen krzen
+ aWinSize.Height() -= 2;
+
+ Point nPos( nTitleHeight * nNr, nTitleHeight * nNr );
+
+ SetPosSizePixel( nPos, aWinSize );
+}
+
+void AppWin::RequestHelp( const HelpEvent& )
+{
+ Help();
+}
+
+void AppWin::Help()
+{
+ String s = pDataEdit->GetSelected();
+ if( s.Len() ) {
+ // Leerstellen davor weg:
+ while( s.GetChar(0) == ' ' ) s.Erase( 0, 1 );
+// aBasicApp.pHelp->Start( s );
+ } else {
+// aBasicApp.pHelp->Start( HELP_INDEX );
+ }
+}
+
+void AppWin::Resize()
+{
+ if( pDataEdit )
+ {
+ pDataEdit->SetPosPixel( Point( 0, 0 ) );
+ pDataEdit->SetSizePixel( GetOutputSizePixel() );
+ }
+}
+
+void AppWin::GetFocus()
+{
+ pFrame->FocusWindow( this );
+ if( pDataEdit ) // Im Destruktor wird GetFocus gerufen, daher diese Abfrage
+ {
+ pDataEdit->GrabFocus();
+// InitMenu(GetpApp()->GetAppMenu()->GetPopupMenu( RID_APPEDIT )); // So da Delete richtig ist
+ }
+}
+
+long AppWin::PreNotify( NotifyEvent& rNEvt )
+{
+
+ if ( rNEvt.GetType() == EVENT_MOUSEBUTTONDOWN )
+ Activate();
+ if ( rNEvt.GetType() == EVENT_GETFOCUS )
+ if ( pFrame->pList->Last() != this )
+ Activate();
+ return FALSE; // Der event soll weiter verarbeitet werden
+}
+
+void AppWin::Activate()
+{
+ GrabFocus();
+}
+
+// Set up the menu
+long AppWin::InitMenu( Menu* pMenu )
+{
+ Clipboard cb;
+ TextSelection r = pDataEdit->GetSelection();
+ BOOL bMarked = r.HasRange();
+ pMenu->EnableItem( RID_EDITREPEAT, (aFind.Len() != 0 ) );
+ pMenu->EnableItem( RID_EDITCUT, bMarked );
+ pMenu->EnableItem( RID_EDITCOPY, bMarked );
+// pMenu->EnableItem( RID_EDITPASTE, (cb.GetDataLen( FORMAT_STRING ) != 0 ) );
+ pMenu->EnableItem( RID_EDITPASTE, (cb.HasFormat( FORMAT_STRING ) ) );
+ pMenu->EnableItem( RID_EDITDEL, bMarked );
+// pMenu->EnableItem( RID_HELPTOPIC, bMarked );
+
+ BOOL bHasText = pDataEdit->HasText();
+ BOOL bRunning = pFrame->Basic().IsRunning();
+ BOOL bCanExecute = BOOL( (!bRunning && bHasText) || pFrame->bInBreak );
+ pMenu->EnableItem( RID_RUNSTART, bCanExecute );
+ pMenu->EnableItem( RID_RUNBREAK, bRunning && !pFrame->bInBreak);
+ pMenu->EnableItem( RID_RUNSTOP, bRunning );
+ pMenu->EnableItem( RID_RUNTOCURSOR, bCanExecute );
+ pMenu->EnableItem( RID_RUNSTEPINTO, bCanExecute );
+ pMenu->EnableItem( RID_RUNSTEPOVER, bCanExecute );
+ return TRUE;
+}
+
+long AppWin::DeInitMenu( Menu* pMenu )
+{
+ pMenu->EnableItem( RID_EDITREPEAT );
+ pMenu->EnableItem( RID_EDITCUT );
+ pMenu->EnableItem( RID_EDITCOPY );
+ pMenu->EnableItem( RID_EDITPASTE );
+ pMenu->EnableItem( RID_EDITDEL );
+
+ pMenu->EnableItem( RID_RUNSTART );
+ pMenu->EnableItem( RID_RUNBREAK );
+ pMenu->EnableItem( RID_RUNSTOP );
+ pMenu->EnableItem( RID_RUNTOCURSOR );
+ pMenu->EnableItem( RID_RUNSTEPINTO );
+ pMenu->EnableItem( RID_RUNSTEPOVER );
+ return TRUE;
+}
+
+// Menu Handler
+
+void AppWin::Command( const CommandEvent& rCEvt )
+{
+ TextSelection r = pDataEdit->GetSelection();
+ BOOL bHasMark = r.HasRange();
+ switch( rCEvt.GetCommand() ) {
+ case RID_FILESAVE:
+ QuerySave( QUERY_DISK_CHANGED | SAVE_NOT_DIRTY ); break;
+ case RID_FILESAVEAS:
+ SaveAs(); break;
+ case RID_EDITSEARCH:
+ Find(); break;
+ case RID_EDITREPLACE:
+ Replace(); break;
+ case RID_EDITREPEAT:
+ Repeat(); break;
+ case RID_EDITCUT:
+ if( bHasMark ) pDataEdit->Cut(); break;
+ case RID_EDITCOPY:
+ if( bHasMark ) pDataEdit->Copy(); break;
+ case RID_EDITPASTE:
+ if( Clipboard::HasFormat( FORMAT_STRING ) ) pDataEdit->Paste(); break;
+ case RID_EDITDEL:
+ /*if( bHasMark ) */pDataEdit->Delete();
+ break;
+ case RID_EDITUNDO:
+ pDataEdit->Undo();
+ break;
+ case RID_EDITREDO:
+ pDataEdit->Redo();
+ break;
+ case COMMAND_CONTEXTMENU:
+ {
+ PopupMenu *pKontext = NULL;
+ pDataEdit->BuildKontextMenu( pKontext );
+ if ( pKontext )
+ {
+ USHORT nRes = pKontext->Execute( this, GetPointerPosPixel() );
+ if ( nRes )
+ pFrame->Command( nRes );
+ delete pKontext;
+ }
+ }
+ }
+}
+
+
+BOOL AppWin::IsSkipReload()
+{
+ return nSkipReload != 0;
+}
+
+void AppWin::SkipReload( BOOL bSkip )
+{
+ DBG_ASSERT( bSkip || nSkipReload, "SkipReload aufgehoben ohne es zu aktivieren");
+ if ( bSkip )
+ nSkipReload++;
+ else
+ nSkipReload--;
+}
+
+BOOL AppWin::DiskFileChanged( USHORT nWhat )
+{
+ if ( !bHasFile )
+ return FALSE;
+
+ switch ( nWhat )
+ {
+ case SINCE_LAST_LOAD:
+ {
+ if ( bReloadAborted )
+ return TRUE;
+ else
+ return DiskFileChanged( SINCE_LAST_ASK_RELOAD );
+ }
+ break;
+ case SINCE_LAST_ASK_RELOAD:
+ {
+ String aFilename( GetText() );
+
+ DirEntry aFile( aFilename );
+ FileStat aStat( aFile );
+
+ return ( !aLastAccess.GetError() != !aStat.GetError() )
+ || aLastAccess.IsYounger( aStat ) || aStat.IsYounger( aLastAccess );
+ }
+ break;
+ default:
+ DBG_ERROR("Not Implemented in AppWin::DiskFileChanged");
+ }
+ return TRUE;
+}
+
+void AppWin::UpdateFileInfo( USHORT nWhat )
+{
+ switch ( nWhat )
+ {
+ case HAS_BEEN_LOADED:
+ {
+ bReloadAborted = FALSE;
+ UpdateFileInfo( ASKED_RELOAD );
+
+ }
+ break;
+ case ASKED_RELOAD:
+ {
+ String aFilename( GetText() );
+
+ DirEntry aFile( aFilename );
+ aLastAccess.Update( aFile );
+ }
+ break;
+ default:
+ DBG_ERROR("Not Implemented in AppWin::UpdateFileInfo");
+ }
+}
+
+void AppWin::CheckReload()
+{
+ if ( IsSkipReload() || !bHasFile )
+ return;
+
+ String aFilename( GetText() );
+ DirEntry aFile( aFilename );
+ if ( !aFilename.Len() )
+ return;
+
+ if ( !aFile.Exists() )
+ return;
+
+// FileStat aStat( aFile );
+
+ if ( DiskFileChanged( SINCE_LAST_ASK_RELOAD ) && ReloadAllowed() )
+ {
+ UpdateFileInfo( ASKED_RELOAD );
+ ToTop();
+ Update();
+ if ( (IsModified() && QueryBox( this, ResId( IDS_ASKDIRTYRELOAD ) ).Execute() == RET_YES )
+ || ( !IsModified() && ( pFrame->IsAutoReload() || QueryBox( this, ResId( IDS_ASKRELOAD ) ).Execute() == RET_YES ) ) )
+ {
+ Reload();
+ }
+ else
+ {
+ bReloadAborted = TRUE;
+ }
+ }
+}
+
+void AppWin::Reload()
+{
+ SkipReload();
+ TextSelection aSelMemo = pDataEdit->GetSelection();
+ Load( GetText() );
+ pDataEdit->SetSelection( aSelMemo );
+ SkipReload( FALSE );
+}
+
+// Datei laden
+
+void AppWin::Load( const String& aName )
+{
+ SkipReload();
+ BOOL bErr;
+
+// if( !QuerySave() )
+// return;
+ bErr = !pDataEdit->Load( aName );
+ if( bErr )
+ ErrorBox( this, ResId( IDS_READERROR ) ).Execute();
+ else
+ {
+ DirEntry aEntry( aName );
+ String aModName = aEntry.GetFull();
+ SetText( aModName );
+ UpdateFileInfo( HAS_BEEN_LOADED );
+ PostLoad();
+ bHasFile = TRUE;
+ }
+ SkipReload( FALSE );
+}
+
+// Datei speichern
+
+USHORT AppWin::ImplSave()
+{
+ SkipReload();
+ BOOL bResult = SAVE_RES_NOT_SAVED;
+ String s1 = *pNoName;
+ String s2 = GetText().Copy( 0, s1.Len() );
+ if( s1 == s2 )
+ bResult = SaveAs();
+ else {
+ String aName = GetText();
+ if ( pDataEdit->Save( aName ) )
+ {
+ bResult = SAVE_RES_SAVED;
+ bHasFile = TRUE;
+ }
+ else
+ {
+ bResult = SAVE_RES_ERROR;
+ ErrorBox( this, ResId( IDS_WRITEERROR ) ).Execute();
+ }
+ UpdateFileInfo( HAS_BEEN_LOADED );
+ }
+ SkipReload( FALSE );
+ return bResult;
+}
+
+// mit neuem Namen speichern
+
+USHORT AppWin::SaveAs()
+{
+ SkipReload();
+ String s1 = *pNoName;
+ String s2 = GetText().Copy( 0, s1.Len() );
+ if( s1 == s2 ) s2.Erase();
+ else s2 = GetText();
+ if( pFrame->QueryFileName( s2, GetFileType(), TRUE ) )
+ {
+ SetText( s2 );
+ PostSaveAs();
+ SkipReload( FALSE );
+ return ImplSave();
+ }
+ else
+ {
+ SkipReload( FALSE );
+ return SAVE_RES_CANCEL;
+ }
+}
+
+// Soll gespeichert werden?
+
+USHORT AppWin::QuerySave( QueryBits nBits )
+{
+ BOOL bQueryDirty = ( nBits & QUERY_DIRTY ) != 0;
+ BOOL bQueryDiskChanged = ( nBits & QUERY_DISK_CHANGED ) != 0;
+ BOOL bSaveNotDirty = ( nBits & SAVE_NOT_DIRTY ) != 0;
+
+ SkipReload();
+ short nResult;
+ if ( IsModified() || bSaveNotDirty )
+ nResult = RET_YES;
+ else
+ nResult = RET_NO;
+
+ if( ( ( IsModified() || bSaveNotDirty ) && bQueryDirty ) || ( DiskFileChanged( SINCE_LAST_LOAD ) && bQueryDiskChanged ) )
+ {
+ ToTop();
+ if ( ( ( IsModified() && bQueryDirty ) && DiskFileChanged( SINCE_LAST_LOAD ) )
+ || ( IsModified() && ( DiskFileChanged( SINCE_LAST_LOAD ) && bQueryDiskChanged ) ) )
+ nResult = QueryBox( this, ResId( IDS_ASK_DIRTY_AND_DISKCHANGE_SAVE ) ).Execute();
+ else if ( ( IsModified() && bQueryDirty ) )
+ nResult = QueryBox( this, ResId( IDS_ASK_DIRTY_SAVE ) ).Execute();
+ else
+ nResult = QueryBox( this, ResId( IDS_ASK_DISKCHANGE_SAVE ) ).Execute();
+ }
+
+
+ USHORT nReturn;
+ switch( nResult )
+ {
+ case RET_YES:
+ nReturn = ImplSave();
+ break;
+ case RET_NO:
+ nReturn = SAVE_RES_NOT_SAVED;
+ break;
+ case RET_CANCEL:
+ nReturn = SAVE_RES_CANCEL;
+ break;
+ }
+ SkipReload( FALSE );
+ return nReturn;
+}
+
+BOOL AppWin::Close()
+{
+ switch ( QuerySave( QUERY_DIRTY ) )
+ {
+ case SAVE_RES_NOT_SAVED:
+ case SAVE_RES_SAVED:
+ {
+ DockingWindow::Close();
+ delete this;
+ return TRUE;
+ }
+ break;
+ case SAVE_RES_ERROR: // Fehlermeldung schon ausgegeben
+ return FALSE;
+ break;
+ case SAVE_RES_CANCEL:
+ return FALSE;
+ break;
+ default:
+ DBG_ERROR("Not Implemented in AppWin::Close")
+ return FALSE;
+ }
+}
+
+// Text suchen
+
+void AppWin::Find()
+{
+ ResId aResId( IDD_FIND_DIALOG );
+ FindDialog aDlg( this, aResId, aFind );
+ if( aDlg.Execute() ) {
+ bFind = TRUE;
+ Repeat();
+ }
+}
+
+// Text ersetzen
+
+void AppWin::Replace()
+{
+ ResId aResId( IDD_REPLACE_DIALOG );
+ ReplaceDialog* pDlg = new ReplaceDialog
+ (this, aResId, aFind, aReplace );
+ if( pDlg->Execute() ) {
+ bFind = FALSE;
+ Repeat();
+ }
+}
+
+// Suchen/ersetzen wiederholen
+
+void AppWin::Repeat()
+{
+ if( (aFind.Len() != 0 ) && ( pDataEdit->Find( aFind ) || (ErrorBox(this,ResId(IDS_PATTERNNOTFOUND)).Execute() && FALSE) ) && !bFind )
+ pDataEdit->ReplaceSelected( aReplace );
+}
+
diff --git a/basic/source/app/appwin.hxx b/basic/source/app/appwin.hxx
new file mode 100644
index 000000000000..2a8c953acf32
--- /dev/null
+++ b/basic/source/app/appwin.hxx
@@ -0,0 +1,175 @@
+/*************************************************************************
+ *
+ * $RCSfile: appwin.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _APPWIN_HXX
+#define _APPWIN_HXX
+
+//#include <sb.hxx>
+#ifndef _SV_DOCKWIN_HXX
+#include <vcl/dockwin.hxx>
+#endif
+#ifndef _FSYS_HXX //autogen
+#include <tools/fsys.hxx>
+#endif
+
+#include "app.hxx"
+#include "dataedit.hxx"
+
+typedef USHORT QueryBits;
+#define QUERY_NONE ( QueryBits ( 0x00 ) )
+#define QUERY_DIRTY ( QueryBits ( 0x01 ) )
+#define QUERY_DISK_CHANGED ( QueryBits ( 0x02 ) )
+#define QUERY_ALL ( QUERY_DIRTY | QUERY_DISK_CHANGED )
+#define SAVE_NOT_DIRTY ( QueryBits ( 0x04 ) )
+
+#define SAVE_RES_SAVED TRUE
+#define SAVE_RES_NOT_SAVED FALSE
+#define SAVE_RES_ERROR 3
+#define SAVE_RES_CANCEL 4
+
+
+#define SINCE_LAST_LOAD 1
+#define SINCE_LAST_ASK_RELOAD 2
+
+#define HAS_BEEN_LOADED 1 // includes ASKED_RELOAD
+#define ASKED_RELOAD 2
+
+
+#define TT_WIN_STATE_MAX 0x01
+#define TT_WIN_STATE_FLOAT 0x02
+#define TT_WIN_STATE_HIDE 0x04
+
+class BasicFrame;
+
+class AppWin : public DockingWindow, public SfxListener // Dokumentfenster
+{
+ friend MsgEdit;
+protected:
+ static short nNumber; // fortlaufende Nummer
+ static short nCount; // Anzahl Editfenster
+ static String *pNoName; // "Untitled"
+ FileStat aLastAccess; // Wann wurde die geladene Dateiversion verndert
+ USHORT nSkipReload; // Manchmal darf kein Reload erfolgen
+ BOOL bHasFile; // Ansonsten hat reload auch keinen Sinn
+ BOOL bReloadAborted; // Wird gesetzt, wenn reload abgelehnt wurde, so da beim Schlieen nochmal gefragt werden kann
+
+ short nId; // ID-Nummer( "Unbenannt n" )
+ BasicFrame* pFrame; // Parent-Window
+// Icon* pIcon; // Dokument-Icon
+ String aFind; // Suchstring
+ String aReplace; // Ersetze-String
+ BOOL bFind; // TRUE, wenn Suchen und nicht Ersetzen
+ void RequestHelp( const HelpEvent& );// Hilfe-Handler
+ void GetFocus(); // aktivieren
+ virtual USHORT ImplSave(); // Datei speichern
+ USHORT nWinState; // Maximized, Iconized oder Normal
+ Point nNormalPos; // Position wenn Normal
+ Size nNormalSize; // Gre wenn Normal
+ virtual long PreNotify( NotifyEvent& rNEvt );
+ USHORT nWinId;
+
+public:
+ TYPEINFO();
+ AppWin( BasicFrame* );
+ ~AppWin();
+ DataEdit* pDataEdit; // Daten-Flaeche
+ virtual USHORT GetLineNr()=0; // Aktuelle Zeilennummer
+ virtual long InitMenu( Menu* ); // Initialisierung des Menues
+ virtual long DeInitMenu( Menu* ); // rcksetzen, so da wieder alle Shortcuts enabled sind
+ virtual void Command( const CommandEvent& rCEvt ); // Kommando-Handler
+ virtual void Resize(); // Aenderung Fenstergroesse
+ virtual void Help(); // Hilfe aktivieren
+ virtual void Load( const String& ); // Datei laden
+ virtual void PostLoad(){} // Nachbearbeiten des geladenen (Source am Modul setzen)
+ virtual USHORT SaveAs(); // Datei unter neuem Namen speichern
+ virtual void PostSaveAs(){} // Nachbearbeiten des Moduls ...
+ virtual void Find(); // Text suchen
+ virtual void Replace(); // Text ersetzen
+ virtual void Repeat(); // Suche wiederholen
+ virtual BOOL Close(); // Fenster schliessen
+ virtual void Activate(); // Fenster wurde aktiviert
+ virtual FileType GetFileType()=0; // Liefert den Filetype
+ virtual BOOL ReloadAllowed(){ return TRUE; } // Ermglicht dem Dok temporr NEIN zu sagen
+ virtual void Reload(); // Reload nach nderung auf Platte
+ void CheckReload(); // Prft und Fragt ob reloaded werden soll
+ BOOL DiskFileChanged( USHORT nWhat ); // Prft ob die Datei sich verndert hat
+ void UpdateFileInfo( USHORT nWhat ); // Merkt sich den aktuellen Zustand der Datei
+ BOOL IsSkipReload(); // Soll reload getestet werden
+ void SkipReload( BOOL bSkip = TRUE );
+ USHORT GetWinState(){ return nWinState; }
+ void Maximize();
+ void Restore();
+ void Minimize( BOOL bMinimize );
+ void Cascade( USHORT nNr );
+
+ USHORT QuerySave( QueryBits nBits = QUERY_ALL ); // Speichern
+ BOOL IsModified() { return pDataEdit->IsModified(); }
+ BasicFrame* GetBasicFrame() { return pFrame; }
+ virtual void TitleButtonClick( USHORT nButton );
+ virtual void SetText( const XubString& rStr );
+
+ USHORT GetWinId() { return nWinId; }
+ void SetWinId( USHORT nId ) { nWinId = nId; }
+};
+
+DECLARE_LIST( EditList, AppWin* );
+
+#endif
diff --git a/basic/source/app/basic.hrc b/basic/source/app/basic.hrc
new file mode 100644
index 000000000000..2b49303e3c33
--- /dev/null
+++ b/basic/source/app/basic.hrc
@@ -0,0 +1,218 @@
+/*************************************************************************
+ *
+ * $RCSfile: basic.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#define RID_OPTLIST 101
+#define RID_OPTLINES 102
+#define RID_OPTPACKS 103
+#define RID_OPTPACKD 104
+#define RID_OPTWARN1 105
+#define RID_OPTWARN2 106
+#define RID_OPTVIRT 107
+#define RID_PARAMS 108
+#define RID_RETTYPE 109
+#define RID_RETVAL 110
+//#define RID_APPICON 500
+//#define RID_APPICON2 501
+//#define RID_WORKICON 502
+//#define RID_LOADICON 503
+//#define RID_SAVEICON 504
+#define RID_APPMENUBAR 1000
+#define RID_APPFILE 1001
+#define RID_APPEDIT 1002
+#define RID_APPRUN 1003
+#define RID_APPWINDOW 1004
+#define RID_APPHELP 1005
+#define RID_FILE 1100
+#define RID_FILENEW 1101
+#define RID_FILEOPEN 1102
+#define RID_FILECLOSE 1103
+#define RID_FILESAVE 1104
+#define RID_FILESAVEAS 1105
+#define RID_FILELOADLIB 1106
+#define RID_FILESAVELIB 1107
+#define RID_FILEPRINT 1109
+#define RID_FILESETUP 1110
+#define RID_QUIT 1111
+#define IDM_FILE_LRU1 1112
+#define IDM_FILE_LRU2 (IDM_FILE_LRU1 + 1)
+#define IDM_FILE_LRU3 (IDM_FILE_LRU2 + 1)
+#define IDM_FILE_LRU4 (IDM_FILE_LRU3 + 1)
+#define RID_EDIT 1200
+#define RID_EDITUNDO 1201
+#define RID_EDITREDO 1202
+#define RID_EDITCUT 1203
+#define RID_EDITCOPY 1204
+#define RID_EDITPASTE 1205
+#define RID_EDITDEL 1206
+#define RID_EDITSEARCH 1207
+#define RID_EDITREPLACE 1208
+#define RID_EDITREPEAT 1209
+#define RID_RUN 1300
+#define RID_RUNCOMPILE 1301
+#define RID_RUNSTART 1302
+#define RID_RUNBREAK 1304
+#define RID_RUNSTOP 1303
+#define RID_RUNNEXTERR 1307
+#define RID_RUNPREVERR 1308
+#define RID_RUNDISAS 1310
+#define RID_RUNSTEPINTO 1311
+#define RID_RUNSTEPOVER 1312
+#define RID_RUNTOCURSOR 1313
+#define RID_TOGLEBRKPNT 1314
+#define RID_TT_EXTRAS_NAME 1400
+#define RID_TT_EXTRAS 1401
+#define RID_OPTIONS 1402
+#define RID_DECLARE_HELPER 1403
+#define RID_WINDOW 1501
+#define RID_WINTILE 1502
+#define RID_WINTILEHORZ 1503
+#define RID_WINTILEVERT 1504
+#define RID_WINCASCADE 1505
+#define RID_WIN_FILE1 1520
+#define RID_WIN_FILEn 1599
+
+#define RID_HELP 1601
+//#define RID_HELPINDEX 1602
+//#define RID_HELPKEYS 1603
+//#define RID_HELPINTRO 1604
+//#define RID_HELPTOPIC 1605
+#define RID_HELPABOUT 1606
+#define RID_POPUP 1700
+#define RID_POPUPEDITVAR 1701
+
+
+
+#define IDS_APPNAME 2000
+#define IDS_APPNAME2 2001
+#define IDS_APPMODE_BREAK 2002
+#define IDS_APPMODE_RUN 2003
+#define IDS_NONAME 2100
+#define IDS_NONAMEFILE 2101
+#define IDS_INCFILE 2102
+#define IDS_LIBFILE 2103
+#define IDS_RESFILE 2104
+#define IDS_TXTFILE 2105
+#define IDS_READERROR 2103
+#define IDS_WRITEERROR 2104
+#define IDS_COMPERROR 2105
+#define IDS_CONTINUE 2106
+#define IDS_CANCEL 2107
+#define IDS_NOPRINTERERROR 2108
+#define IDS_PATTERNNOTFOUND 2109
+#define IDS_INVALID_VALUE 2110
+#define IDS_ASK_DIRTY_SAVE 2200
+#define IDS_ASK_DISKCHANGE_SAVE 2201
+#define IDS_ASK_DIRTY_AND_DISKCHANGE_SAVE 2202
+#define IDS_ASKSAVEERROR 2203
+#define IDS_ASKRELOAD 2204
+#define IDS_ASKDIRTYRELOAD 2205
+#define IDS_LOADDLG 2300
+#define IDS_SAVEDLG 2301
+#define IDS_BASFILTER 2304
+#define IDS_LIBFILTER 2305
+#define IDS_INCFILTER 2306
+#define IDS_RESFILTER 2307
+#define IDS_TXTFILTER 2308
+#define IDS_PAGE 2401
+#define IDS_PRINTMSG 2402
+#define IDS_CANTLOAD 2501
+#define IDS_CANTSAVE 2502
+#define IDS_ERROR1 2601
+#define IDS_ERROR2 2602
+#define IDS_WARNING1 2603
+#define IDS_NO_LONGNAME 2604
+#define IDS_WARNING_PREFIX 2605
+#define IDS_OBJECT 2606
+#define IDS_EDIT_VAR 2607
+
+#define IDS_NOMAINPGM 2701
+#define IDS_DISASWIN 2702
+#define IDS_RUNNING 2703
+#define IDS_NOT_YET_IMPLEMENTED 2704
+#define IDS_LOSS_OF_INFORMATION 2705
+
+#define RID_ACCEL 3000
+
+#define IDD_LOADSAVE_DIALOG 4001
+#define IDD_ABOUT_DIALOG 4002
+#define IDD_TT_ABOUT_DIALOG 4003
+#define IDD_FIND_DIALOG 4004
+#define IDD_REPLACE_DIALOG 4005
+#define IDD_PRINT_DIALOG 4006
+#define IDD_OPTIONS_DLG 4007
+#define RID_TP_SPECIAL 4008
+#define RID_TP_GENERIC 4009
+#define IDD_DISPLAY_HID 4010
+#define IDD_EDIT_VAR 4010
+
+
+//#define RID_APPFONT 5000
+//#define RID_APPEDITFONT 5001
+//#define RID_DLGBRUSH 5002
+#define RID_CALLDLG 6001
+#define MBP_PLUS 8001
+#define MBP_MINUS 8002
+#define MBP_ASSERT 8003
+#define RID_IMGLST_LAYOUT 8004
+#define MAIN_ACCEL 9001
+
+#define LOAD_CONF 10001
+#define WORK 10002
+#define FILENAME 10003
diff --git a/basic/source/app/basic.src b/basic/source/app/basic.src
new file mode 100644
index 000000000000..f96d5641ddd1
--- /dev/null
+++ b/basic/source/app/basic.src
@@ -0,0 +1,4089 @@
+/*************************************************************************
+ *
+ * $RCSfile: basic.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include "basic.hrc"
+#include "resids.hrc"
+
+ModalDialog RID_CALLDLG {
+ Text = "Dynamischer Link Nr. ";
+ Text [ english_us ] = "Dynamic Link No. ";
+ PosSize = MAP_SYSFONT (18,18,142,142);
+ SVLook = TRUE;
+ MOVEABLE = TRUE;
+ CLOSEABLE = TRUE;
+// WinChilds = {
+// FixedText {
+// Text = "Aktuelle Parameter";
+// Text [ english_us ] = "Aktuelle Parameter";
+// PosSize = MAP_SYSFONT (10,10,120,8);
+// };
+// };
+ FixedText RID_RETTYPE {
+ PosSize = MAP_SYSFONT (10,70,120,8);
+ };
+ Edit RID_RETVAL {
+ PosSize = MAP_SYSFONT (10,85,120,12);
+ Border = TRUE;
+ TabStop = TRUE;
+ };
+ ListBox RID_PARAMS {
+ PosSize = MAP_SYSFONT (10,25,120,40);
+ TabStop = TRUE;
+ Border = TRUE;
+ };
+ OKButton RID_OK {
+ PosSize = MAP_SYSFONT (50,105,40,14);
+ TabStop = TRUE;
+ DefButton = TRUE;
+ };
+ Text[ portuguese ] = "Ligao dinmica n. ";
+ Text[ russian ] = "Dynamic Link No. ";
+ Text[ greek ] = "Dynamic Link No. ";
+ Text[ dutch ] = "Dynamische link no. ";
+ Text[ french ] = "Lien dynamique No. ";
+ Text[ spanish ] = "Vnculo dinmico nm.: ";
+ Text[ italian ] = "Dynamic Link No. ";
+ Text[ danish ] = "Dynamic Link No. ";
+ Text[ swedish ] = "Dynamic link No. ";
+ Text[ polish ] = "Dynamic Link No. ";
+ Text[ portuguese_brazilian ] = "Dynamischer Link Nr. ";
+ Text[ japanese ] = "Dynamic Link No. ";
+ Text[ korean ] = " ũ ȣ ";
+ Text[ chinese_simplified ] = "Dynamischer Link Nr. ";
+ Text[ chinese_traditional ] = "Dynamic Link No. ";
+ Text[ arabic ] = "Dynamic Link No. ";
+ Text[ turkish ] = "Dinamik balant no. ";
+};
+
+ModalDialog IDD_ABOUT_DIALOG {
+ Pos = MAP_APPFONT( 58, 17 );
+ Size = MAP_APPFONT( 155, 106 );
+ SVLook = TRUE;
+/*
+ WINCHILDS = {
+ FixedText {
+ Pos = MAP_APPFONT( 40, 5 );
+ Size = MAP_APPFONT( 110, 10 );
+ TEXT = "StarBasic";
+ TEXT [ english_us ] = "StarBasic";
+ CENTER = TRUE;
+ };
+ FixedText {
+ Pos = MAP_APPFONT( 40, 20 );
+ Size = MAP_APPFONT( 110, 20 );
+ TEXT = "Ojektorientiertes BASIC-Entwicklungssystem";
+ TEXT [ english_us ] = "Ojektorientiertes BASIC-Entwicklungssystem";
+ CENTER = TRUE;
+ };
+ FixedText {
+ Pos = MAP_APPFONT( 40, 45 );
+ Size = MAP_APPFONT( 110, 10 );
+ TEXT = "Version 2.0 Mai 1995";
+ TEXT [ english_us ] = "Version 2.0 Mai 1995";
+ CENTER = TRUE;
+ };
+ FixedText {
+ Pos = MAP_APPFONT( 40, 60 );
+ Size = MAP_APPFONT( 110, 10 );
+ TEXT = "1995 Sun Microsystems, Inc.";
+ TEXT [ english_us ] = "1995 Sun Microsystems, Inc.";
+ CENTER = TRUE;
+ };
+ };
+*/
+// FixedIcon RID_ICON {
+// Pos = MAP_APPFONT( 20, 26 );
+// Size = MAP_APPFONT( 20, 20 );
+// FIXED = Icon {
+// FILE = "basic.ico";
+// };
+// };
+ OKButton RID_OK {
+ Pos = MAP_APPFONT( 55, 80 );
+ Size = MAP_APPFONT( 40, 14 );
+ DefButton = TRUE;
+ };
+};
+
+ModalDialog IDD_TT_ABOUT_DIALOG {
+ Pos = MAP_APPFONT( 58, 17 );
+ Size = MAP_APPFONT( 155, 106 );
+ SVLook = TRUE;
+ FixedText 1 {
+ Pos = MAP_APPFONT( 40, 5 );
+ Size = MAP_APPFONT( 110, 10 );
+ TEXT = "StarTestTool";
+ TEXT [ english_us ] = "StarTestTool";
+ CENTER = TRUE;
+ TEXT[ portuguese ] = "StarTestTool";
+ TEXT[ russian ] = "StarTestTool";
+ TEXT[ greek ] = "StarTestTool";
+ TEXT[ dutch ] = "StarTestTool";
+ TEXT[ french ] = "StarTestTool";
+ TEXT[ spanish ] = "StarTestTool";
+ TEXT[ italian ] = "StarTestTool";
+ TEXT[ danish ] = "StarTestTool";
+ TEXT[ swedish ] = "StarTestTool";
+ TEXT[ polish ] = "StarTestTool";
+ TEXT[ portuguese_brazilian ] = "StarTestTool";
+ TEXT[ japanese ] = "StarTestTool";
+ TEXT[ korean ] = "StarTestTool";
+ TEXT[ chinese_simplified ] = "StarTestTool";
+ TEXT[ chinese_traditional ] = "StarTestTool";
+ TEXT[ arabic ] = "StarTestTool";
+ TEXT[ turkish ] = "StarTestTool";
+ };
+ FixedText 3 {
+ Pos = MAP_APPFONT( 40, 45 );
+ Size = MAP_APPFONT( 110, 10 );
+ TEXT = "Version 1.0";
+ TEXT [ english_us ] = "Version 1.0";
+ CENTER = TRUE;
+ TEXT[ portuguese ] = "Verso 1.0";
+ TEXT[ russian ] = "Version 1.0";
+ TEXT[ greek ] = "Version 1.0";
+ TEXT[ dutch ] = "Versie 1.0";
+ TEXT[ french ] = "Version 1.0";
+ TEXT[ spanish ] = "Versin 1.0";
+ TEXT[ italian ] = "Version 1.0";
+ TEXT[ danish ] = "Version 1.0";
+ TEXT[ swedish ] = "Version 1.0";
+ TEXT[ polish ] = "Version 1.0";
+ TEXT[ portuguese_brazilian ] = "Version 1.0";
+ TEXT[ japanese ] = "Version 1.0";
+ TEXT[ korean ] = " 1.0";
+ TEXT[ chinese_simplified ] = "Version 1.0";
+ TEXT[ chinese_traditional ] = "Version 1.0";
+ TEXT[ arabic ] = "Version 1.0";
+ TEXT[ turkish ] = "Srm 1.0";
+ };
+ FixedText RID_VERSIONSTRING {
+ Pos = MAP_APPFONT( 40, 55 );
+ Size = MAP_APPFONT( 110, 10 );
+ Text = UPDVER;
+ CENTER = TRUE;
+ };
+ FixedText 4 {
+ Pos = MAP_APPFONT( 40, 70 );
+ Size = MAP_APPFONT( 110, 10 );
+ TEXT = "1995-1998 Sun Microsystems, Inc.";
+ TEXT [ english_us ] = "1995-1998 Sun Microsystems, Inc.";
+ CENTER = TRUE;
+ TEXT[ portuguese ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ russian ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ greek ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ dutch ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ french ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ spanish ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ italian ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ danish ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ swedish ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ polish ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ portuguese_brazilian ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ japanese ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ korean ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ chinese_simplified ] = "?995-1998 Sun Microsystems, Inc.";
+ TEXT[ chinese_traditional ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ arabic ] = "1995-1998 Sun Microsystems, Inc.";
+ TEXT[ turkish ] = "1995-1998 Sun Microsystems, Inc.";
+ };
+// FixedIcon RID_ICON {
+// Pos = MAP_APPFONT( 20, 26 );
+// Size = MAP_APPFONT( 20, 20 );
+// FIXED = Icon {
+// FILE = "basic.ico";
+// };
+// };
+ OKButton RID_OK {
+ Pos = MAP_APPFONT( 55, 85 );
+ Size = MAP_APPFONT( 40, 14 );
+ DefButton = TRUE;
+ };
+};
+
+ModalDialog IDD_FIND_DIALOG {
+ Pos = MAP_APPFONT( 69, 30 );
+ Size = MAP_APPFONT( 185, 70 );
+ SVLook = TRUE;
+ TEXT = "StarBasic: Text suchen";
+ TEXT [ english_us ] = "StarBasic: Find Text";
+ MOVEABLE = TRUE;
+ // CLOSEABLE = TRUE; // Hat cancelbutton
+
+ FixedText RID_FIXEDTEXT1 {
+ Pos = MAP_APPFONT( 5, 10 );
+ Size = MAP_APPFONT( 30, 10 );
+ TEXT = "~Text";
+ TEXT [ english_us ] = "~Text";
+ TEXT[ portuguese ] = "~Texto";
+ TEXT[ russian ] = "~Text";
+ TEXT[ greek ] = "~Text";
+ TEXT[ dutch ] = "~Tekst";
+ TEXT[ french ] = "~Texte";
+ TEXT[ spanish ] = "Te~xto";
+ TEXT[ italian ] = "~Text";
+ TEXT[ danish ] = "~Text";
+ TEXT[ swedish ] = "~Text";
+ TEXT[ polish ] = "~Text";
+ TEXT[ portuguese_brazilian ] = "~Text";
+ TEXT[ japanese ] = "";
+ TEXT[ korean ] = "ؽƮ(~T)";
+ TEXT[ chinese_simplified ] = "~Text";
+ TEXT[ chinese_traditional ] = "~Text";
+ TEXT[ arabic ] = "~Text";
+ TEXT[ turkish ] = "~Metin";
+ };
+ Edit RID_FIND {
+ BORDER = TRUE;
+ Pos = MAP_APPFONT( 40, 8 );
+ Size = MAP_APPFONT( 135, 12 );
+ TABSTOP = TRUE;
+ };
+ OKButton RID_OK {
+ Pos = MAP_APPFONT( 30, 30 );
+ Size = MAP_APPFONT( 50, 14 );
+ TEXT = "~Suchen";
+ TEXT [ english_us ] = "~Find";
+ TABSTOP = TRUE;
+ DefButton = TRUE;
+ TEXT[ portuguese ] = "~Procurar";
+ TEXT[ russian ] = "~Find";
+ TEXT[ greek ] = "~Find";
+ TEXT[ dutch ] = "~Zoeken";
+ TEXT[ french ] = "~Rechercher";
+ TEXT[ spanish ] = "~Buscar";
+ TEXT[ italian ] = "~Find";
+ TEXT[ danish ] = "~Find";
+ TEXT[ swedish ] = "~Find";
+ TEXT[ polish ] = "~Find";
+ TEXT[ portuguese_brazilian ] = "~Suchen";
+ TEXT[ japanese ] = "";
+ TEXT[ korean ] = "ã(~F)";
+ TEXT[ chinese_simplified ] = "~Suchen";
+ TEXT[ chinese_traditional ] = "~Find";
+ TEXT[ arabic ] = "~Find";
+ TEXT[ turkish ] = "~Ara";
+ };
+ CancelButton RID_CANCEL {
+ Pos = MAP_APPFONT( 105, 30 );
+ Size = MAP_APPFONT( 50, 14 );
+ TEXT = "~Abbruch";
+ TEXT [ english_us ] = "~Cancel";
+ TABSTOP = TRUE;
+ TEXT[ portuguese ] = "~Cancelar";
+ TEXT[ russian ] = "~Cancel";
+ TEXT[ greek ] = "~Cancel";
+ TEXT[ dutch ] = "~Annuleren";
+ TEXT[ french ] = "~Annuler";
+ TEXT[ spanish ] = "~Cancelar";
+ TEXT[ italian ] = "~Cancel";
+ TEXT[ danish ] = "~Cancel";
+ TEXT[ swedish ] = "~Cancel";
+ TEXT[ polish ] = "~Cancel";
+ TEXT[ portuguese_brazilian ] = "~Abbruch";
+ TEXT[ japanese ] = "ݾ";
+ TEXT[ korean ] = "(~C)";
+ TEXT[ chinese_simplified ] = "~Abbruch";
+ TEXT[ chinese_traditional ] = "~Cancel";
+ TEXT[ arabic ] = "~Cancel";
+ TEXT[ turkish ] = "~ptal";
+ };
+ TEXT[ portuguese ] = "StarOffice Basic: Procurar texto";
+ TEXT[ russian ] = "StarBasic: Find Text";
+ TEXT[ greek ] = "StarBasic: Find Text";
+ TEXT[ dutch ] = "StarOffice Basic: tekst zoeken";
+ TEXT[ french ] = "StarBasic: Recherche de texte";
+ TEXT[ spanish ] = "StarBasic: Buscar texto";
+ TEXT[ italian ] = "StarOffice Basic: Find Text";
+ TEXT[ danish ] = "StarBasic: Find Text";
+ TEXT[ swedish ] = "StarOffice Basic: Find Text";
+ TEXT[ polish ] = "StarBasic: Find Text";
+ TEXT[ portuguese_brazilian ] = "StarBasic: Text suchen";
+ TEXT[ japanese ] = "StarBasic: ̌";
+ TEXT[ korean ] = "StarBasic: ؽƮ ã";
+ TEXT[ chinese_simplified ] = "StarBasic: Text suchen";
+ TEXT[ chinese_traditional ] = "StarOffice BasicGFind Text";
+ TEXT[ arabic ] = "StarBasic: Find Text";
+ TEXT[ turkish ] = "StarBasic: Metni ara";
+};
+
+ModalDialog IDD_REPLACE_DIALOG {
+ Pos = MAP_APPFONT( 69, 30 );
+ Size = MAP_APPFONT( 185, 88 );
+ SVLook = TRUE;
+ TEXT = "StarBasic: Text ersetzen";
+ TEXT [ english_us ] = "StarBasic: Replace Text";
+ MOVEABLE = TRUE;
+ // CLOSEABLE = TRUE; // Hat cancelbutton
+ FixedText RID_FIXEDTEXT1 {
+ Pos = MAP_APPFONT( 5, 10 );
+ Size = MAP_APPFONT( 55, 10 );
+ TEXT = "~Alter Text";
+ TEXT [ english_us ] = "~Previous text";
+ TEXT[ portuguese ] = "~Antigo texto";
+ TEXT[ russian ] = "~Previous text";
+ TEXT[ greek ] = "~Previous text";
+ TEXT[ dutch ] = "~Oude tekst";
+ TEXT[ french ] = "~Ancien texte";
+ TEXT[ spanish ] = "~Antiguo texto";
+ TEXT[ italian ] = "~Previous text";
+ TEXT[ danish ] = "~Previous text";
+ TEXT[ swedish ] = "~Previous text";
+ TEXT[ polish ] = "~Previous text ";
+ TEXT[ portuguese_brazilian ] = "~Alter Text";
+ TEXT[ japanese ] = "";
+ TEXT[ korean ] = " ؽƮ(~P)";
+ TEXT[ chinese_simplified ] = "~Alter Text";
+ TEXT[ chinese_traditional ] = "~Previous text";
+ TEXT[ arabic ] = "~Previous text";
+ TEXT[ turkish ] = "~Eski metin";
+ };
+ FixedText RID_FIXEDTEXT2 {
+ Pos = MAP_APPFONT( 5, 30 );
+ Size = MAP_APPFONT( 55, 10 );
+ TEXT = "~Neuer Text";
+ TEXT [ english_us ] = "~New text";
+ TEXT[ portuguese ] = "~Texto novo";
+ TEXT[ russian ] = "~New text";
+ TEXT[ greek ] = "~New text";
+ TEXT[ dutch ] = "~Nieuwe tekst";
+ TEXT[ french ] = "~Nouveau texte";
+ TEXT[ spanish ] = "~Nuevo texto";
+ TEXT[ italian ] = "~New text";
+ TEXT[ danish ] = "~New text";
+ TEXT[ swedish ] = "~New text";
+ TEXT[ polish ] = "~New text ";
+ TEXT[ portuguese_brazilian ] = "~Neuer Text";
+ TEXT[ japanese ] = "V";
+ TEXT[ korean ] = " ؽƮ(~N)";
+ TEXT[ chinese_simplified ] = "~Neuer Text";
+ TEXT[ chinese_traditional ] = "~New text";
+ TEXT[ arabic ] = "~New text";
+ TEXT[ turkish ] = "~Yeni metin";
+ };
+ Edit RID_FIND {
+ BORDER = TRUE;
+ Pos = MAP_APPFONT( 65, 8 );
+ Size = MAP_APPFONT( 110, 12 );
+ TABSTOP = TRUE;
+ };
+ Edit RID_REPLACE {
+ BORDER = TRUE;
+ Pos = MAP_APPFONT( 65, 28 );
+ Size = MAP_APPFONT( 110, 12 );
+ TABSTOP = TRUE;
+ };
+ OKButton RID_OK {
+ Pos = MAP_APPFONT( 30, 50 );
+ Size = MAP_APPFONT( 50, 14 );
+ TEXT = "~Ersetzen";
+ TEXT [ english_us ] = "~Replace";
+ TABSTOP = TRUE;
+ DefButton = TRUE;
+ TEXT[ portuguese ] = "~Substituir";
+ TEXT[ russian ] = "~Replace";
+ TEXT[ greek ] = "~Replace";
+ TEXT[ dutch ] = "~Vervangen";
+ TEXT[ french ] = "~Remplacer";
+ TEXT[ spanish ] = "~Sustituir";
+ TEXT[ italian ] = "~Replace";
+ TEXT[ danish ] = "~Replace";
+ TEXT[ swedish ] = "~Replace";
+ TEXT[ polish ] = "~Replace";
+ TEXT[ portuguese_brazilian ] = "~Ersetzen";
+ TEXT[ japanese ] = "u";
+ TEXT[ korean ] = "ٲٱ(~R)";
+ TEXT[ chinese_simplified ] = "~Ersetzen";
+ TEXT[ chinese_traditional ] = "~Replace";
+ TEXT[ arabic ] = "~Replace";
+ TEXT[ turkish ] = "~Deitir";
+ };
+ CancelButton RID_CANCEL {
+ Pos = MAP_APPFONT( 105, 50 );
+ Size = MAP_APPFONT( 50, 14 );
+ TEXT = "~Abbruch";
+ TEXT [ english_us ] = "~Cancel";
+ TABSTOP = TRUE;
+ TEXT[ portuguese ] = "~Cancelar";
+ TEXT[ russian ] = "~Cancel";
+ TEXT[ greek ] = "~Cancel";
+ TEXT[ dutch ] = "~Annuleren";
+ TEXT[ french ] = "~Annuler";
+ TEXT[ spanish ] = "~Cancelar";
+ TEXT[ italian ] = "~Cancel";
+ TEXT[ danish ] = "~Cancel";
+ TEXT[ swedish ] = "~Cancel";
+ TEXT[ polish ] = "~Cancel ";
+ TEXT[ portuguese_brazilian ] = "~Abbruch";
+ TEXT[ japanese ] = "ݾ";
+ TEXT[ korean ] = "(~C)";
+ TEXT[ chinese_simplified ] = "~Abbruch";
+ TEXT[ chinese_traditional ] = "~Cancel";
+ TEXT[ arabic ] = "~Cancel";
+ TEXT[ turkish ] = "ptal";
+ };
+ TEXT[ portuguese ] = "StarOffice Basic: Substituir texto";
+ TEXT[ russian ] = "StarBasic: Replace Text";
+ TEXT[ greek ] = "StarBasic: Replace Text";
+ TEXT[ dutch ] = "StarOffice Basic: tekst vervangen";
+ TEXT[ french ] = "StarBasic : Remplacement de texte";
+ TEXT[ spanish ] = "StarBasic: Sustituir texto";
+ TEXT[ italian ] = "StarOffice Basic: Replace Text";
+ TEXT[ danish ] = "StarBasic: Replace Text";
+ TEXT[ swedish ] = "StarOffice Basic: Replace Text";
+ TEXT[ polish ] = "StarBasic: Replace Text ";
+ TEXT[ portuguese_brazilian ] = "StarBasic: Text ersetzen";
+ TEXT[ japanese ] = "StarBasic: ̒u";
+ TEXT[ korean ] = "StarBasic: ؽƮ ٲٱ";
+ TEXT[ chinese_simplified ] = "StarBasic: Text ersetzen";
+ TEXT[ chinese_traditional ] = "StarOffcie BasicGReplace Text";
+ TEXT[ arabic ] = "StarBasic: Replace Text";
+ TEXT[ turkish ] = "StarBasic: Metni deitir";
+};
+
+InfoBox IDS_NOPRINTERERROR {
+ MESSAGE = "Drucken steht nicht zur Verfgung!";
+ MESSAGE [ english_us ] = "The print function is not available!";
+ MESSAGE[ portuguese ] = "A funo de impresso no est disponvel!";
+ MESSAGE[ russian ] = "The print function is not available!";
+ MESSAGE[ greek ] = "The print function is not available!";
+ MESSAGE[ dutch ] = "De functie Afdrukken is niet beschikbaar!";
+ MESSAGE[ french ] = "La fonction d'impresssion n'est pas disponible !";
+ MESSAGE[ spanish ] = "No disponible la funcin para imprimir!";
+ MESSAGE[ italian ] = "The print function is not available!";
+ MESSAGE[ danish ] = "The print function is not available!";
+ MESSAGE[ swedish ] = "The print function is not available!";
+ MESSAGE[ polish ] = "The print function is not available! ";
+ MESSAGE[ portuguese_brazilian ] = "Drucken steht nicht zur Verfgung!";
+ MESSAGE[ japanese ] = "܂!";
+ MESSAGE[ korean ] = " ȵ!";
+ MESSAGE[ chinese_simplified ] = "Drucken steht nicht zur Verfgung!";
+ MESSAGE[ chinese_traditional ] = "The print function is not available!";
+ MESSAGE[ arabic ] = "The print function is not available";
+ MESSAGE[ turkish ] = "Yazdrma ilevi kullanlamaz!";
+};
+ErrorBox IDS_CANTLOAD {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Library kann nicht geladen werden!";
+ MESSAGE [ english_us ] = "Library cannot be loaded!";
+ MESSAGE[ portuguese ] = "Impossvel carregar a biblioteca!";
+ MESSAGE[ russian ] = "Library cannot be loaded!";
+ MESSAGE[ greek ] = "Library cannot be loaded!";
+ MESSAGE[ dutch ] = "Library kan niet worden geladen!";
+ MESSAGE[ french ] = "Impossible de charger la bibliothque !";
+ MESSAGE[ spanish ] = "No se puede cargar la biblioteca!";
+ MESSAGE[ italian ] = "Library cannot be loaded!";
+ MESSAGE[ danish ] = "Library cannot be loaded!";
+ MESSAGE[ swedish ] = "Library cannot be loaded!";
+ MESSAGE[ polish ] = "Library cannot be loaded! ";
+ MESSAGE[ portuguese_brazilian ] = "Library kann nicht geladen werden!";
+ MESSAGE[ japanese ] = "ײ؂͓ǂݍ݂ł܂!";
+ MESSAGE[ korean ] = "̺귯 ε ϴ!";
+ MESSAGE[ chinese_simplified ] = "Library kann nicht geladen werden!";
+ MESSAGE[ chinese_traditional ] = "Library cannot be loaded!";
+ MESSAGE[ arabic ] = "Library cannot be loaded!";
+ Title[ portuguese ] = "StarBasic-Fehler";
+ Title[ russian ] = "StarBasic-Fehler";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic-Fehler";
+ Title[ french ] = "StarBasic-Fehler";
+ Title[ spanish ] = "Error de StarBasic";
+ Title[ italian ] = "StarBasic-Fehler";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic-Fehler";
+ Title[ japanese ] = "StarBasic-Fehler";
+ Title[ korean ] = "StarBasic-Fehler";
+ Title[ chinese_simplified ] = "StarBasic-Fehler";
+ Title[ chinese_traditional ] = "StarBasic-Fehler";
+ Title[ arabic ] = "StarBasic-Fehler";
+ MESSAGE[ turkish ] = "Kitaplk yklenemiyor!";
+};
+ErrorBox IDS_CANTSAVE {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Library kann nicht gespeichert werden!";
+ MESSAGE [ english_us ] = "Library cannot be saved!";
+ MESSAGE[ portuguese ] = "Impossvel guardar a biblioteca!";
+ MESSAGE[ russian ] = "Library cannot be saved!";
+ MESSAGE[ greek ] = "Library cannot be saved!";
+ MESSAGE[ dutch ] = "Library kan niet worden opgeslagen!";
+ MESSAGE[ french ] = "Impossible d'enregistrer la bibliothque !";
+ MESSAGE[ spanish ] = "No se puede guardar la biblioteca!";
+ MESSAGE[ italian ] = "Library cannot be saved!";
+ MESSAGE[ danish ] = "Library cannot be saved!";
+ MESSAGE[ swedish ] = "Library cannot be saved!";
+ MESSAGE[ polish ] = "Library cannot be saved! ";
+ MESSAGE[ portuguese_brazilian ] = "Library kann nicht gespeichert werden!";
+ MESSAGE[ japanese ] = "ײ؂͕ۑł܂!";
+ MESSAGE[ korean ] = "̺귯 ʾ!";
+ MESSAGE[ chinese_simplified ] = "Library kann nicht gespeichert werden!";
+ MESSAGE[ chinese_traditional ] = "Library cannot be saved!";
+ MESSAGE[ arabic ] = "Library cannot be saved!";
+ Title[ portuguese ] = "StarBasic-Fehler";
+ Title[ russian ] = "StarBasic-Fehler";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic-Fehler";
+ Title[ french ] = "StarBasic-Fehler";
+ Title[ spanish ] = "Error de StarBasic";
+ Title[ italian ] = "StarBasic-Fehler";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic-Fehler";
+ Title[ japanese ] = "StarBasic-Fehler";
+ Title[ korean ] = "StarBasic-Fehler";
+ Title[ chinese_simplified ] = "StarBasic-Fehler";
+ Title[ chinese_traditional ] = "StarBasic-Fehler";
+ Title[ arabic ] = "StarBasic-Fehler";
+ MESSAGE[ turkish ] = "Kitaplk kaydedilemiyor!";
+};
+ErrorBox IDS_NOMAINPGM {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Dieses Fenster enthlt kein Hauptprogramm!";
+ MESSAGE [ english_us ] = "This window does not contain a main program!";
+ MESSAGE[ portuguese ] = "Esta janela no contm nenhum programa principal!";
+ MESSAGE[ russian ] = "This window does not contain a main program!";
+ MESSAGE[ greek ] = "This window does not contain a main program!";
+ MESSAGE[ dutch ] = "Dit venster bevat geen hoofdprogramma!";
+ MESSAGE[ french ] = "Cette fentre ne contient aucun programme principal !";
+ MESSAGE[ spanish ] = "Esta ventana no contiene ningn programa principal!";
+ MESSAGE[ italian ] = "The window does not contain a main program!";
+ MESSAGE[ danish ] = "This window does not contain a main program!";
+ MESSAGE[ swedish ] = "This window does not contain a main program!";
+ MESSAGE[ polish ] = "This window does not contain a main program! ";
+ MESSAGE[ portuguese_brazilian ] = "Dieses Fenster enthlt kein Hauptprogramm!";
+ MESSAGE[ japanese ] = "̳޳ɂҲ۸т͂܂!";
+ MESSAGE[ korean ] = " α׷ ϰ ʽϴ !";
+ MESSAGE[ chinese_simplified ] = "Dieses Fenster enthlt kein Hauptprogramm!";
+ MESSAGE[ chinese_traditional ] = "This window does not contain a main program!";
+ MESSAGE[ arabic ] = "This window does not contain a main program!";
+ Title[ portuguese ] = "StarBasic-Fehler";
+ Title[ russian ] = "StarBasic-Fehler";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic-Fehler";
+ Title[ french ] = "StarBasic-Fehler";
+ Title[ spanish ] = "Error de StarBasic";
+ Title[ italian ] = "StarBasic-Fehler";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic-Fehler";
+ Title[ japanese ] = "StarBasic-Fehler";
+ Title[ korean ] = "StarBasic-Fehler";
+ Title[ chinese_simplified ] = "StarBasic-Fehler";
+ Title[ chinese_traditional ] = "StarBasic-Fehler";
+ Title[ arabic ] = "StarBasic-Fehler";
+ MESSAGE[ turkish ] = "Bu pencere ana program iermiyor!";
+};
+ErrorBox IDS_READERROR {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Datei kann nicht eingelesen werden!";
+ MESSAGE [ english_us ] = "File cannot be read!";
+ MESSAGE[ portuguese ] = "Impossvel ler ficheiro!";
+ MESSAGE[ russian ] = "File cannot be read!";
+ MESSAGE[ greek ] = "File cannot be read!";
+ MESSAGE[ dutch ] = "Bestand kan niet worden gelezen!";
+ MESSAGE[ french ] = "Impossible de lire le fichier !";
+ MESSAGE[ spanish ] = "No se puede leer el archivo!";
+ MESSAGE[ italian ] = "File cannot be read!";
+ MESSAGE[ danish ] = "File cannot be read!";
+ MESSAGE[ swedish ] = "File cannot be read!";
+ MESSAGE[ polish ] = "File cannot be read! ";
+ MESSAGE[ portuguese_brazilian ] = "Datei kann nicht eingelesen werden!";
+ MESSAGE[ japanese ] = "̧ق͓ǂݎ܂!";
+ MESSAGE[ korean ] = " ϴ!";
+ MESSAGE[ chinese_simplified ] = "Datei kann nicht eingelesen werden!";
+ MESSAGE[ chinese_traditional ] = "File cannot be read!";
+ MESSAGE[ arabic ] = "File cannot be read!";
+ Title[ portuguese ] = "StarBasic-Fehler";
+ Title[ russian ] = "StarBasic-Fehler";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic-Fehler";
+ Title[ french ] = "StarBasic-Fehler";
+ Title[ spanish ] = "Error de StarBasic";
+ Title[ italian ] = "StarBasic-Fehler";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic-Fehler";
+ Title[ japanese ] = "StarBasic-Fehler";
+ Title[ korean ] = "StarBasic-Fehler";
+ Title[ chinese_simplified ] = "StarBasic-Fehler";
+ Title[ chinese_traditional ] = "StarBasic-Fehler";
+ Title[ arabic ] = "StarBasic-Fehler";
+ MESSAGE[ turkish ] = "Dosya okunamyor!";
+};
+ErrorBox IDS_WRITEERROR {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Datei kann nicht abgespeichert werden!";
+ MESSAGE [ english_us ] = "File cannot be saved!";
+ MESSAGE[ portuguese ] = "Impossvel guardar ficheiro!";
+ MESSAGE[ russian ] = "File cannot be saved!";
+ MESSAGE[ greek ] = "File cannot be saved!";
+ MESSAGE[ dutch ] = "Bestand kan niet worden opgeslagen!";
+ MESSAGE[ french ] = "Impossible d'enregister le fichier !";
+ MESSAGE[ spanish ] = "No se puede guardar el archivo!";
+ MESSAGE[ italian ] = "File cannt be saved!";
+ MESSAGE[ danish ] = "File cannot be saved!";
+ MESSAGE[ swedish ] = "File cannot be saved!";
+ MESSAGE[ polish ] = "File cannot be saved! ";
+ MESSAGE[ portuguese_brazilian ] = "Datei kann nicht abgespeichert werden!";
+ MESSAGE[ japanese ] = "̧ق͕ۑł܂!";
+ MESSAGE[ korean ] = " ʾҽϴ !";
+ MESSAGE[ chinese_simplified ] = "Datei kann nicht abgespeichert werden!";
+ MESSAGE[ chinese_traditional ] = "File cannot be saved!";
+ MESSAGE[ arabic ] = "File cannot be saved!";
+ Title[ portuguese ] = "StarBasic-Fehler";
+ Title[ russian ] = "StarBasic-Fehler";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic-Fehler";
+ Title[ french ] = "StarBasic-Fehler";
+ Title[ spanish ] = "Error de StarBasic";
+ Title[ italian ] = "StarBasic-Fehler";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic-Fehler";
+ Title[ japanese ] = "StarBasic-Fehler";
+ Title[ korean ] = "StarBasic-Fehler";
+ Title[ chinese_simplified ] = "StarBasic-Fehler";
+ Title[ chinese_traditional ] = "StarBasic-Fehler";
+ Title[ arabic ] = "StarBasic-Fehler";
+ MESSAGE[ turkish ] = "Dosya kaydedilemiyor!";
+};
+ErrorBox IDS_PATTERNNOTFOUND {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Suchbegriff nicht gefunden!";
+ MESSAGE [ english_us ] = "Search key not found!";
+ MESSAGE[ portuguese ] = "Impossvel encontrar expresso procurada!";
+ MESSAGE[ russian ] = "Search key not found!";
+ MESSAGE[ greek ] = "Search key not found!";
+ MESSAGE[ dutch ] = "Zoekbegrip niet gevonden!";
+ MESSAGE[ french ] = "lment recherch introuvable !";
+ MESSAGE[ spanish ] = "No se encontr el trmino buscado!";
+ MESSAGE[ italian ] = "Search key not found!";
+ MESSAGE[ danish ] = "Search key not found!";
+ MESSAGE[ swedish ] = "Search term not found!";
+ MESSAGE[ polish ] = "Search key not found!";
+ MESSAGE[ portuguese_brazilian ] = "Suchbegriff nicht gefunden!";
+ MESSAGE[ japanese ] = "͌‚܂!";
+ MESSAGE[ korean ] = "˻ ã !";
+ MESSAGE[ chinese_simplified ] = "Suchbegriff nicht gefunden!";
+ MESSAGE[ chinese_traditional ] = "Search key not found!";
+ MESSAGE[ arabic ] = "Search term not found!";
+ Title[ portuguese ] = "StarBasic-Fehler";
+ Title[ russian ] = "StarBasic-Fehler";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic-Fehler";
+ Title[ french ] = "StarBasic-Fehler";
+ Title[ spanish ] = "Error de StarBasic";
+ Title[ italian ] = "StarBasic-Fehler";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic-Fehler";
+ Title[ japanese ] = "StarBasic-Fehler";
+ Title[ korean ] = "StarBasic-Fehler";
+ Title[ chinese_simplified ] = "StarBasic-Fehler";
+ Title[ chinese_traditional ] = "StarBasic-Fehler";
+ Title[ arabic ] = "StarBasic-Fehler";
+ MESSAGE[ turkish ] = "Arama terimi bulunamad!";
+};
+ErrorBox IDS_INVALID_VALUE {
+ TITLE = "StarBasic-Fehler";
+ TITLE [ english_us ] = "StarBasic Error";
+ MESSAGE = "Der Wert ist ungltig und kann daher nicht gesetzt werden.";
+ MESSAGE [ english_us ] = "The value is invalid and cannot be set.";
+ MESSAGE[ portuguese ] = "O valor no vlido e no pode ser aplicado.";
+ MESSAGE[ russian ] = " .";
+ MESSAGE[ greek ] = "The value is invalid and cannot be set.";
+ MESSAGE[ dutch ] = "De waarde is ongeldig en kan daarom niet worden gebruikt.";
+ MESSAGE[ french ] = "Valeur incorrecte, impossible de la placer.";
+ MESSAGE[ spanish ] = "Valor incorrecto; no se puede aplicar.";
+ MESSAGE[ italian ] = "The value is invalid and cannot be set.";
+ MESSAGE[ danish ] = "The value is invalid and cannot be set.";
+ MESSAGE[ swedish ] = "The value is invalid and cannot be set.";
+ MESSAGE[ polish ] = "Warto jest nieprawdiowa i nie mona jeje dlatego osadzi.";
+ MESSAGE[ portuguese_brazilian ] = "Der Wert ist ungltig und kann daher nicht gesetzt werden.";
+ MESSAGE[ japanese ] = "lȂ̂Őݒł܂B";
+ MESSAGE[ korean ] = "ȿ ̹Ƿ ϴ .";
+ MESSAGE[ chinese_simplified ] = "The value is invalid and cannot be set.";
+ MESSAGE[ chinese_traditional ] = "The value is invalid and cannot be set.";
+ MESSAGE[ arabic ] = "The value is invalid and cannot be set.";
+ Title[ portuguese ] = "StarBasic Error";
+ Title[ russian ] = "StarBasic Error";
+ Title[ greek ] = "StarBasic Error";
+ Title[ dutch ] = "StarBasic Error";
+ Title[ french ] = "StarBasic Error";
+ Title[ spanish ] = "StarBasic Error";
+ Title[ italian ] = "StarBasic Error";
+ Title[ danish ] = "StarBasic Error";
+ Title[ swedish ] = "StarBasic Error";
+ Title[ polish ] = "Bd StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic Error";
+ Title[ japanese ] = "StarBasic Error";
+ Title[ korean ] = "StarBasic Error";
+ Title[ chinese_simplified ] = "StarBasic Error";
+ Title[ chinese_traditional ] = "StarBasic Error";
+ Title[ arabic ] = "StarBasic Error";
+ MESSAGE[ turkish ] = "Bu deer geersiz olduu iin belirlenemez.";
+};
+
+QueryBox IDS_ASKSAVEERROR {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Fehler beim Speichern der Dateien! Trotzdem ausfhren?";
+ MESSAGE [ english_us ] = "Error saving files! Run anyway?";
+ BUTTONS = WB_YES_NO;
+ MESSAGE[ portuguese ] = "Ocorreu um erro ao guardar os ficheiros!Mesmo assim, executar?";
+ MESSAGE[ russian ] = "Error saving files! Run anyway?";
+ MESSAGE[ greek ] = "Error saving files! Run anyway?";
+ MESSAGE[ dutch ] = "Fout bij opslaan van bestanden! Toch uitvoeren?";
+ MESSAGE[ french ] = "Une erreur s'est produite lors de l'enregistrement des fichiers ! Souhaitez-vous quand mme poursuivre l'excution ?";
+ MESSAGE[ spanish ] = "Error al guardar los archivos! Ejecutar de todas formas?";
+ MESSAGE[ italian ] = "Error saving files! Run anyway?";
+ MESSAGE[ danish ] = "Error saving files! Run anyway?";
+ MESSAGE[ swedish ] = "Error saving files! Run anyway?";
+ MESSAGE[ polish ] = "Error saving files! Run anyway? ";
+ MESSAGE[ portuguese_brazilian ] = "Fehler beim Speichern der Dateien! Trotzdem ausfhren?";
+ MESSAGE[ japanese ] = "̧ق̕ۑ̍ۂ̴װ! łs܂?";
+ MESSAGE[ korean ] = " ߻߽ϴ! Ͻðڽϱ?";
+ MESSAGE[ chinese_simplified ] = "Fehler beim Speichern der Dateien! Trotzdem ausfhren?";
+ MESSAGE[ chinese_traditional ] = "Error saving files! Run anyway?";
+ MESSAGE[ arabic ] = "Error saving files! Run anyway?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Dosya kayd srasnda bir hata ortaya kt! lem yine de yrtlsn m?";
+};
+QueryBox IDS_ASK_DIRTY_SAVE {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Datei ist gendert worden. Abspeichern?";
+ MESSAGE [ english_us ] = "File has been changed. Save?";
+ BUTTONS = WB_YES_NO_CANCEL;
+ MESSAGE[ portuguese ] = "O ficheiro foi modificado. Guardar?";
+ MESSAGE[ russian ] = "File has been changed. Save?";
+ MESSAGE[ greek ] = "File has been changed. Save?";
+ MESSAGE[ dutch ] = "Bestand is gewijzigd. Opslaan?";
+ MESSAGE[ french ] = "Le fichier a t modifi. Souhaitez-vous l'enregistrer ?";
+ MESSAGE[ spanish ] = "El archivo ha sido modificado. Guardar?";
+ MESSAGE[ italian ] = "File has been changed. Save?";
+ MESSAGE[ danish ] = "File has been changed. Save?";
+ MESSAGE[ swedish ] = "File has been changed. Save?";
+ MESSAGE[ polish ] = "File has been changed. Save? ";
+ MESSAGE[ portuguese_brazilian ] = "Datei ist gendert worden. Abspeichern?";
+ MESSAGE[ japanese ] = "̧قύXĂ܂B㏑܂?";
+ MESSAGE[ korean ] = " ٲϴ. Ͻðڽϱ?";
+ MESSAGE[ chinese_simplified ] = "Datei ist gendert worden. Abspeichern?";
+ MESSAGE[ chinese_traditional ] = "File has been changed. Save?";
+ MESSAGE[ arabic ] = "File has been changed. Save?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Dosya deitirildi. Deiiklikler kaydedilsin mi?";
+};
+QueryBox IDS_ASK_DIRTY_AND_DISKCHANGE_SAVE {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Datei ist auf dem Datentrger und\nim Editor gendert worden. Abspeichern?";
+ MESSAGE [ english_us ] = "File has been changed on data medium\nand in the Editor. Save?";
+ BUTTONS = WB_YES_NO_CANCEL;
+ MESSAGE[ portuguese ] = "O ficheiro foi modificado no suporte\nde dados e no Editor. Guardar?";
+ MESSAGE[ russian ] = "File has been changed on data medium\nand in the Editor. Save?";
+ MESSAGE[ greek ] = "File has been changed on data medium\nand in the Editor. Save?";
+ MESSAGE[ dutch ] = "Bestand op datamedium en \nin editor werd gewijzigd. Opslaan?";
+ MESSAGE[ french ] = "Le fichier a t modifi sur le mdia\net dans l'diteur. Enregistrer ?";
+ MESSAGE[ spanish ] = "El archivo se ha modificado en el disco\ny en el editor. Desea guardarlo?";
+ MESSAGE[ italian ] = "File has been changed on data medium\nand in the Editor. Save?";
+ MESSAGE[ danish ] = "File has been changed on data medium\nand in the Editor. Save?";
+ MESSAGE[ swedish ] = "File has been changed on data medium\nand in the Editor. Save?";
+ MESSAGE[ polish ] = "File has been changed on data medium\nand in the Editor. Save? ";
+ MESSAGE[ portuguese_brazilian ] = "Datei ist auf dem Datentrger und\nim Editor gendert worden. Abspeichern?";
+ MESSAGE[ japanese ] = "̧قި\nҏWɕύXĂ܂B㏑܂?";
+ MESSAGE[ korean ] = " ü ̺Ǿϴ. \nϽðڽϱ ?";
+ MESSAGE[ chinese_simplified ] = "Datei ist auf dem Datentrger und\nim Editor gendert worden. Abspeichern?";
+ MESSAGE[ chinese_traditional ] = "File has been changed on data medium\nand in the Editor. Save?";
+ MESSAGE[ arabic ] = "File has been changed on data medium\nand in the Editor. Save?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Dosya, veri kayt ortamnda\nve editrde deitirildi. Kaydedilsin mi?";
+};
+QueryBox IDS_ASK_DISKCHANGE_SAVE {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Datei ist auf dem Datentrger gendert worden.\nberschreiben?";
+ MESSAGE [ english_us ] = "File has been changed on data medium.\nOverwrite?";
+ BUTTONS = WB_YES_NO_CANCEL;
+ MESSAGE[ portuguese ] = "O ficheiro foi modificado no suporte de dados.\nSobregravar?";
+ MESSAGE[ russian ] = "File has been changed on data medium.\nOverwrite?";
+ MESSAGE[ greek ] = "File has been changed on data medium.\nOverwrite?";
+ MESSAGE[ dutch ] = "Bestand op het datamedium werd gewijzigd.\nOverschrijven?";
+ MESSAGE[ french ] = "Le fichier a t modifi sur le mdia.\nRemplacer ?";
+ MESSAGE[ spanish ] = "El archivo en el disco se ha modificado\nDesea sobrescribirlo?";
+ MESSAGE[ italian ] = "File has been changed on data medium.\nOverwrite?";
+ MESSAGE[ danish ] = "File has been changed on data medium.\nOverwrite?";
+ MESSAGE[ swedish ] = "File has been changed on data medium.\nOverwrite?";
+ MESSAGE[ polish ] = "File has been changed on data medium.\nOverwrite? ";
+ MESSAGE[ portuguese_brazilian ] = "Datei ist auf dem Datentrger gendert worden.\nberschreiben?";
+ MESSAGE[ japanese ] = "̧قިŕύXĂ܂B\n㏑܂?";
+ MESSAGE[ korean ] = " ü ̺Ǿϴ. \n ðڽϱ?";
+ MESSAGE[ chinese_simplified ] = "Datei ist auf dem Datentrger gendert worden.\nberschreiben?";
+ MESSAGE[ chinese_traditional ] = "File has been changed on data medium.\nOverwrite?";
+ MESSAGE[ arabic ] = "File has been changed on data medium.\nOverwrite?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Dosya, veri ortamnda deitirildi.\nKaydedilsin mi?";
+};
+QueryBox IDS_ASKRELOAD {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Datei ist auf dem Datentrger gendert worden. Erneut Laden?";
+ MESSAGE [ english_us ] = "File has been changed on data medium. Reload?";
+ BUTTONS = WB_YES_NO;
+ MESSAGE[ portuguese ] = "O ficheiro foi modificado no suporte de dados. Recarregar?";
+ MESSAGE[ russian ] = "File has been changed on data medium. Reload?";
+ MESSAGE[ greek ] = "File has been changed on data medium. Reload?";
+ MESSAGE[ dutch ] = "Bestand op het datamedium werd gewijzigd. Opnieuw laden?";
+ MESSAGE[ french ] = "Le fichier a t modifi sur le mdia. Recharger ?";
+ MESSAGE[ spanish ] = "Se ha modificado el archivo en el disco. Desea recargarlo?";
+ MESSAGE[ italian ] = "File has been changed on data medium. Reload?";
+ MESSAGE[ danish ] = "File has been changed on data medium. Reload?";
+ MESSAGE[ swedish ] = "File has been changed on data medium. Reload?";
+ MESSAGE[ polish ] = "File has been changed on data medium. Reload? ";
+ MESSAGE[ portuguese_brazilian ] = "Datei ist auf dem Datentrger gendert worden. Erneut Laden?";
+ MESSAGE[ japanese ] = "̧قިŕύXĂ܂Bēǂݍ݂܂?";
+ MESSAGE[ korean ] = " ü ̺Ǿϴ. ٽ εϰڽϱ?";
+ MESSAGE[ chinese_simplified ] = "Datei ist auf dem Datentrger gendert worden. Erneut Laden?";
+ MESSAGE[ chinese_traditional ] = "File has been changed on data medium. Reload?";
+ MESSAGE[ arabic ] = "File has been changed on data medium. Reload?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Dosya, veri ortamnda deitirildi. Yeniden yklensin mi?";
+};
+QueryBox IDS_ASKDIRTYRELOAD {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Datei ist auf dem Datentrger und\nim Editor gendert worden. Erneut Laden?";
+ MESSAGE [ english_us ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ BUTTONS = WB_YES_NO;
+ MESSAGE[ portuguese ] = "O ficheiro foi modificado no\\suporte de dados e no Editor. Recarregar?";
+ MESSAGE[ russian ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ MESSAGE[ greek ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ MESSAGE[ dutch ] = "Bestand op het datamedium en\nin de editor werd gewijzigd. Opnieuw laden?";
+ MESSAGE[ french ] = "Le fichier a t modifi sur le mdia\net dans l'diteur. Recharger ?";
+ MESSAGE[ spanish ] = "Se ha modificado el archivo en el disco y\nen el editor. Desea recargarlo?";
+ MESSAGE[ italian ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ MESSAGE[ danish ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ MESSAGE[ swedish ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ MESSAGE[ polish ] = "File has been changed on data medium\nand in the Editor. Reload? ";
+ MESSAGE[ portuguese_brazilian ] = "Datei ist auf dem Datentrger und\nim Editor gendert worden. Erneut Laden?";
+ MESSAGE[ japanese ] = "̧قި\nҏWɕύXĂ܂Bēǂݍ݂܂?";
+ MESSAGE[ korean ] = " ü ̺Ǿϴ. \n ٽ εϰڽϱ?";
+ MESSAGE[ chinese_simplified ] = "Datei ist auf dem Datentrger und\nim Editor gendert worden. Erneut Laden?";
+ MESSAGE[ chinese_traditional ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ MESSAGE[ arabic ] = "File has been changed on data medium\nand in the Editor. Reload?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Dosya, veri ortamnda ve\neditrde deitirildi deitirildi. Yeniden yklensin mi?";
+};
+QueryBox IDS_RUNNING {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "BASIC-Programm ist noch aktiv! Dennoch beenden?";
+ MESSAGE [ english_us ] = "BASIC is still running! Exit anyway?";
+ BUTTONS = WB_YES_NO;
+ MESSAGE[ portuguese ] = "O programa BASIC ainda est activo! Mesmo assim, sair?";
+ MESSAGE[ russian ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ greek ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ dutch ] = "BASIC-programma is nog actief! Toch beindigen?";
+ MESSAGE[ french ] = "BASIC est encore actif ! tes-vous sr de vouloir quitter le programme ?";
+ MESSAGE[ spanish ] = "El programa BASIC est an activo! Desea cerrar de todas formas?";
+ MESSAGE[ italian ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ danish ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ swedish ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ polish ] = "BASIC is still running! Exit anyway? ";
+ MESSAGE[ portuguese_brazilian ] = "BASIC-Programm ist noch aktiv! Dennoch beenden?";
+ MESSAGE[ japanese ] = "BASIC۸т͂܂èނɂȂĂ܂! ̂܂܏I܂?";
+ MESSAGE[ korean ] = "BASIC α׷ ۵Դϴ. Ͻðڽϱ??";
+ MESSAGE[ chinese_simplified ] = "BASIC-Programm ist noch aktiv! Dennoch beenden?";
+ MESSAGE[ chinese_traditional ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ arabic ] = "BASIC is still running! Exit anyway?";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "BASIC program hl etkin. Yine de kmak istiyor musunuz?";
+};
+QueryBox IDS_LOSS_OF_INFORMATION {
+ TITLE = "StarBasic";
+ TITLE [ english_us ] = "StarBasic";
+ MESSAGE = "Speichern in Fremdformat verursacht Informationsverlust";
+ MESSAGE [ english_us ] = "Saving in an external format causes information loss.";
+ BUTTONS = WB_OK_CANCEL;
+ MESSAGE[ portuguese ] = "Guardar em formatos externos causar perda de informao.";
+ MESSAGE[ russian ] = " ";
+ MESSAGE[ greek ] = "Saving in an external format causes information loss.";
+ MESSAGE[ dutch ] = "Door het opslaan in een extern formaat kan informatie verloren gaan.";
+ MESSAGE[ french ] = "L'enregistrement dans un format externe entrane une perte d'informations.";
+ MESSAGE[ spanish ] = "Al guardar en formato externo se perder informacin";
+ MESSAGE[ italian ] = "Saving in an external format causes information loss.";
+ MESSAGE[ danish ] = "Saving in an external format causes information loss.";
+ MESSAGE[ swedish ] = "Saving in an external format causes information loss.";
+ MESSAGE[ polish ] = "Zapisanie w innym formacie spowoduje utrat informacji";
+ MESSAGE[ portuguese_brazilian ] = "BASIC is still running! Exit anyway?";
+ MESSAGE[ japanese ] = "ȌݒŕۑƏƂɂȂ܂";
+ MESSAGE[ korean ] = "ܺ ս մϴ.";
+ MESSAGE[ chinese_simplified ] = "Saving in an external format causes information loss.";
+ MESSAGE[ chinese_traditional ] = "Saving in an external format causes information loss.";
+ MESSAGE[ arabic ] = "Saving in an external format causes information loss.";
+ Title[ portuguese ] = "StarBasic";
+ Title[ russian ] = "StarBasic";
+ Title[ greek ] = "StarBasic";
+ Title[ dutch ] = "StarBasic";
+ Title[ french ] = "StarBasic";
+ Title[ spanish ] = "StarBasic";
+ Title[ italian ] = "StarBasic";
+ Title[ danish ] = "StarBasic";
+ Title[ swedish ] = "StarBasic";
+ Title[ polish ] = "StarBasic";
+ Title[ portuguese_brazilian ] = "StarBasic";
+ Title[ japanese ] = "StarBasic";
+ Title[ korean ] = "StarBasic";
+ Title[ chinese_simplified ] = "StarBasic";
+ Title[ chinese_traditional ] = "StarBasic";
+ Title[ arabic ] = "StarBasic";
+ MESSAGE[ turkish ] = "Yabanc formatta kaydetmek bilgi kaybna yol aar";
+};
+
+InfoBox IDS_NOT_YET_IMPLEMENTED
+{
+ MESSAGE = "Noch nicht implementiert";
+ MESSAGE[ english_us ] = "Not yet implemented";
+ MESSAGE[ portuguese ] = "Ainda no implementado";
+ MESSAGE[ russian ] = " ";
+ MESSAGE[ greek ] = "Not yet implemented";
+ MESSAGE[ dutch ] = "Nog niet gemplementeerd";
+ MESSAGE[ french ] = "Pas encore implment";
+ MESSAGE[ spanish ] = "Todava no implementado";
+ MESSAGE[ italian ] = "Not yet implemented";
+ MESSAGE[ danish ] = "Not yet implemented";
+ MESSAGE[ swedish ] = "Not yet implemented";
+ MESSAGE[ polish ] = "Na razie nie implementowane";
+ MESSAGE[ portuguese_brazilian ] = "Noch nicht implementiert";
+ MESSAGE[ japanese ] = "܂Ă܂";
+ MESSAGE[ korean ] = " ʾҽϴ.";
+ MESSAGE[ chinese_simplified ] = "Not yet implemented";
+ MESSAGE[ chinese_traditional ] = "Not yet implemented";
+ MESSAGE[ arabic ] = "Not yet implemented";
+ MESSAGE[ turkish ] = "Henz uygulanmad";
+};
+
+
+String IDS_WARNING1 {
+ TEXT = "Warnung ";
+ TEXT [ english_us ] = "Warning ";
+ TEXT[ portuguese ] = "Aviso ";
+ TEXT[ russian ] = "Warning ";
+ TEXT[ greek ] = "Warning ";
+ TEXT[ dutch ] = "Waarschuwing ";
+ TEXT[ french ] = "Attention !";
+ TEXT[ spanish ] = "Advertencia ";
+ TEXT[ italian ] = "Warning ";
+ TEXT[ danish ] = "Warning ";
+ TEXT[ swedish ] = "Warning ";
+ TEXT[ polish ] = "Warning ";
+ TEXT[ portuguese_brazilian ] = "Warnung ";
+ TEXT[ japanese ] = "x ";
+ TEXT[ korean ] = " ";
+ TEXT[ chinese_simplified ] = "Warnung ";
+ TEXT[ chinese_traditional ] = "Warning ";
+ TEXT[ arabic ] = "Warning ";
+ TEXT[ turkish ] = "Uyar ";
+};
+String IDS_ERROR1 {
+ TEXT = "Fehler ";
+ TEXT [ english_us ] = "Error ";
+ TEXT[ portuguese ] = "Erro ";
+ TEXT[ russian ] = "Error ";
+ TEXT[ greek ] = "Error ";
+ TEXT[ dutch ] = "Fout ";
+ TEXT[ french ] = "Erreur ";
+ TEXT[ spanish ] = "Error ";
+ TEXT[ italian ] = "Error ";
+ TEXT[ danish ] = "Error ";
+ TEXT[ swedish ] = "Error ";
+ TEXT[ polish ] = "Error ";
+ TEXT[ portuguese_brazilian ] = "Fehler ";
+ TEXT[ japanese ] = "װ ";
+ TEXT[ korean ] = " ";
+ TEXT[ chinese_simplified ] = "Fehler ";
+ TEXT[ chinese_traditional ] = "Error ";
+ TEXT[ arabic ] = "Error ";
+ TEXT[ turkish ] = "Hata ";
+};
+String IDS_ERROR2 {
+ TEXT = " in Zeile ";
+ TEXT [ english_us ] = "in row ";
+ TEXT[ portuguese ] = "na linha ";
+ TEXT[ russian ] = "in row ";
+ TEXT[ greek ] = "in row ";
+ TEXT[ dutch ] = "in regel ";
+ TEXT[ french ] = " la ligne ";
+ TEXT[ spanish ] = "en fila ";
+ TEXT[ italian ] = "in row ";
+ TEXT[ danish ] = "in row ";
+ TEXT[ swedish ] = "in row ";
+ TEXT[ polish ] = "in row ";
+ TEXT[ portuguese_brazilian ] = "in Zeile ";
+ TEXT[ japanese ] = "s ";
+ TEXT[ korean ] = " ";
+ TEXT[ chinese_simplified ] = "in Zeile ";
+ TEXT[ chinese_traditional ] = "in row ";
+ TEXT[ arabic ] = "in row ";
+ TEXT[ turkish ] = "Satr: ";
+};
+String IDS_NO_LONGNAME {
+ TEXT = "Kein Eintrag in Hid.Lst";
+ TEXT[ english_us ] = "No entries in Hid.Lst";
+ TEXT[ portuguese ] = "Nenhuma entrada em Hid.Lst";
+ TEXT[ russian ] = " Hid.Lst ";
+ TEXT[ greek ] = "No entries in Hid.Lst";
+ TEXT[ dutch ] = "Geen item in Hid.Lst";
+ TEXT[ french ] = "Aucune entre dans Hid.Lst";
+ TEXT[ spanish ] = "Ninguna entrada en Hid.Lst";
+ TEXT[ italian ] = "No esntries in Hid.Lst";
+ TEXT[ danish ] = "No entries in Hid.Lst";
+ TEXT[ swedish ] = "No entries in Hid.Lst";
+ TEXT[ polish ] = "Brak wpisu w Hid.Lst";
+ TEXT[ portuguese_brazilian ] = "Kein Eintrag in Hid.Lst";
+ TEXT[ japanese ] = "Hid.Lstɍڂ͂܂";
+ TEXT[ korean ] = "Hid.Lst ϵ ʾҽϴ.";
+ TEXT[ chinese_simplified ] = "No entries in Hid.Lst";
+ TEXT[ chinese_traditional ] = "No entries in Hid.Lst";
+ TEXT[ arabic ] = "No entries in Hid.Lst";
+ TEXT[ turkish ] = "Hid.Lst'te giri yok";
+};
+String IDS_WARNING_PREFIX
+{
+ Text = "Warnung: ";
+ Text[ english_us ] = "Warning: ";
+ Text[ portuguese ] = "Aviso: ";
+ Text[ russian ] = ": ";
+ Text[ greek ] = "Warning: ";
+ Text[ dutch ] = "Waarschuwing: ";
+ Text[ french ] = "Attention ! ";
+ Text[ spanish ] = "Advertencia: ";
+ Text[ italian ] = "Warning: ";
+ Text[ danish ] = "Warning: ";
+ Text[ swedish ] = "Warning: ";
+ Text[ polish ] = "Ostrzeenie: ";
+ Text[ portuguese_brazilian ] = "Warnung: ";
+ Text[ japanese ] = "x: ";
+ Text[ korean ] = " ";
+ Text[ chinese_simplified ] = "Warning: ";
+ Text[ chinese_traditional ] = "Warning: ";
+ Text[ arabic ] = "Warning: ";
+ Text[ turkish ] = "Uyar: ";
+};
+String IDS_OBJECT
+{
+ Text = "Objekt";
+ Text[ english_us ] = "Object";
+ Text[ LANGUAGE_USER1 ] = "Gemeint sind Objekte aus der Objektorientierten Programmierung";
+ Text[ portuguese ] = "Objecto";
+ Text[ russian ] = "";
+ Text[ greek ] = "Objekt";
+ Text[ dutch ] = "Object";
+ Text[ french ] = "Objet";
+ Text[ spanish ] = "Objeto";
+ Text[ italian ] = "Object";
+ Text[ danish ] = "Object";
+ Text[ swedish ] = "Object";
+ Text[ polish ] = "Obiekt";
+ Text[ portuguese_brazilian ] = "Object";
+ Text[ japanese ] = "޼ު";
+ Text[ korean ] = "ü";
+ Text[ chinese_simplified ] = "Object";
+ Text[ chinese_traditional ] = "Object";
+ Text[ arabic ] = "Object";
+ Text[ turkish ] = "Nesne";
+};
+String IDS_EDIT_VAR
+{
+ Text = "($Arg1) Editieren";
+ Text[ english_us ] = "Edit ($Arg1)";
+ Text[ LANGUAGE_USER1 ] = "Keine Dati, sondern eine Variable";
+ Text[ portuguese ] = "Editar ($Arg1)";
+ Text[ russian ] = " ($Arg1)";
+ Text[ greek ] = "Edit ($Arg1)";
+ Text[ dutch ] = "Editeren ($Arg1)";
+ Text[ french ] = "diter ($Arg1)";
+ Text[ spanish ] = "Editar ($Arg1)";
+ Text[ italian ] = "Edit ($Arg1)";
+ Text[ danish ] = "Edit ($Arg1)";
+ Text[ swedish ] = "Edit ($Arg1)";
+ Text[ polish ] = "Edytuj ($Arg1)";
+ Text[ portuguese_brazilian ] = "Edit ($Arg1)";
+ Text[ japanese ] = "($Arg1)ҏW";
+ Text[ korean ] = " ($Arg1)";
+ Text[ chinese_simplified ] = "Edit ($Arg1)";
+ Text[ chinese_traditional ] = "Edit ($Arg1)";
+ Text[ arabic ] = "Edit ($Arg1)";
+ Text[ turkish ] = "($Arg1) Dzenle";
+};
+
+String IDS_APPNAME {
+ TEXT = "StarBasic";
+ TEXT [ english_us ] = "StarBasic";
+ TEXT[ portuguese ] = "StarOffice Basic";
+ TEXT[ russian ] = "StarBasic";
+ TEXT[ greek ] = "StarBasic";
+ TEXT[ dutch ] = "StarOffice Basic";
+ TEXT[ french ] = "StarBasic";
+ TEXT[ spanish ] = "StarBasic";
+ TEXT[ italian ] = "StarOffice Basic";
+ TEXT[ danish ] = "StarBasic";
+ TEXT[ swedish ] = "StarOffice Basic";
+ TEXT[ polish ] = "StarBasic";
+ TEXT[ portuguese_brazilian ] = "StarBasic";
+ TEXT[ japanese ] = "StarBasic";
+ TEXT[ korean ] = "StarOffice Basic";
+ TEXT[ chinese_simplified ] = "StarOffice Basic";
+ TEXT[ chinese_traditional ] = "StarOffice Basic";
+ TEXT[ arabic ] = "StarBasic";
+ TEXT[ turkish ] = "StarOffice Basic";
+};
+String IDS_APPNAME2 {
+ TEXT = "StarTestTool";
+ TEXT [ english_us ] = "StarTestTool";
+ TEXT[ portuguese ] = "StarTestTool";
+ TEXT[ russian ] = "StarTestTool";
+ TEXT[ greek ] = "StarTestTool";
+ TEXT[ dutch ] = "StarTestTool";
+ TEXT[ french ] = "StarTestTool";
+ TEXT[ spanish ] = "StarTestTool";
+ TEXT[ italian ] = "StarTestTool";
+ TEXT[ danish ] = "StarTestTool";
+ TEXT[ swedish ] = "StarTestTool";
+ TEXT[ polish ] = "StarTestTool";
+ TEXT[ portuguese_brazilian ] = "StarTestTool";
+ TEXT[ japanese ] = "StarTestTool";
+ TEXT[ korean ] = "StarTestTool";
+ TEXT[ chinese_simplified ] = "StarTestTool";
+ TEXT[ chinese_traditional ] = "StarTestTool";
+ TEXT[ arabic ] = "StarTestTool";
+ TEXT[ turkish ] = "StarTestTool";
+};
+String IDS_APPMODE_BREAK {
+ text = "Break";
+ text[ english_us ] = "Break";
+ text[ portuguese ] = "Break";
+ text[ russian ] = "Break";
+ text[ greek ] = "Break";
+ text[ dutch ] = "Break";
+ text[ french ] = "Break";
+ text[ spanish ] = "Break";
+ text[ italian ] = "Break";
+ text[ danish ] = "Break";
+ text[ swedish ] = "Break";
+ text[ polish ] = "Przerwa";
+ text[ portuguese_brazilian ] = "Break";
+ text[ japanese ] = "Break";
+ text[ korean ] = "Break";
+ text[ chinese_simplified ] = "Break";
+ text[ chinese_traditional ] = "Break";
+ text[ arabic ] = "Break";
+ text[ turkish ] = "Break";
+};
+String IDS_APPMODE_RUN {
+ text = "Run";
+ text[ english_us ] = "Run";
+ text[ portuguese ] = "Run";
+ text[ russian ] = "Run";
+ text[ greek ] = "Run";
+ text[ dutch ] = "Run";
+ text[ french ] = "Run";
+ text[ spanish ] = "Run";
+ text[ italian ] = "Run";
+ text[ danish ] = "Run";
+ text[ swedish ] = "Run";
+ text[ polish ] = "Run";
+ text[ portuguese_brazilian ] = "Run";
+ text[ japanese ] = "Run";
+ text[ korean ] = "";
+ text[ chinese_simplified ] = "Run";
+ text[ chinese_traditional ] = "Run";
+ text[ arabic ] = "Run";
+ text[ turkish ] = "Run";
+};
+String IDS_NONAME {
+ TEXT = "Unbenannt";
+ TEXT [ english_us ] = "Unnamed";
+ TEXT[ portuguese ] = "Sem nome";
+ TEXT[ russian ] = "Unnamed";
+ TEXT[ greek ] = "Unnamed";
+ TEXT[ dutch ] = "Naamloos";
+ TEXT[ french ] = "Sans nom";
+ TEXT[ spanish ] = "Desconocido";
+ TEXT[ italian ] = "Unnamed";
+ TEXT[ danish ] = "Unnamed";
+ TEXT[ swedish ] = "Unnamed";
+ TEXT[ polish ] = "Unnamed ";
+ TEXT[ portuguese_brazilian ] = "Unbenannt";
+ TEXT[ japanese ] = "s";
+ TEXT[ korean ] = "̸ ";
+ TEXT[ chinese_simplified ] = "Unbenannt";
+ TEXT[ chinese_traditional ] = "Unnamed";
+ TEXT[ arabic ] = "Unnamed";
+ TEXT[ turkish ] = "Adsz";
+};
+
+String IDS_NONAMEFILE {
+#if defined ( UNX )
+TEXT = "*.bas";
+#else
+TEXT = "*.BAS";
+#endif
+};
+String IDS_INCFILE {
+#if defined ( UNX )
+TEXT = "*.inc";
+#else
+TEXT = "*.INC";
+#endif
+};
+String IDS_LIBFILE {
+#if defined ( UNX )
+TEXT = "*.sb";
+#else
+TEXT = "*.SB";
+#endif
+};
+String IDS_RESFILE {
+#if defined ( UNX )
+TEXT = "*.res";
+#else
+TEXT = "*.RES";
+#endif
+};
+String IDS_TXTFILE {
+#if defined ( UNX )
+TEXT = "*.txt";
+#else
+TEXT = "*.TXT";
+#endif
+};
+
+String IDS_LOADDLG {
+ TEXT = "StarBasic: Datei einlesen";
+ TEXT [ english_us ] = "StarBasic: Load File";
+ TEXT[ portuguese ] = "StarOffice Basic: ler ficheiro";
+ TEXT[ russian ] = "StarBasic: Load File";
+ TEXT[ greek ] = "StarBasic: Load File";
+ TEXT[ dutch ] = "StarOffice Basic: bestand lezen";
+ TEXT[ french ] = "StarBasic : Lecture du fichier";
+ TEXT[ spanish ] = "StarBasic: Leer archivo";
+ TEXT[ italian ] = "StarBasic: Load File";
+ TEXT[ danish ] = "StarBasic: Load File";
+ TEXT[ swedish ] = "StarBasic: Load File";
+ TEXT[ polish ] = "StarBasic: Load File ";
+ TEXT[ portuguese_brazilian ] = "StarBasic: Datei einlesen";
+ TEXT[ japanese ] = "StarBasic: ̧ق̓ǂݍ";
+ TEXT[ korean ] = "StarBasic: ε";
+ TEXT[ chinese_simplified ] = "StarBasic: Datei einlesen";
+ TEXT[ chinese_traditional ] = "StarOffice BasicGLoad File";
+ TEXT[ arabic ] = "StarBasic: Load File";
+ TEXT[ turkish ] = "StarBasic: Dosyay ykle";
+};
+String IDS_SAVEDLG {
+ TEXT = "StarBasic: Datei speichern";
+ TEXT [ english_us ] = "StarBasic: Save File";
+ TEXT[ portuguese ] = "StarOffice Basic: guardar ficheiro";
+ TEXT[ russian ] = "StarBasic: Save File";
+ TEXT[ greek ] = "StarBasic: Save File";
+ TEXT[ dutch ] = "StarOffice Basic: bestand opslaan";
+ TEXT[ french ] = "StarBasic: Enregistrement du fichier";
+ TEXT[ spanish ] = "StarBasic: Guardar archivo";
+ TEXT[ italian ] = "StarBasic: Save File";
+ TEXT[ danish ] = "StarBasic: Save File";
+ TEXT[ swedish ] = "StarBasic: Save File";
+ TEXT[ polish ] = "StarBasic: Save File ";
+ TEXT[ portuguese_brazilian ] = "StarBasic: Datei speichern";
+ TEXT[ japanese ] = "StarBasic: ̧ق̕ۑ";
+ TEXT[ korean ] = "StarBasic: ";
+ TEXT[ chinese_simplified ] = "StarBasic: Datei speichern";
+ TEXT[ chinese_traditional ] = "StarOffice Basic: Save File";
+ TEXT[ arabic ] = "StarBasic: Save File";
+ TEXT[ turkish ] = "StarBasic: Dosyay kaydet";
+};
+String IDS_BASFILTER {
+ TEXT = "Quelltexte (*.BAS)";
+ TEXT [ english_us ] = "Source text (*.BAS)";
+ TEXT[ portuguese ] = "Textos-fonte (*.BAS)";
+ TEXT[ russian ] = "Source text (*.BAS)";
+ TEXT[ greek ] = "Source text (*.BAS)";
+ TEXT[ dutch ] = "Brontekst (*.BAS)";
+ TEXT[ french ] = "Texte source (*.BAS)";
+ TEXT[ spanish ] = "Textos fuente (*.BAS)";
+ TEXT[ italian ] = "Source text (*.BAS)";
+ TEXT[ danish ] = "Source text (*.BAS)";
+ TEXT[ swedish ] = "Source text (*.BAS)";
+ TEXT[ polish ] = "Source text (*.BAS) ";
+ TEXT[ portuguese_brazilian ] = "Quelltexte (*.BAS)";
+ TEXT[ japanese ] = "(*.BAS)";
+ TEXT[ korean ] = "ҽ ؽƮ (*.BAS)";
+ TEXT[ chinese_simplified ] = "Quelltexte (*.BAS)";
+ TEXT[ chinese_traditional ] = "Source text(*.BAS)";
+ TEXT[ arabic ] = "Source text (*.BAS)";
+ TEXT[ turkish ] = "Kaynak metinler (*.BAS)";
+};
+String IDS_INCFILTER {
+ TEXT = "Include-Dateien (*.INC)";
+ TEXT [ english_us ] = "Include files (*.INC)";
+ TEXT[ portuguese ] = "Ficheiros \"Include\" (*.INC)";
+ TEXT[ russian ] = "Include files (*.INC)";
+ TEXT[ greek ] = "Include files (*.INC)";
+ TEXT[ dutch ] = "Include-bestanden (*.INC)";
+ TEXT[ french ] = "Fichiers \"Include\" (*.INC)";
+ TEXT[ spanish ] = "Archivos \"Include\" (*.INC)";
+ TEXT[ italian ] = "Include files (*.INC)";
+ TEXT[ danish ] = "Include files (*.INC)";
+ TEXT[ swedish ] = "Include files (*.INC)";
+ TEXT[ polish ] = "Include files (*.INC) ";
+ TEXT[ portuguese_brazilian ] = "Include-Dateien (*.INC)";
+ TEXT[ japanese ] = "Include files (*.INC)";
+ TEXT[ korean ] = " (*.INC)";
+ TEXT[ chinese_simplified ] = "Include-Dateien (*.INC)";
+ TEXT[ chinese_traditional ] = "Include files(*.INC)";
+ TEXT[ arabic ] = "Include files (*.INC)";
+ TEXT[ turkish ] = "Include dosyalar (*.INC)";
+};
+String IDS_LIBFILTER {
+ TEXT = "Libraries (*.SB)";
+ TEXT [ english_us ] = "Libraries (*.SB)";
+ TEXT[ portuguese ] = "Bibliotecas (*.SB)";
+ TEXT[ russian ] = "Libraries (*.SB)";
+ TEXT[ greek ] = "Libraries (*.SB)";
+ TEXT[ dutch ] = "Libraries (*.SB)";
+ TEXT[ french ] = "Bibliothques (*.SB)";
+ TEXT[ spanish ] = "Bibliotecas (*.SB)";
+ TEXT[ italian ] = "Libraries (*.SB)";
+ TEXT[ danish ] = "Libraries (*.SB)";
+ TEXT[ swedish ] = "Libraries (*.SB)";
+ TEXT[ polish ] = "Libraries (*.SB) ";
+ TEXT[ portuguese_brazilian ] = "Libraries (*.SB)";
+ TEXT[ japanese ] = "ײ(*.SB)";
+ TEXT[ korean ] = "̺귯 (*.SB)";
+ TEXT[ chinese_simplified ] = "Libraries (*.SB)";
+ TEXT[ chinese_traditional ] = "Libraries(*.SB)";
+ TEXT[ arabic ] = "Libraries (*.SB)";
+ TEXT[ turkish ] = "Kitaplklar (*.SB)";
+};
+String IDS_RESFILTER {
+ TEXT = "Results (*.RES)";
+ TEXT [ english_us ] = "Results (*.RES)";
+ TEXT[ portuguese ] = "Resultados (*.RES)";
+ TEXT[ russian ] = "Results (*.RES)";
+ TEXT[ greek ] = "Results (*.RES)";
+ TEXT[ dutch ] = "Results (*.RES)";
+ TEXT[ french ] = "Rsultats (*.RES)";
+ TEXT[ spanish ] = "Resultados (*.RES)";
+ TEXT[ italian ] = "Results (*.RES)";
+ TEXT[ danish ] = "Results (*.RES)";
+ TEXT[ swedish ] = "Results (*.RES)";
+ TEXT[ polish ] = "Results (*.RES) ";
+ TEXT[ portuguese_brazilian ] = "Results (*.RES)";
+ TEXT[ japanese ] = "(*.RES)";
+ TEXT[ korean ] = " (*.RES)";
+ TEXT[ chinese_simplified ] = "Results (*.RES)";
+ TEXT[ chinese_traditional ] = "Results(*.RES)";
+ TEXT[ arabic ] = "Results (*.RES)";
+ TEXT[ turkish ] = "Sonular (*.RES)";
+};
+String IDS_TXTFILTER {
+ TEXT = "Results als Textdatei (*.TXT)";
+ TEXT [ english_us ] = "Results as text file (*.TXT)";
+ TEXT[ portuguese ] = "Resultados como ficheiro de texto (*.TXT)";
+ TEXT[ russian ] = "Results as text file (*.TXT)";
+ TEXT[ greek ] = "Results as text file (*.TXT)";
+ TEXT[ dutch ] = "Results als tekstbestand (*.TXT)";
+ TEXT[ french ] = "Rsultats sous forme de fichier texte (*.TXT)";
+ TEXT[ spanish ] = "Resultados como archivo de texto (*.TXT)";
+ TEXT[ italian ] = "Results as text file (*.TXT)";
+ TEXT[ danish ] = "Results as text file (*.TXT)";
+ TEXT[ swedish ] = "Results as text file (*.TXT)";
+ TEXT[ polish ] = "Results as text file (*.TXT) ";
+ TEXT[ portuguese_brazilian ] = "Results als Textdatei (*.TXT)";
+ TEXT[ japanese ] = "̧قƂĂ̌(*.TXT)";
+ TEXT[ korean ] = "ؽƮ (*.TXT)";
+ TEXT[ chinese_simplified ] = "Results als Textdatei (*.TXT)";
+ TEXT[ chinese_traditional ] = "Results as text file(*.TXT)";
+ TEXT[ arabic ] = "Results as text file (*.TXT)";
+ TEXT[ turkish ] = "Metin dosyas olarak sonular (*.TXT)";
+};
+String IDS_PAGE {
+ TEXT = "Seite ";
+ TEXT [ english_us ] = "Page ";
+ TEXT[ portuguese ] = "Pgina ";
+ TEXT[ russian ] = "Page ";
+ TEXT[ greek ] = "Page ";
+ TEXT[ dutch ] = "Pagina ";
+ TEXT[ french ] = "Page ";
+ TEXT[ spanish ] = "Pgina ";
+ TEXT[ italian ] = "Page ";
+ TEXT[ danish ] = "Page ";
+ TEXT[ swedish ] = "Page ";
+ TEXT[ polish ] = "Page ";
+ TEXT[ portuguese_brazilian ] = "Seite ";
+ TEXT[ japanese ] = "߰ ";
+ TEXT[ korean ] = " ";
+ TEXT[ chinese_simplified ] = "Seite ";
+ TEXT[ chinese_traditional ] = "Page ";
+ TEXT[ arabic ] = "Page ";
+ TEXT[ turkish ] = "Sayfa ";
+};
+String IDS_PRINTMSG {
+ TEXT = "Ausdruck von ";
+ TEXT [ english_us ] = "Printout from ";
+ TEXT[ portuguese ] = "Impresso de ";
+ TEXT[ russian ] = "Printout from ";
+ TEXT[ greek ] = "Printout from ";
+ TEXT[ dutch ] = "Afdruk van ";
+ TEXT[ french ] = "Impression de ";
+ TEXT[ spanish ] = "Imprimir ";
+ TEXT[ italian ] = "Printout from ";
+ TEXT[ danish ] = "Printout from ";
+ TEXT[ swedish ] = "Printout from ";
+ TEXT[ polish ] = "Printout from ";
+ TEXT[ portuguese_brazilian ] = "Ausdruck von ";
+ TEXT[ japanese ] = "͈ ";
+ TEXT[ korean ] = " ";
+ TEXT[ chinese_simplified ] = "Ausdruck von ";
+ TEXT[ chinese_traditional ] = "Printout from ";
+ TEXT[ arabic ] = "Printout from ";
+ TEXT[ turkish ] = "kt kayna: ";
+};
+String IDS_CONTINUE {
+ TEXT = "Weiter";
+ TEXT [ english_us ] = "Continue";
+ TEXT[ portuguese ] = "Continuar";
+ TEXT[ russian ] = "Continue";
+ TEXT[ greek ] = "Continue";
+ TEXT[ dutch ] = "Volgende";
+ TEXT[ french ] = "Poursuivre";
+ TEXT[ spanish ] = "Avanzar";
+ TEXT[ italian ] = "Continue";
+ TEXT[ danish ] = "Continue";
+ TEXT[ swedish ] = "Continue";
+ TEXT[ polish ] = "Continue ";
+ TEXT[ portuguese_brazilian ] = "Weiter";
+ TEXT[ japanese ] = "s";
+ TEXT[ korean ] = "";
+ TEXT[ chinese_simplified ] = "Weiter";
+ TEXT[ chinese_traditional ] = "Contiune";
+ TEXT[ arabic ] = "Continue";
+ TEXT[ turkish ] = "leri";
+};
+String IDS_CANCEL {
+ TEXT = "Abbruch";
+ TEXT [ english_us ] = "Cancel";
+ TEXT[ portuguese ] = "Cancelar";
+ TEXT[ russian ] = "Cancel";
+ TEXT[ greek ] = "Cancel";
+ TEXT[ dutch ] = "Annuleren";
+ TEXT[ french ] = "Annuler";
+ TEXT[ spanish ] = "Cancelar";
+ TEXT[ italian ] = "Cancel";
+ TEXT[ danish ] = "Cancel";
+ TEXT[ swedish ] = "Cancel";
+ TEXT[ polish ] = "Cancel ";
+ TEXT[ portuguese_brazilian ] = "Abbruch";
+ TEXT[ japanese ] = "ݾ";
+ TEXT[ korean ] = "";
+ TEXT[ chinese_simplified ] = "Abbruch";
+ TEXT[ chinese_traditional ] = "Cancel";
+ TEXT[ arabic ] = "Cancel";
+ TEXT[ turkish ] = "ptal";
+};
+String IDS_DISASWIN {
+ TEXT = "Disassembly";
+ TEXT [ english_us ] = "Disassembly";
+ TEXT[ portuguese ] = "Descodificar";
+ TEXT[ russian ] = "Disassembly";
+ TEXT[ greek ] = "Disassembly";
+ TEXT[ dutch ] = "Disassembly";
+ TEXT[ french ] = "Dsassembler";
+ TEXT[ spanish ] = "Desensamblar";
+ TEXT[ italian ] = "Disassembly";
+ TEXT[ danish ] = "Disassembly";
+ TEXT[ swedish ] = "Disassembly";
+ TEXT[ polish ] = "Disassembly ";
+ TEXT[ portuguese_brazilian ] = "Disassembly";
+ TEXT[ japanese ] = "Disassembly";
+ TEXT[ korean ] = "Disassembly";
+ TEXT[ chinese_simplified ] = "Disassembly";
+ TEXT[ chinese_traditional ] = "Disassembly";
+ TEXT[ arabic ] = "Disassembly";
+ TEXT[ turkish ] = "Disassembly";
+};
+//Icon RID_APPICON {
+// FILE = "basic.ico";
+//};
+//Icon RID_APPICON2 {
+// FILE = "testtool.ico";
+//};
+//Icon RID_WORKICON {
+// FILE = "work.ico";
+//};
+
+Bitmap MBP_PLUS {
+ File = "plus.bmp";
+};
+Bitmap MBP_MINUS {
+ File = "minus.bmp";
+};
+Bitmap MBP_ASSERT {
+ File = "assert.bmp";
+};
+
+Menu RID_APPMENUBAR {
+ ItemList = {
+ MenuItem {
+ Identifier = RID_APPFILE;
+ TEXT = "~Datei";
+ TEXT [ english_us ] = "~File";
+ HELPTEXT = "Dateien ffnen, schlieen und drucken";
+ HELPTEXT [ english_us ] = "Dateien ffnen, schlieen und drucken";
+ SUBMENU = Menu ,RID_FILE;
+ TEXT[ portuguese ] = "~Ficheiro";
+ TEXT[ russian ] = "~";
+ TEXT[ greek ] = "~File";
+ TEXT[ dutch ] = "~Bestand";
+ TEXT[ french ] = "~Fichier";
+ TEXT[ spanish ] = "~Archivo";
+ TEXT[ italian ] = "~File";
+ TEXT[ danish ] = "~File";
+ TEXT[ swedish ] = "~File";
+ TEXT[ polish ] = "~File ";
+ TEXT[ portuguese_brazilian ] = "~Datei";
+ TEXT[ japanese ] = "̧(~F)";
+ TEXT[ korean ] = "(~F)";
+ TEXT[ chinese_simplified ] = "~Datei";
+ TEXT[ chinese_traditional ] = "~File";
+ TEXT[ arabic ] = "~File";
+ TEXT[ turkish ] = "~Dosya";
+ };
+ MenuItem {
+ Identifier = RID_APPEDIT;
+ TEXT = "~Bearbeiten";
+ TEXT [ english_us ] = "~Edit";
+ HELPTEXT = "Editier-Funktionen";
+ HELPTEXT [ english_us ] = "Editier-Funktionen";
+ SUBMENU = Menu ,RID_EDIT;
+ TEXT[ portuguese ] = "~Editar";
+ TEXT[ russian ] = "~Edit";
+ TEXT[ greek ] = "~Edit";
+ TEXT[ dutch ] = "~Bewerken";
+ TEXT[ french ] = "~diter";
+ TEXT[ spanish ] = "~Editar";
+ TEXT[ italian ] = "~Edit";
+ TEXT[ danish ] = "~Edit";
+ TEXT[ swedish ] = "~Edit";
+ TEXT[ polish ] = "~Edit ";
+ TEXT[ portuguese_brazilian ] = "~Bearbeiten";
+ TEXT[ japanese ] = "ҏW(~E)";
+ TEXT[ korean ] = "(~E)";
+ TEXT[ chinese_simplified ] = "~Bearbeiten";
+ TEXT[ chinese_traditional ] = "~Edit";
+ TEXT[ arabic ] = "~Edit";
+ TEXT[ turkish ] = "D~zenle";
+ };
+ MenuItem {
+ Identifier = RID_APPRUN;
+ TEXT = "~Programm";
+ TEXT [ english_us ] = "~Program";
+ HELPTEXT = "Programme compilieren und ausfhren";
+ HELPTEXT [ english_us ] = "Programme compilieren und ausfhren";
+ SUBMENU = Menu ,RID_RUN;
+ TEXT[ portuguese ] = "~Programa";
+ TEXT[ russian ] = "~Program";
+ TEXT[ greek ] = "~Program";
+ TEXT[ dutch ] = "~Programma";
+ TEXT[ french ] = "~Programme";
+ TEXT[ spanish ] = "~Programa";
+ TEXT[ italian ] = "~Program";
+ TEXT[ danish ] = "~Program";
+ TEXT[ swedish ] = "~Program";
+ TEXT[ polish ] = "~Program ";
+ TEXT[ portuguese_brazilian ] = "~Programm";
+ TEXT[ japanese ] = "۸(~P)";
+ TEXT[ korean ] = "α׷(~P)";
+ TEXT[ chinese_simplified ] = "~Programm";
+ TEXT[ chinese_traditional ] = "~Program";
+ TEXT[ arabic ] = "~Program";
+ TEXT[ turkish ] = "P~rogram";
+ };
+ MenuItem {
+ Identifier = RID_APPWINDOW;
+ TEXT = "~Fenster";
+ TEXT [ english_us ] = "~Window";
+ HELPTEXT = "Fenster anordnen";
+ HELPTEXT [ english_us ] = "Fenster anordnen";
+ SUBMENU = Menu ,RID_WINDOW;
+ TEXT[ portuguese ] = "~Janela";
+ TEXT[ russian ] = "~Window";
+ TEXT[ greek ] = "~Window";
+ TEXT[ dutch ] = "~Venster";
+ TEXT[ french ] = "~Fentre";
+ TEXT[ spanish ] = "~Ventana";
+ TEXT[ italian ] = "~Window";
+ TEXT[ danish ] = "~Window";
+ TEXT[ swedish ] = "~Window";
+ TEXT[ polish ] = "~Window ";
+ TEXT[ portuguese_brazilian ] = "~Fenster";
+ TEXT[ japanese ] = "޳(~W)";
+ TEXT[ korean ] = "â(~W)";
+ TEXT[ chinese_simplified ] = "~Fenster";
+ TEXT[ chinese_traditional ] = "~Window";
+ TEXT[ arabic ] = "~Window";
+ TEXT[ turkish ] = "~Pencere";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ HELP = TRUE;
+ Identifier = RID_APPHELP;
+ TEXT = "~Hilfe";
+ TEXT [ english_us ] = "~Help";
+ HELPTEXT = "Hilfe-Funktionen";
+ HELPTEXT [ english_us ] = "Hilfe-Funktionen";
+ SUBMENU = Menu ,RID_HELP;
+ TEXT[ portuguese ] = "~Ajuda";
+ TEXT[ russian ] = "~Help";
+ TEXT[ greek ] = "~Help";
+ TEXT[ dutch ] = "~Help";
+ TEXT[ french ] = "~Aide";
+ TEXT[ spanish ] = "~Ayuda";
+ TEXT[ italian ] = "~Help";
+ TEXT[ danish ] = "~Help";
+ TEXT[ swedish ] = "~Help";
+ TEXT[ polish ] = "~Help ";
+ TEXT[ portuguese_brazilian ] = "~Hilfe";
+ TEXT[ japanese ] = "(~H)";
+ TEXT[ korean ] = "(~H)";
+ TEXT[ chinese_simplified ] = "~Hilfe";
+ TEXT[ chinese_traditional ] = "~Help";
+ TEXT[ arabic ] = "~Help";
+ TEXT[ turkish ] = "~Yardm";
+ };
+ };
+};
+Menu RID_FILE {
+ ITEMLIST = {
+ MenuItem {
+ Identifier = RID_FILENEW;
+ TEXT = "~Neu";
+ TEXT [ english_us ] = "~New";
+ HELPTEXT = "Neues, leeres Fenster ffnen";
+ HELPTEXT [ english_us ] = "Neues, leeres Fenster ffnen";
+ AccelKey = KeyCode { Function = KEYFUNC_NEW; };
+ TEXT[ portuguese ] = "~Novo";
+ TEXT[ russian ] = "~New";
+ TEXT[ greek ] = "~New";
+ TEXT[ dutch ] = "~Nieuw";
+ TEXT[ french ] = "~Nouveau";
+ TEXT[ spanish ] = "~Nuevo";
+ TEXT[ italian ] = "~New";
+ TEXT[ danish ] = "~New";
+ TEXT[ swedish ] = "~New";
+ TEXT[ polish ] = "~New ";
+ TEXT[ portuguese_brazilian ] = "~Neu";
+ TEXT[ japanese ] = "VK쐬(~N)";
+ TEXT[ korean ] = "(~N)";
+ TEXT[ chinese_simplified ] = "~Neu";
+ TEXT[ chinese_traditional ] = "~New";
+ TEXT[ arabic ] = "~New";
+ TEXT[ turkish ] = "Y~eni";
+ };
+ MenuItem {
+ Identifier = RID_FILEOPEN;
+ TEXT = "~ffnen...";
+ TEXT [ english_us ] = "~Open...";
+ HELPTEXT = "Datei in Fenster einlesen";
+ HELPTEXT [ english_us ] = "Datei in Fenster einlesen";
+ AccelKey = KeyCode { Function = KEYFUNC_OPEN; };
+ TEXT[ portuguese ] = "A~brir...";
+ TEXT[ russian ] = "~Open...";
+ TEXT[ greek ] = "~Open...";
+ TEXT[ dutch ] = "O~penen...";
+ TEXT[ french ] = "~Ouvrir...";
+ TEXT[ spanish ] = "A~brir...";
+ TEXT[ italian ] = "~Open...";
+ TEXT[ danish ] = "~Open...";
+ TEXT[ swedish ] = "~Open...";
+ TEXT[ polish ] = "~Open... ";
+ TEXT[ portuguese_brazilian ] = "~ffnen...";
+ TEXT[ japanese ] = "J(~O)...";
+ TEXT[ korean ] = "(~O)...";
+ TEXT[ chinese_simplified ] = "~ffnen...";
+ TEXT[ chinese_traditional ] = "~Open...";
+ TEXT[ arabic ] = "~Open...";
+ TEXT[ turkish ] = "~A...";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_FILECLOSE;
+ TEXT = "S~chlieen";
+ TEXT [ english_us ] = "~Close";
+ HELPTEXT = "Fenster schlieen";
+ HELPTEXT [ english_us ] = "Fenster schlieen";
+ TEXT[ portuguese ] = "~Fechar";
+ TEXT[ russian ] = "~Close";
+ TEXT[ greek ] = "~Close";
+ TEXT[ dutch ] = "S~luiten";
+ TEXT[ french ] = "~Fermer";
+ TEXT[ spanish ] = "~Cerrar";
+ TEXT[ italian ] = "~Close";
+ TEXT[ danish ] = "~Close";
+ TEXT[ swedish ] = "~Close";
+ TEXT[ polish ] = "~Close ";
+ TEXT[ portuguese_brazilian ] = "S~chlieen";
+ TEXT[ japanese ] = "‚(~C)";
+ TEXT[ korean ] = "ݱ(~C)";
+ TEXT[ chinese_simplified ] = "S~chlieen";
+ TEXT[ chinese_traditional ] = "~Close";
+ TEXT[ arabic ] = "~Close";
+ TEXT[ turkish ] = "Kapa~t";
+ };
+ MenuItem {
+ Identifier = RID_FILESAVE;
+ TEXT = "~Speichern";
+ TEXT [ english_us ] = "~Save";
+ HELPTEXT = "Datei unter dem aktuellen Namen speichern";
+ HELPTEXT [ english_us ] = "Datei unter dem aktuellen Namen speichern";
+ AccelKey = KeyCode { Function = KEYFUNC_SAVE; };
+ TEXT[ portuguese ] = "~Guardar";
+ TEXT[ russian ] = "~Save";
+ TEXT[ greek ] = "~Save";
+ TEXT[ dutch ] = "~Opslaan";
+ TEXT[ french ] = "~Enregistrer";
+ TEXT[ spanish ] = "~Guardar";
+ TEXT[ italian ] = "~Save";
+ TEXT[ danish ] = "~Save";
+ TEXT[ swedish ] = "~Save";
+ TEXT[ polish ] = "~Save ";
+ TEXT[ portuguese_brazilian ] = "~Speichern";
+ TEXT[ japanese ] = "ۑ(~S)";
+ TEXT[ korean ] = "(~S)";
+ TEXT[ chinese_simplified ] = "~Speichern";
+ TEXT[ chinese_traditional ] = "~Save";
+ TEXT[ arabic ] = "~Save";
+ TEXT[ turkish ] = "Kay~det";
+ };
+ MenuItem {
+ Identifier = RID_FILESAVEAS;
+ TEXT = "Speichern ~unter...";
+ TEXT [ english_us ] = "Save~ As...";
+ HELPTEXT = "Datei unter einem neuen Namen speichern";
+ HELPTEXT [ english_us ] = "Datei unter einem neuen Namen speichern";
+ AccelKey = KeyCode { Function = KEYFUNC_SAVEAS; };
+ TEXT[ portuguese ] = "Guardar ~como...";
+ TEXT[ russian ] = "Save~ As...";
+ TEXT[ greek ] = "Save~ As...";
+ TEXT[ dutch ] = "Opslaan ~als...";
+ TEXT[ french ] = "Enregistrer ~sous...";
+ TEXT[ spanish ] = "Guardar ~como...";
+ TEXT[ italian ] = "Save ~As...";
+ TEXT[ danish ] = "Save~ As...";
+ TEXT[ swedish ] = "Save ~As...";
+ TEXT[ polish ] = "Save~ As... ";
+ TEXT[ portuguese_brazilian ] = "Speichern ~unter...";
+ TEXT[ japanese ] = "㏑ۑ(~U)...";
+ TEXT[ korean ] = "ٸ ̸ (~ )...";
+ TEXT[ chinese_simplified ] = "Speichern ~unter...";
+ TEXT[ chinese_traditional ] = "Save ~as...";
+ TEXT[ arabic ] = "Save~ As...";
+ TEXT[ turkish ] = "~Farkl kaydet...";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_FILELOADLIB;
+ TEXT = "~Library laden...";
+ TEXT [ english_us ] = "~Load Library...";
+ HELPTEXT = "Modul-Library laden und aktivieren";
+ HELPTEXT [ english_us ] = "Modul-Library laden und aktivieren";
+ TEXT[ portuguese ] = "~Carregar biblioteca...";
+ TEXT[ russian ] = "~Load Library...";
+ TEXT[ greek ] = "~Load Library...";
+ TEXT[ dutch ] = "~Library laden...";
+ TEXT[ french ] = "Charger la ~bibliothque...";
+ TEXT[ spanish ] = "Cargar ~Biblioteca...";
+ TEXT[ italian ] = "~Load Library...";
+ TEXT[ danish ] = "~Load Library...";
+ TEXT[ swedish ] = "~Load Library...";
+ TEXT[ polish ] = "~Load Library... ";
+ TEXT[ portuguese_brazilian ] = "~Library laden...";
+ TEXT[ japanese ] = "ײ؂̓ǂݍ(~L)...";
+ TEXT[ korean ] = "ε ̺귯(~L)...";
+ TEXT[ chinese_simplified ] = "~Library laden...";
+ TEXT[ chinese_traditional ] = "~Load Library...";
+ TEXT[ arabic ] = "~Load Library...";
+ TEXT[ turkish ] = "~Kitapl ykle";
+ };
+ MenuItem {
+ Identifier = RID_FILESAVELIB;
+ TEXT = "Li~brary speichern...";
+ TEXT [ english_us ] = "Save Li~brary...";
+ HELPTEXT = "Aktuelle Module als Library speichern";
+ HELPTEXT [ english_us ] = "Aktuelle Module als Library speichern";
+ TEXT[ portuguese ] = "~Guardar biblioteca...";
+ TEXT[ russian ] = "Save Li~brary...";
+ TEXT[ greek ] = "Save Li~brary...";
+ TEXT[ dutch ] = "Li~brary opslaan...";
+ TEXT[ french ] = "En~registrer la bibliothque...";
+ TEXT[ spanish ] = "Guardar Bibli~oteca...";
+ TEXT[ italian ] = "Save Li~brary...";
+ TEXT[ danish ] = "Save Li~brary...";
+ TEXT[ swedish ] = "Save Li~brary...";
+ TEXT[ polish ] = "Save Li~brary... ";
+ TEXT[ portuguese_brazilian ] = "Li~brary speichern...";
+ TEXT[ japanese ] = "ײ؂̕ۑ(~B)...";
+ TEXT[ korean ] = "̺귯 (~B)...";
+ TEXT[ chinese_simplified ] = "Li~brary speichern...";
+ TEXT[ chinese_traditional ] = "Save L~ibrary...";
+ TEXT[ arabic ] = "Save Li~brary...";
+ TEXT[ turkish ] = "Kitapl kaydet...";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_FILEPRINT;
+ TEXT = "~Drucken";
+ TEXT [ english_us ] = "~Print";
+ HELPTEXT = "Datei ausdrucken";
+ HELPTEXT [ english_us ] = "Datei ausdrucken";
+ TEXT[ portuguese ] = "~Imprimir";
+ TEXT[ russian ] = "~Print";
+ TEXT[ greek ] = "~Print";
+ TEXT[ dutch ] = "~Afdrukken";
+ TEXT[ french ] = "~Imprimer";
+ TEXT[ spanish ] = "~Imprimir";
+ TEXT[ italian ] = "~Print";
+ TEXT[ danish ] = "~Print";
+ TEXT[ swedish ] = "~Print";
+ TEXT[ polish ] = "~Print ";
+ TEXT[ portuguese_brazilian ] = "~Drucken";
+ TEXT[ japanese ] = "(~P)";
+ TEXT[ korean ] = "μ(~P)";
+ TEXT[ chinese_simplified ] = "~Drucken";
+ TEXT[ chinese_traditional ] = "~Print";
+ TEXT[ arabic ] = "~Print";
+ TEXT[ turkish ] = "~Yazdr";
+ };
+ MenuItem {
+ Identifier = RID_FILESETUP;
+ TEXT = "Druckereinstellun~g...";
+ TEXT [ english_us ] = "P~rinter Setting...";
+ HELPTEXT = "Drucker einrichten";
+ HELPTEXT [ english_us ] = "Drucker einrichten";
+ TEXT[ portuguese ] = "Configurar ~impressora...";
+ TEXT[ russian ] = "P~rinter Setup...";
+ TEXT[ greek ] = "P~rinter Setup...";
+ TEXT[ dutch ] = "Printerinstellin~g...";
+ TEXT[ french ] = "Para~mtrage de l'imprimante...";
+ TEXT[ spanish ] = "~Configuracin de impresora...";
+ TEXT[ italian ] = "P~rinter Setup...";
+ TEXT[ danish ] = "P~rinter Setup...";
+ TEXT[ swedish ] = "P~rinter Setup...";
+ TEXT[ polish ] = "P~rinter Setup... ";
+ TEXT[ portuguese_brazilian ] = "Druckereinstellun~g...";
+ TEXT[ japanese ] = "ݒ(~R)...";
+ TEXT[ korean ] = " (~R)...";
+ TEXT[ chinese_simplified ] = "Druckereinstellun~g...";
+ TEXT[ chinese_traditional ] = "~Printer Setup...";
+ TEXT[ arabic ] = "P~rinter Setup...";
+ TEXT[ turkish ] = "Yazc ayarlar...";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_QUIT;
+ TEXT = "~Beenden";
+ TEXT [ english_us ] = "~Exit";
+ HELPTEXT = "Programm beenden";
+ HELPTEXT [ english_us ] = "Programm beenden";
+ AccelKey = KeyCode { Function = KEYFUNC_QUIT; };
+ TEXT[ portuguese ] = "~Sair";
+ TEXT[ russian ] = "";
+ TEXT[ greek ] = "~Exit";
+ TEXT[ dutch ] = "~Beindigen";
+ TEXT[ french ] = "~Quitter";
+ TEXT[ spanish ] = "~Terminar";
+ TEXT[ italian ] = "~Exit";
+ TEXT[ danish ] = "~Exit";
+ TEXT[ swedish ] = "~Exit";
+ TEXT[ polish ] = "~Exit ";
+ TEXT[ portuguese_brazilian ] = "~Beenden";
+ TEXT[ japanese ] = "I(~X)";
+ TEXT[ korean ] = "(~E)";
+ TEXT[ chinese_simplified ] = "~Beenden";
+ TEXT[ chinese_traditional ] = "~Exit";
+ TEXT[ arabic ] = "~Exit";
+ TEXT[ turkish ] = "~k";
+ };
+ };
+};
+Menu RID_EDIT {
+ ITEMLIST = {
+ MenuItem {
+ Identifier = RID_EDITUNDO;
+ TEXT = "~Rckgngig";
+ TEXT [ english_us ] = "~Undo";
+ HELPTEXT = "Die letzte nderung rckgngig machen";
+ HELPTEXT [ english_us ] = "Die letzte nderung rckgngig machen";
+// AccelKey = KeyCode { Function = KEYFUNC_CUT; };
+ TEXT[ portuguese ] = "~Desfazer";
+ TEXT[ russian ] = "~Undo";
+ TEXT[ greek ] = "~Undo";
+ TEXT[ dutch ] = "~Ongedaan";
+ TEXT[ french ] = "~Annuler";
+ TEXT[ spanish ] = "~Deshacer";
+ TEXT[ italian ] = "~Undo";
+ TEXT[ danish ] = "~Undo";
+ TEXT[ swedish ] = "~Undo";
+ TEXT[ polish ] = "~Undo ";
+ TEXT[ portuguese_brazilian ] = "~Rckgngig";
+ TEXT[ japanese ] = "ɖ߂(~U)";
+ TEXT[ korean ] = "(~U)";
+ TEXT[ chinese_simplified ] = "~Rckgngig";
+ TEXT[ chinese_traditional ] = "~Undo";
+ TEXT[ arabic ] = "";
+ TEXT[ turkish ] = "Geri ~al";
+ };
+ MenuItem {
+ Identifier = RID_EDITREDO;
+ TEXT = "~Wiederholen";
+ TEXT [ english_us ] = "~Repeat";
+ HELPTEXT = "Die zuletzt rckgngig gemachte nderung wiederherstellen";
+ HELPTEXT [ english_us ] = "Die zuletzt rckgngig gemachte nderung wiederherstellen";
+// AccelKey = KeyCode { Function = KEYFUNC_CUT; };
+ TEXT[ portuguese ] = "~Repetir";
+ TEXT[ russian ] = "~Repeat";
+ TEXT[ greek ] = "~Repeat";
+ TEXT[ dutch ] = "~Herhalen";
+ TEXT[ french ] = "~Rpter";
+ TEXT[ spanish ] = "~Repetir";
+ TEXT[ italian ] = "~Repeat";
+ TEXT[ danish ] = "~Repeat";
+ TEXT[ swedish ] = "~Repeat";
+ TEXT[ polish ] = "~Repeat ";
+ TEXT[ portuguese_brazilian ] = "~Wiederholen";
+ TEXT[ japanese ] = "蒼(~R)";
+ TEXT[ korean ] = "(~R)";
+ TEXT[ chinese_simplified ] = "~Wiederholen";
+ TEXT[ chinese_traditional ] = "~Repeat";
+ TEXT[ arabic ] = "~Repeat";
+ TEXT[ turkish ] = "~Yinele";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_EDITCUT;
+ TEXT = "~Ausschneiden";
+ TEXT [ english_us ] = "~Cut";
+ HELPTEXT = "Markierten Text in Zwischenablage ablegen";
+ HELPTEXT [ english_us ] = "Markierten Text in Zwischenablage ablegen";
+ AccelKey = KeyCode { Function = KEYFUNC_CUT; };
+ TEXT[ portuguese ] = "Cor~tar";
+ TEXT[ russian ] = "~Cut";
+ TEXT[ greek ] = "~Cut";
+ TEXT[ dutch ] = "~Knippen";
+ TEXT[ french ] = "~Couper";
+ TEXT[ spanish ] = "~Cortar";
+ TEXT[ italian ] = "~Cut";
+ TEXT[ danish ] = "~Cut";
+ TEXT[ swedish ] = "~Cut";
+ TEXT[ polish ] = "~Cut ";
+ TEXT[ portuguese_brazilian ] = "~Ausschneiden";
+ TEXT[ japanese ] = "؂(~T)";
+ TEXT[ korean ] = "߶󳻱(~C)";
+ TEXT[ chinese_simplified ] = "~Ausschneiden";
+ TEXT[ chinese_traditional ] = "~Cut";
+ TEXT[ arabic ] = "~Cut";
+ TEXT[ turkish ] = "Kes";
+ };
+ MenuItem {
+ Identifier = RID_EDITCOPY;
+ TEXT = "~Kopieren";
+ TEXT [ english_us ] = "~Copy";
+ HELPTEXT = "Markierten Text in Zwischenablage kopieren";
+ HELPTEXT [ english_us ] = "Markierten Text in Zwischenablage kopieren";
+ AccelKey = KeyCode { Function = KEYFUNC_COPY; };
+ TEXT[ portuguese ] = "~Copiar";
+ TEXT[ russian ] = "~Copy";
+ TEXT[ greek ] = "~Copy";
+ TEXT[ dutch ] = "~Kopiren";
+ TEXT[ french ] = "Co~pier";
+ TEXT[ spanish ] = "Copiar";
+ TEXT[ italian ] = "~Copy";
+ TEXT[ danish ] = "~Copy";
+ TEXT[ swedish ] = "~Copy";
+ TEXT[ polish ] = "~Copy ";
+ TEXT[ portuguese_brazilian ] = "~Kopieren";
+ TEXT[ japanese ] = "߰(~C)";
+ TEXT[ korean ] = "(~C)";
+ TEXT[ chinese_simplified ] = "~Kopieren";
+ TEXT[ chinese_traditional ] = "~Copy";
+ TEXT[ arabic ] = "~Copy";
+ TEXT[ turkish ] = "Kopyala";
+ };
+ MenuItem {
+ Identifier = RID_EDITPASTE;
+ TEXT = "E~infgen";
+ TEXT [ english_us ] = "~Paste";
+ HELPTEXT = "Inhalt der Zwischenablage einfgen";
+ HELPTEXT [ english_us ] = "Inhalt der Zwischenablage einfgen";
+ AccelKey = KeyCode { Function = KEYFUNC_PASTE; };
+ TEXT[ portuguese ] = "In~serir";
+ TEXT[ russian ] = "~Paste";
+ TEXT[ greek ] = "~Paste";
+ TEXT[ dutch ] = "I~nvoegen";
+ TEXT[ french ] = "C~oller";
+ TEXT[ spanish ] = "In~sertar";
+ TEXT[ italian ] = "~Paste";
+ TEXT[ danish ] = "~Paste";
+ TEXT[ swedish ] = "~Paste";
+ TEXT[ polish ] = "~Paste ";
+ TEXT[ portuguese_brazilian ] = "E~infgen";
+ TEXT[ japanese ] = "\\t(~P)";
+ TEXT[ korean ] = "ٿֱ(~P)";
+ TEXT[ chinese_simplified ] = "E~infgen";
+ TEXT[ chinese_traditional ] = "~Paste";
+ TEXT[ arabic ] = "~Insert";
+ TEXT[ turkish ] = "Ekle";
+ };
+ MenuItem {
+ Identifier = RID_EDITDEL;
+ TEXT = "~Lschen";
+ TEXT [ english_us ] = "~Delete";
+ HELPTEXT = "Markierten Text lschen";
+ HELPTEXT [ english_us ] = "Markierten Text lschen";
+ AccelKey = KeyCode { Function = KEYFUNC_DELETE; };
+ TEXT[ portuguese ] = "E~liminar";
+ TEXT[ russian ] = "~Delete";
+ TEXT[ greek ] = "~Delete";
+ TEXT[ dutch ] = "~Wissen";
+ TEXT[ french ] = "~Supprimer";
+ TEXT[ spanish ] = "~Eliminar";
+ TEXT[ italian ] = "~Delete";
+ TEXT[ danish ] = "~Delete";
+ TEXT[ swedish ] = "~Delete";
+ TEXT[ polish ] = "~Delete ";
+ TEXT[ portuguese_brazilian ] = "~Lschen";
+ TEXT[ japanese ] = "폜(~D)";
+ TEXT[ korean ] = "(~D)";
+ TEXT[ chinese_simplified ] = "~Lschen";
+ TEXT[ chinese_traditional ] = "~Delete";
+ TEXT[ arabic ] = "~Delete";
+ TEXT[ turkish ] = "Sil";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_EDITSEARCH;
+ TEXT = "~Suchen...";
+ TEXT [ english_us ] = "~Find...";
+ HELPTEXT = "Textstelle suchen";
+ HELPTEXT [ english_us ] = "Textstelle suchen";
+ AccelKey = KeyCode { Function = KEYFUNC_FIND; };
+ TEXT[ portuguese ] = "~Localizar...";
+ TEXT[ russian ] = "~Find...";
+ TEXT[ greek ] = "~Find...";
+ TEXT[ dutch ] = "~Zoeken...";
+ TEXT[ french ] = "~Rechercher...";
+ TEXT[ spanish ] = "~Buscar...";
+ TEXT[ italian ] = "~Find...";
+ TEXT[ danish ] = "~Find...";
+ TEXT[ swedish ] = "~Find...";
+ TEXT[ polish ] = "~Find... ";
+ TEXT[ portuguese_brazilian ] = "~Suchen...";
+ TEXT[ japanese ] = "(~F)...";
+ TEXT[ korean ] = "ã(~F)...";
+ TEXT[ chinese_simplified ] = "~Suchen...";
+ TEXT[ chinese_traditional ] = "~Find...";
+ TEXT[ arabic ] = "~Find...";
+ TEXT[ turkish ] = "Ara...";
+ };
+ MenuItem {
+ Identifier = RID_EDITREPLACE;
+ TEXT = "~Ersetzen...";
+ TEXT [ english_us ] = "~Replace...";
+ HELPTEXT = "Textstelle durch anderen Text ersetzen";
+ HELPTEXT [ english_us ] = "Textstelle durch anderen Text ersetzen";
+ TEXT[ portuguese ] = "~Substituir...";
+ TEXT[ russian ] = "~Replace...";
+ TEXT[ greek ] = "~Replace...";
+ TEXT[ dutch ] = "~Vervangen...";
+ TEXT[ french ] = "R~emplacer...";
+ TEXT[ spanish ] = "~Sustituir...";
+ TEXT[ italian ] = "~Replace...";
+ TEXT[ danish ] = "~Replace...";
+ TEXT[ swedish ] = "~Replace...";
+ TEXT[ polish ] = "~Replace... ";
+ TEXT[ portuguese_brazilian ] = "~Ersetzen...";
+ TEXT[ japanese ] = "u(~R)...";
+ TEXT[ korean ] = "ٲٱ(~R)...";
+ TEXT[ chinese_simplified ] = "~Ersetzen...";
+ TEXT[ chinese_traditional ] = "~Replace...";
+ TEXT[ arabic ] = "~Replace...";
+ TEXT[ turkish ] = "Deitir...";
+ };
+ MenuItem {
+ Identifier = RID_EDITREPEAT;
+ TEXT = "S~uchen Wiederholen";
+ TEXT [ english_us ] = "Repeat S~earch";
+ HELPTEXT = "Suchen/ersetzen wiederholen";
+ HELPTEXT [ english_us ] = "Suchen/ersetzen wiederholen";
+ AccelKey = KeyCode { Code = KEY_F3; };
+// AccelKey = KeyCode { Function = KEYFUNC_REPEAT; };
+ TEXT[ portuguese ] = "~Repetir Localizar";
+ TEXT[ russian ] = "Repeat S~earch";
+ TEXT[ greek ] = "Repeat S~earch";
+ TEXT[ dutch ] = "Z~oeken herhalen";
+ TEXT[ french ] = "R~pter la recherche";
+ TEXT[ spanish ] = "~Repetir bsqueda";
+ TEXT[ italian ] = "Repeat S~earch";
+ TEXT[ danish ] = "Repeat S~earch";
+ TEXT[ swedish ] = "Repeat S~earch";
+ TEXT[ polish ] = "Repeat S~earch ";
+ TEXT[ portuguese_brazilian ] = "S~uchen Wiederholen";
+ TEXT[ japanese ] = "̌JԂ(~U)";
+ TEXT[ korean ] = "ٽ ã(~E)";
+ TEXT[ chinese_simplified ] = "S~uchen Wiederholen";
+ TEXT[ chinese_traditional ] = "Repeat S~earch";
+ TEXT[ arabic ] = "Repeat S~earch";
+ TEXT[ turkish ] = "Yeniden ara";
+ };
+ };
+};
+Menu RID_RUN {
+ ITEMLIST = {
+ MenuItem {
+ Identifier = RID_RUNCOMPILE;
+ TEXT = "~Compilieren";
+ TEXT [ english_us ] = "~Compile";
+ HELPTEXT = "Programm bersetzen";
+ HELPTEXT [ english_us ] = "Programm bersetzen";
+ AccelKey = KeyCode { Code = KEY_F5; Shift = TRUE; };
+ TEXT[ portuguese ] = "~Compilar";
+ TEXT[ russian ] = "~Compile";
+ TEXT[ greek ] = "~Compile";
+ TEXT[ dutch ] = "~Compileren";
+ TEXT[ french ] = "~Compiler";
+ TEXT[ spanish ] = "~Compilar";
+ TEXT[ italian ] = "~Compile";
+ TEXT[ danish ] = "~Compile";
+ TEXT[ swedish ] = "~Compile";
+ TEXT[ polish ] = "~Compile ";
+ TEXT[ portuguese_brazilian ] = "~Compilieren";
+ TEXT[ japanese ] = "߲قs";
+ TEXT[ korean ] = "(~C)";
+ TEXT[ chinese_simplified ] = "~Compilieren";
+ TEXT[ chinese_traditional ] = "~Compile";
+ TEXT[ arabic ] = "~Compile";
+ TEXT[ turkish ] = "~Derle";
+ };
+ MenuItem {
+ Identifier = RID_RUNDISAS;
+ TEXT = "~Disassemblieren";
+ TEXT [ english_us ] = "~Disassemble";
+ HELPTEXT = "Programm disassemblieren und Ergebnis ins Clipboard stellen";
+ HELPTEXT [ english_us ] = "Programm disassemblieren und Ergebnis ins Clipboard stellen";
+ TEXT[ portuguese ] = "~Descodificar";
+ TEXT[ russian ] = "~Disassemble";
+ TEXT[ greek ] = "~Disassemble";
+ TEXT[ dutch ] = "~Disassembleren";
+ TEXT[ french ] = "~Dsassembler";
+ TEXT[ spanish ] = "~Desensamblar";
+ TEXT[ italian ] = "~Disassemble";
+ TEXT[ danish ] = "~Disassemble";
+ TEXT[ swedish ] = "~Disassemble";
+ TEXT[ polish ] = "~Disassemble ";
+ TEXT[ portuguese_brazilian ] = "~Disassemblieren";
+ TEXT[ japanese ] = "~Disassemble";
+ TEXT[ korean ] = "ü(~D)";
+ TEXT[ chinese_simplified ] = "~Disassemblieren";
+ TEXT[ chinese_traditional ] = "~Disassemble";
+ TEXT[ arabic ] = "~Disassemble";
+ TEXT[ turkish ] = "~Disassemble";
+ };
+ MenuItem {
+ Identifier = RID_RUNSTART;
+ TEXT = "~Start";
+ TEXT [ english_us ] = "~Start";
+ HELPTEXT = "Programm starten";
+ HELPTEXT [ english_us ] = "Programm starten";
+ AccelKey = KeyCode { Code = KEY_F5; };
+ TEXT[ portuguese ] = "~Iniciar";
+ TEXT[ russian ] = "~Start";
+ TEXT[ greek ] = "~Start";
+ TEXT[ dutch ] = "~Start";
+ TEXT[ french ] = "~Dmarrer";
+ TEXT[ spanish ] = "~Iniciar";
+ TEXT[ italian ] = "~Start";
+ TEXT[ danish ] = "~Start";
+ TEXT[ swedish ] = "~Start";
+ TEXT[ polish ] = "~Start";
+ TEXT[ portuguese_brazilian ] = "~Start";
+ TEXT[ japanese ] = "";
+ TEXT[ korean ] = "(~S)";
+ TEXT[ chinese_simplified ] = "~Start";
+ TEXT[ chinese_traditional ] = "~Start";
+ TEXT[ arabic ] = "~Start";
+ TEXT[ turkish ] = "~Balat";
+ };
+ MenuItem {
+ Identifier = RID_RUNSTEPINTO;
+ TEXT = "~Einzelschritt";
+ TEXT [ english_us ] = "~Single Stepping";
+ HELPTEXT = "Ein Programmschritt";
+ HELPTEXT [ english_us ] = "Ein Programmschritt";
+ AccelKey = KeyCode { Code = KEY_F8; };
+ TEXT[ portuguese ] = "Pa~sso a passo";
+ TEXT[ russian ] = "~Single Stepping";
+ TEXT[ greek ] = "~Single Stepping";
+ TEXT[ dutch ] = "~Stap voor stap";
+ TEXT[ french ] = "~tape par tape";
+ TEXT[ spanish ] = "~Paso a paso";
+ TEXT[ italian ] = "~Single Stepping";
+ TEXT[ danish ] = "~Single Stepping";
+ TEXT[ swedish ] = "~Single stepping";
+ TEXT[ polish ] = "~Single Stepping ";
+ TEXT[ portuguese_brazilian ] = "~Einzelschritt";
+ TEXT[ japanese ] = "~Single Stepping";
+ TEXT[ korean ] = " ܰ(~S)";
+ TEXT[ chinese_simplified ] = "~Einzelschritt";
+ TEXT[ chinese_traditional ] = "~Single Stepping";
+ TEXT[ arabic ] = "~Single Stepping";
+ TEXT[ turkish ] = "~Tek adm";
+ };
+ MenuItem {
+ Identifier = RID_RUNSTEPOVER;
+ TEXT = "Einzelschritt ber ~Prozeduren";
+ TEXT [ english_us ] = "Si~ngle Step over Procedure";
+ HELPTEXT = "Ein Programmschritt, ohne Prozeduren";
+ HELPTEXT [ english_us ] = "Ein Programmschritt, ohne Prozeduren";
+ AccelKey = KeyCode { Code = KEY_F10; };
+ TEXT[ portuguese ] = "~Procedimentos passo a passo";
+ TEXT[ russian ] = "Si~ngle Step over Procedure";
+ TEXT[ greek ] = "Si~ngle Step over Procedure";
+ TEXT[ dutch ] = "Stap voor stap ~procedures";
+ TEXT[ french ] = "~Procdures tape par tape";
+ TEXT[ spanish ] = "Procesos ~paso a paso";
+ TEXT[ italian ] = "Si~ngle Stepping (subroutines excluded)";
+ TEXT[ danish ] = "Si~ngle Step over Procedure";
+ TEXT[ swedish ] = "Si~ngle Step over Procedure";
+ TEXT[ polish ] = "Si~ngle Step over Procedure";
+ TEXT[ portuguese_brazilian ] = "Einzelschritt ber ~Prozeduren";
+ TEXT[ japanese ] = "Si~ngle Stepping (subroutines excluded)";
+ TEXT[ korean ] = "ν ܰ(~N)";
+ TEXT[ chinese_simplified ] = "Einzelschritt ber ~Prozeduren";
+ TEXT[ chinese_traditional ] = "Si~ngle Step over Procedure";
+ TEXT[ arabic ] = "Si~ngle Step over Procedure";
+ TEXT[ turkish ] = "Si~ngle Step over Procedure";
+ };
+// MenuItem {
+// Identifier = RID_RUNTOCURSOR;
+// TEXT = "Ausfhren ~bis Cursor";
+// TEXT [ english_us ] = "Ausfhren ~bis Cursor";
+// HELPTEXT = "Ausfhren des Programmes bis zur aktuellen Cursorposition";
+// HELPTEXT [ english_us ] = "Ausfhren des Programmes bis zur aktuellen Cursorposition";
+// AccelKey = KeyCode { Code = KEY_F7; };
+// };
+ MenuItem {
+ Identifier = RID_TOGLEBRKPNT;
+ TEXT = "Brechpunkt setzen/lschen";
+ TEXT [ english_us ] = "Set / Delete Break Point";
+ HELPTEXT = "Brechpunkt setzen/lschen an der aktuellen Cursorposition";
+ HELPTEXT [ english_us ] = "Brechpunkt setzen/lschen an der aktuellen Cursorposition";
+ AccelKey = KeyCode { Code = KEY_F9; };
+ TEXT[ portuguese ] = "Colocar/Eliminar ponto de quebra ";
+ TEXT[ russian ] = "Set / Delete Break Point";
+ TEXT[ greek ] = "Set / Delete Break Point";
+ TEXT[ dutch ] = "Break point zetten/wissen";
+ TEXT[ french ] = "Placer / supprimer un point d'arrt (breakpoint)";
+ TEXT[ spanish ] = "Poner/eliminar punto de detencin";
+ TEXT[ italian ] = "Set / Delete Break Point";
+ TEXT[ danish ] = "Set / Delete Break Point";
+ TEXT[ swedish ] = "Set / Delete Break Point";
+ TEXT[ polish ] = "Set / Delete Break Point";
+ TEXT[ portuguese_brazilian ] = "Brechpunkt setzen/lschen";
+ TEXT[ japanese ] = "Set / Delete Break Point";
+ TEXT[ korean ] = "Break Ʈ /";
+ TEXT[ chinese_simplified ] = "Brechpunkt setzen/lschen";
+ TEXT[ chinese_traditional ] = "Set / Delete Break Point";
+ TEXT[ arabic ] = "Set / Delete Break Point";
+ TEXT[ turkish ] = "Set / Delete Break Point";
+ };
+ MenuItem {
+ Identifier = RID_RUNBREAK;
+ TEXT = "~Unterbrechen";
+ TEXT [ english_us ] = "~Interrupt";
+ HELPTEXT = "Programmlauf unterbrechen";
+ HELPTEXT [ english_us ] = "Programmlauf unterbrechen";
+ AccelKey = KeyCode { Code = KEY_F5; Modifier1 = TRUE; };
+ TEXT[ portuguese ] = "~Interromper";
+ TEXT[ russian ] = "~Interrupt";
+ TEXT[ greek ] = "~Interrupt";
+ TEXT[ dutch ] = "~Onderbreken";
+ TEXT[ french ] = "~Interrompre";
+ TEXT[ spanish ] = "Interru~mpir";
+ TEXT[ italian ] = "~Interrupt";
+ TEXT[ danish ] = "~Interrupt";
+ TEXT[ swedish ] = "~Interrupt";
+ TEXT[ polish ] = "~Interrupt ";
+ TEXT[ portuguese_brazilian ] = "~Unterbrechen";
+ TEXT[ japanese ] = "f";
+ TEXT[ korean ] = "ͷƮ(~I)";
+ TEXT[ chinese_simplified ] = "~Unterbrechen";
+ TEXT[ chinese_traditional ] = "~Interrupt";
+ TEXT[ arabic ] = "~Interrupt";
+ TEXT[ turkish ] = "~Duraklat";
+ };
+ MenuItem {
+ Identifier = RID_RUNSTOP;
+ TEXT = "~Abbrechen";
+ TEXT [ english_us ] = "~Cancel";
+ HELPTEXT = "Programmlauf abbrechen";
+ HELPTEXT [ english_us ] = "Programmlauf abbrechen";
+ TEXT[ portuguese ] = "~Cancelar";
+ TEXT[ russian ] = "~Cancel";
+ TEXT[ greek ] = "~Cancel";
+ TEXT[ dutch ] = "~Stoppen";
+ TEXT[ french ] = "~Annuler";
+ TEXT[ spanish ] = "~Cancelar";
+ TEXT[ italian ] = "~Cancel";
+ TEXT[ danish ] = "~Cancel";
+ TEXT[ swedish ] = "~Cancel";
+ TEXT[ polish ] = "~Cancel";
+ TEXT[ portuguese_brazilian ] = "~Abbrechen";
+ TEXT[ japanese ] = "ݾ";
+ TEXT[ korean ] = "(~C)";
+ TEXT[ chinese_simplified ] = "~Abbrechen";
+ TEXT[ chinese_traditional ] = "~Cancel";
+ TEXT[ arabic ] = "~Cancel";
+ TEXT[ turkish ] = "~ptal";
+ };
+ MenuItem {
+ Identifier = RID_RUNNEXTERR;
+ TEXT = "~Nchster Fehler";
+ TEXT [ english_us ] = "~Next Error";
+ HELPTEXT = "Den nchsten Programmfehler anzeigen";
+ HELPTEXT [ english_us ] = "Den nchsten Programmfehler anzeigen";
+ AccelKey = KeyCode { Code = KEY_F8; Shift = TRUE; };
+ TEXT[ portuguese ] = "Erro ~seguinte";
+ TEXT[ russian ] = "~Next Error";
+ TEXT[ greek ] = "~Next Error";
+ TEXT[ dutch ] = "~Volgende fout";
+ TEXT[ french ] = "~Erreur suivante";
+ TEXT[ spanish ] = "~Error siguiente";
+ TEXT[ italian ] = "Errore successivo";
+ TEXT[ danish ] = "~Next Error";
+ TEXT[ swedish ] = "~Next Error";
+ TEXT[ polish ] = "~Next Error";
+ TEXT[ portuguese_brazilian ] = "~Nchster Fehler";
+ TEXT[ japanese ] = "̴װ";
+ TEXT[ korean ] = " (~N)";
+ TEXT[ chinese_simplified ] = "~Nchster Fehler";
+ TEXT[ chinese_traditional ] = "~Next Error";
+ TEXT[ arabic ] = "~Next Error";
+ TEXT[ turkish ] = "~Sonraki hata";
+ };
+ MenuItem {
+ Identifier = RID_RUNPREVERR;
+ TEXT = "~Vorheriger Fehler";
+ TEXT [ english_us ] = "~Previous Error";
+ HELPTEXT = "Den vorherigen Programmfehler anzeigen";
+ HELPTEXT [ english_us ] = "Den vorherigen Programmfehler anzeigen";
+ AccelKey = KeyCode { Code = KEY_F7; Shift = TRUE; };
+ TEXT[ portuguese ] = "Erro ~anterior";
+ TEXT[ russian ] = "~Previous Error";
+ TEXT[ greek ] = "~Previous Error";
+ TEXT[ dutch ] = "~Vorige fout";
+ TEXT[ french ] = "~Erreur prcdente";
+ TEXT[ spanish ] = "Error ~anterior";
+ TEXT[ italian ] = "~Previous error";
+ TEXT[ danish ] = "~Previous Error";
+ TEXT[ swedish ] = "~Previous Error";
+ TEXT[ polish ] = "~Previous Error";
+ TEXT[ portuguese_brazilian ] = "~Vorheriger Fehler";
+ TEXT[ japanese ] = "O̴װ";
+ TEXT[ korean ] = " (~P)";
+ TEXT[ chinese_simplified ] = "~Vorheriger Fehler";
+ TEXT[ chinese_traditional ] = "~Previous Error";
+ TEXT[ arabic ] = "~Previous Error";
+ TEXT[ turkish ] = "~nceki hata";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ };
+};
+// Wird nur beim Test Tool eingefgt
+
+// unter Folgendem Name
+String RID_TT_EXTRAS_NAME
+{
+ Text = "E~xtras";
+ Text[ english_us ] = "E~xtras";
+ Text[ portuguese ] = "~Ferramentas";
+ Text[ russian ] = "";
+ Text[ greek ] = "E~xtras";
+ Text[ dutch ] = "E~xtra";
+ Text[ french ] = "~Outils";
+ Text[ spanish ] = "~Herramientas";
+ Text[ italian ] = "E~xtras";
+ Text[ danish ] = "E~xtras";
+ Text[ swedish ] = "E~xtras";
+ Text[ polish ] = "Narzdzia";
+ Text[ portuguese_brazilian ] = "E~xtras";
+ Text[ japanese ] = "E~xtras";
+ Text[ korean ] = " ߰(~X)";
+ Text[ chinese_simplified ] = "E~xtras";
+ Text[ chinese_traditional ] = "E~xtras";
+ Text[ arabic ] = "E~xtras";
+ Text[ turkish ] = "Aralar";
+};
+
+Menu RID_TT_EXTRAS {
+ ITEMLIST = {
+ MenuItem {
+ Identifier = RID_OPTIONS;
+ TEXT = "~Einstellungen";
+ TEXT [ english_us ] = "~Settings";
+ HELPTEXT = "Einstellungen fr das Test Tool";
+ HELPTEXT [ english_us ] = "Einstellungen fr das Test Tool";
+ TEXT[ portuguese ] = "~Definies";
+ TEXT[ russian ] = "~Settings";
+ TEXT[ greek ] = "~Settings";
+ TEXT[ dutch ] = "~Instellingen";
+ TEXT[ french ] = "~Paramtres";
+ TEXT[ spanish ] = "~Configuracin";
+ TEXT[ italian ] = "~Settings";
+ TEXT[ danish ] = "~Settings";
+ TEXT[ swedish ] = "~Settings";
+ TEXT[ polish ] = "~Settings";
+ TEXT[ portuguese_brazilian ] = "~Einstellungen";
+ TEXT[ japanese ] = "ݒ";
+ TEXT[ korean ] = "(~S)";
+ TEXT[ chinese_simplified ] = "~Einstellungen";
+ TEXT[ chinese_traditional ] = "~Settings";
+ TEXT[ arabic ] = "~Settings";
+ TEXT[ turkish ] = "~Ayarlar";
+ };
+ MenuItem {
+ Identifier = RID_DECLARE_HELPER;
+ TEXT = "~Dialoge aufnehmen";
+ TEXT [ english_us ] = "~Include Dialogs";
+ HELPTEXT = "Modus zum aufnehmen der Dialoge aktivieren";
+ HELPTEXT [ english_us ] = "Modus zum aufnehmen der Dialoge aktivieren";
+ TEXT[ portuguese ] = "~Incluir caixas de dilogo";
+ TEXT[ russian ] = "~Include Dialogs";
+ TEXT[ greek ] = "~Include Dialogs";
+ TEXT[ dutch ] = "~Dialogen opnemen";
+ TEXT[ french ] = "Ajouter une bote de ~dialogue";
+ TEXT[ spanish ] = "In~cluir dilogos";
+ TEXT[ italian ] = "~Include Dialogs";
+ TEXT[ danish ] = "~Include Dialogs";
+ TEXT[ swedish ] = "~Include Dialogs";
+ TEXT[ polish ] = "~Include Dialogs";
+ TEXT[ portuguese_brazilian ] = "~Dialoge aufnehmen";
+ TEXT[ japanese ] = "޲۸ނn߂";
+ TEXT[ korean ] = "̾α (~I)";
+ TEXT[ chinese_simplified ] = "~Dialoge aufnehmen";
+ TEXT[ chinese_traditional ] = "~Include Dialogs";
+ TEXT[ arabic ] = "~Include Dialogs";
+ TEXT[ turkish ] = "~Diyaloglar ekle";
+ };
+ };
+};
+Menu RID_WINDOW {
+ ITEMLIST = {
+ MenuItem {
+ Identifier = RID_WINCASCADE;
+ TEXT = "~berlappend";
+ TEXT [ english_us ] = "~Overlapping";
+ HELPTEXT = "Fenster berlappend anordnen";
+ HELPTEXT [ english_us ] = "Fenster berlappend anordnen";
+ TEXT[ portuguese ] = "Em ~cascata";
+ TEXT[ russian ] = "~Overlapping";
+ TEXT[ greek ] = "~Overlapping";
+ TEXT[ dutch ] = "~Overlappend";
+ TEXT[ french ] = "~Cascade";
+ TEXT[ spanish ] = "~Cascada";
+ TEXT[ italian ] = "~Overlapping";
+ TEXT[ danish ] = "~Overlapping";
+ TEXT[ swedish ] = "~Overlapping";
+ TEXT[ polish ] = "~Overlapping";
+ TEXT[ portuguese_brazilian ] = "~berlappend";
+ TEXT[ japanese ] = "d˂ĕ\\";
+ TEXT[ korean ] = "ġ(~O)";
+ TEXT[ chinese_simplified ] = "~berlappend";
+ TEXT[ chinese_traditional ] = "~Overlapping";
+ TEXT[ arabic ] = "~Overlapping";
+ TEXT[ turkish ] = "B~asamakla";
+ };
+ MenuItem {
+ Identifier = RID_WINTILE;
+ TEXT = "~Nebeneinander";
+ TEXT [ english_us ] = "~Tile";
+ HELPTEXT = "Fenster nebeneinander anordnen";
+ HELPTEXT [ english_us ] = "Fenster nebeneinander anordnen";
+ TEXT[ portuguese ] = "~Lado a lado";
+ TEXT[ russian ] = "~Tile";
+ TEXT[ greek ] = "~Tile";
+ TEXT[ dutch ] = "~Naast elkaar";
+ TEXT[ french ] = "Ca~rrelage";
+ TEXT[ spanish ] = "~Mosaico";
+ TEXT[ italian ] = "~Tile";
+ TEXT[ danish ] = "~Tile";
+ TEXT[ swedish ] = "~Tile";
+ TEXT[ polish ] = "~Tile";
+ TEXT[ portuguese_brazilian ] = "~Nebeneinander";
+ TEXT[ japanese ] = "ׂĕ\\";
+ TEXT[ korean ] = "â (~T)";
+ TEXT[ chinese_simplified ] = "~Nebeneinander";
+ TEXT[ chinese_traditional ] = "~Tiled";
+ TEXT[ arabic ] = "~Tiled";
+ TEXT[ turkish ] = "~Yan yana";
+ };
+ MenuItem {
+ Identifier = RID_WINTILEHORZ;
+ TEXT = "~Horizontal anordnen";
+ TEXT [ english_us ] = "~Arrange Horizontally";
+ HELPTEXT = "Fenster horizontal bereinander anordnen";
+ HELPTEXT [ english_us ] = "Fenster horizontal bereinander anordnen";
+ TEXT[ portuguese ] = "~Dispor na horizontal";
+ TEXT[ russian ] = "~Arrange Horizontally";
+ TEXT[ greek ] = "~Arrange Horizontally";
+ TEXT[ dutch ] = "~Horizontaal schikken";
+ TEXT[ french ] = "~Aligner horizontalement";
+ TEXT[ spanish ] = "~Horizontal";
+ TEXT[ italian ] = "~Arrange Horizontally";
+ TEXT[ danish ] = "~Arrange Horizontally";
+ TEXT[ swedish ] = "~Arrange Horizontally";
+ TEXT[ polish ] = "~Arrange Horizontally";
+ TEXT[ portuguese_brazilian ] = "~Horizontal anordnen";
+ TEXT[ japanese ] = "Eɕׂĕ\\";
+ TEXT[ korean ] = " (~A)";
+ TEXT[ chinese_simplified ] = "~Horizontal anordnen";
+ TEXT[ chinese_traditional ] = "~Arrange Horizontally";
+ TEXT[ arabic ] = "~Arrange Horizontally";
+ TEXT[ turkish ] = "~Yatay yerletir";
+ };
+ MenuItem {
+ Identifier = RID_WINTILEVERT;
+ TEXT = "~Vertikal anordnen";
+ TEXT [ english_us ] = "~Arrange Vertically";
+ HELPTEXT = "Fenster vertikal nebeneinander anordnen";
+ HELPTEXT [ english_us ] = "Fenster vertikal nebeneinander anordnen";
+ TEXT[ portuguese ] = "~Dispor na vertical";
+ TEXT[ russian ] = "~Arrange Vertically";
+ TEXT[ greek ] = "~Arrange Vertically";
+ TEXT[ dutch ] = "~Verticaal schikken";
+ TEXT[ french ] = "~Verticalement";
+ TEXT[ spanish ] = "~Vertical";
+ TEXT[ italian ] = "~Arrange Vertically";
+ TEXT[ danish ] = "~Arrange Vertically";
+ TEXT[ swedish ] = "~Arrange Vertically";
+ TEXT[ polish ] = "~Arrange Vertically";
+ TEXT[ portuguese_brazilian ] = "~Vertikal anordnen";
+ TEXT[ japanese ] = "㉺ɕׂĕ\\";
+ TEXT[ korean ] = " (~A)";
+ TEXT[ chinese_simplified ] = "~Vertikal anordnen";
+ TEXT[ chinese_traditional ] = "~Arrange Vertically";
+ TEXT[ arabic ] = "~Arrange Vertically";
+ TEXT[ turkish ] = "~Dikey yerletir";
+ };
+ };
+};
+Menu RID_HELP {
+ ITEMLIST = {
+/* MenuItem {
+ Identifier = RID_HELPINDEX;
+ TEXT = "~Index";
+ TEXT [ english_us ] = "~Index";
+ HELPTEXT = "Inhaltsverzeichnis der Hilfe";
+ HELPTEXT [ english_us ] = "Inhaltsverzeichnis der Hilfe";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_HELPKEYS;
+ TEXT = "~Tastaturbelegung";
+ TEXT [ english_us ] = "~Tastaturbelegung";
+ HELPTEXT = "Liste der definierten Sondertasten";
+ HELPTEXT [ english_us ] = "Liste der definierten Sondertasten";
+ };
+ MenuItem {
+ Identifier = RID_HELPINTRO;
+ TEXT = "~Anleitung";
+ TEXT [ english_us ] = "~Anleitung";
+ HELPTEXT = "Einfhrung in die Programmierung";
+ HELPTEXT [ english_us ] = "Einfhrung in die Programmierung";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+ MenuItem {
+ Identifier = RID_HELPTOPIC;
+ TEXT = "~Markierter Text";
+ TEXT [ english_us ] = "~Markierter Text";
+ HELPTEXT = "Aktuell markierten Text erlutern";
+ HELPTEXT [ english_us ] = "Aktuell markierten Text erlutern";
+ };
+ MenuItem {
+ SEPARATOR = TRUE;
+ };
+*/ MenuItem {
+ ABOUT = TRUE;
+ Identifier = RID_HELPABOUT;
+ TEXT = "~Info...";
+ TEXT [ english_us ] = "~About...";
+ HELPTEXT = "Copyright-Informationen";
+ HELPTEXT [ english_us ] = "Copyright-Informationen";
+ TEXT[ portuguese ] = "~Informao...";
+ TEXT[ russian ] = "~About...";
+ TEXT[ greek ] = "~About...";
+ TEXT[ dutch ] = "~Info...";
+ TEXT[ french ] = "~Info...";
+ TEXT[ spanish ] = "~Informacin...";
+ TEXT[ italian ] = "~Info...";
+ TEXT[ danish ] = "~About...";
+ TEXT[ swedish ] = "~About...";
+ TEXT[ polish ] = "~About...";
+ TEXT[ portuguese_brazilian ] = "~Info...";
+ TEXT[ japanese ] = "(~I)...";
+ TEXT[ korean ] = "(~A)...";
+ TEXT[ chinese_simplified ] = "~Info...";
+ TEXT[ chinese_traditional ] = "~About...";
+ TEXT[ arabic ] = "...";
+ TEXT[ turkish ] = "~Bilgi...";
+ };
+ };
+};
+ModelessDialog IDD_PRINT_DIALOG {
+ Pos = MAP_APPFONT( 83, 42 );
+ Size = MAP_APPFONT( 171, 94 );
+ TEXT = "StarBasic: Datei drucken";
+ TEXT [ english_us ] = "StarBasic: Print File";
+ MOVEABLE = TRUE;
+ SVLook = TRUE;
+ FixedText RID_TEXT {
+ Pos = MAP_APPFONT( 11, 9 );
+ Size = MAP_APPFONT( 146, 28 );
+ TEXT = "Druck von ";
+ TEXT [ english_us ] = "Print from ";
+ CENTER = TRUE;
+ TEXT[ portuguese ] = "Impresso de ";
+ TEXT[ russian ] = "Print from ";
+ TEXT[ greek ] = "Print from ";
+ TEXT[ dutch ] = "Afdruk van ";
+ TEXT[ french ] = "Impression de ";
+ TEXT[ spanish ] = "Imprimir ";
+ TEXT[ italian ] = "Print from ";
+ TEXT[ danish ] = "Print from ";
+ TEXT[ swedish ] = "Print from ";
+ TEXT[ polish ] = "Print from ";
+ TEXT[ portuguese_brazilian ] = "Druck von ";
+ TEXT[ japanese ] = "͈ ";
+ TEXT[ korean ] = "κ μ ";
+ TEXT[ chinese_simplified ] = "Druck von ";
+ TEXT[ chinese_traditional ] = "Print from ";
+ TEXT[ arabic ] = "Print from ";
+ TEXT[ turkish ] = "kt kayna ";
+ };
+ CancelButton RID_CANCEL {
+ Pos = MAP_APPFONT( 56, 46 );
+ Size = MAP_APPFONT( 47, 19 );
+ TEXT = "Abbruch";
+ TEXT [ english_us ] = "Cancel";
+ TEXT[ portuguese ] = "Cancelar";
+ TEXT[ russian ] = "Cancel";
+ TEXT[ greek ] = "Cancel";
+ TEXT[ dutch ] = "Annuleren";
+ TEXT[ french ] = "Annuler";
+ TEXT[ spanish ] = "Cancelar";
+ TEXT[ italian ] = "Cancel";
+ TEXT[ danish ] = "Cancel";
+ TEXT[ swedish ] = "Cancel";
+ TEXT[ polish ] = "Cancel";
+ TEXT[ portuguese_brazilian ] = "Abbruch";
+ TEXT[ japanese ] = "ݾ";
+ TEXT[ korean ] = "";
+ TEXT[ chinese_simplified ] = "Abbruch";
+ TEXT[ chinese_traditional ] = "Cancel";
+ TEXT[ arabic ] = "Cancel";
+ TEXT[ turkish ] = "ptal";
+ };
+ TEXT[ portuguese ] = "StarOffice Basic: imprimir ficheiro";
+ TEXT[ russian ] = "StarBasic: Print File";
+ TEXT[ greek ] = "StarBasic: Print File";
+ TEXT[ dutch ] = "StarOffice Basic: bestand afdrukken";
+ TEXT[ french ] = "StarBasic: Impression d'un fichier";
+ TEXT[ spanish ] = "StarBasic: Imprimir archivo";
+ TEXT[ italian ] = "StarBasic: Print file";
+ TEXT[ danish ] = "StarBasic: Print File";
+ TEXT[ swedish ] = "StarBasic: Print File";
+ TEXT[ polish ] = "StarBasic: Print File";
+ TEXT[ portuguese_brazilian ] = "StarBasic: Datei drucken";
+ TEXT[ japanese ] = "StarBasic: ̧ق̈";
+ TEXT[ korean ] = "StarBasic: Ʈ ";
+ TEXT[ chinese_simplified ] = "StarBasic: Datei drucken";
+ TEXT[ chinese_traditional ] = "StarOffcie Basic: Print File";
+ TEXT[ arabic ] = "StarBasic: Print File";
+ TEXT[ turkish ] = "StarBasic: Dosyay yazdr";
+};
+
+
+ModelessDialog IDD_OPTIONS_DLG
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT( 248, 140 );
+ Text = "Einstellungen" ;
+ Text [ english_us ] = "Settings" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ TabControl RES_TC_OPTIONS
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 4, 4 );
+ Size = MAP_APPFONT( 240, 116 );
+ Hide = FALSE ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_TP_GEN ;
+ Text = "Generisch" ;
+ Text [ english_us ] = "Generic" ;
+ Text[ portuguese ] = "Genrico";
+ Text[ russian ] = "Generic";
+ Text[ greek ] = "Generic";
+ Text[ dutch ] = "Generiek";
+ Text[ french ] = "Gnrique";
+ Text[ spanish ] = "Genrico";
+ Text[ italian ] = "Generic";
+ Text[ danish ] = "Generic";
+ Text[ swedish ] = "Generic";
+ Text[ polish ] = "Generic";
+ Text[ portuguese_brazilian ] = "Generisch";
+ Text[ japanese ] = "I";
+ Text[ korean ] = "Ϲ";
+ Text[ chinese_simplified ] = "Generisch";
+ Text[ chinese_traditional ] = "Generic";
+ Text[ arabic ] = "Generic";
+ Text[ turkish ] = "Genel";
+ };
+ PageItem
+ {
+ Identifier = RID_TP_SPE ;
+ Text = "Spezial" ;
+ Text [ english_us ] = "Specialized" ;
+ Text[ portuguese ] = "Especial";
+ Text[ russian ] = "Specialized";
+ Text[ greek ] = "Specialized";
+ Text[ dutch ] = "Speciaal";
+ Text[ french ] = "Spcial";
+ Text[ spanish ] = "Especial";
+ Text[ italian ] = "Special";
+ Text[ danish ] = "Specialized";
+ Text[ swedish ] = "Specialized";
+ Text[ polish ] = "Specialized";
+ Text[ portuguese_brazilian ] = "Spezial";
+ Text[ japanese ] = "";
+ Text[ korean ] = "Ư";
+ Text[ chinese_simplified ] = "Spezial";
+ Text[ chinese_traditional ] = "Specialized";
+ Text[ arabic ] = "Specialized";
+ Text[ turkish ] = "zel";
+ };
+ };
+ OKButton RID_OK {
+ Pos = MAP_APPFONT( 65, 124 );
+ Size = MAP_APPFONT( 55, 12 );
+ TabStop = TRUE;
+ DefButton = TRUE;
+ };
+ CancelButton RID_CANCEL {
+ Pos = MAP_APPFONT( 135, 124 );
+ Size = MAP_APPFONT( 55, 12 );
+ TabStop = TRUE;
+ };
+ };
+ Text[ portuguese ] = "Definies";
+ Text[ russian ] = "Settings";
+ Text[ greek ] = "Settings";
+ Text[ dutch ] = "Instellingen";
+ Text[ french ] = "Paramtres";
+ Text[ spanish ] = "Configuracin";
+ Text[ italian ] = "Settings";
+ Text[ danish ] = "Settings";
+ Text[ swedish ] = "Settings";
+ Text[ polish ] = "Settings";
+ Text[ portuguese_brazilian ] = "Einstellungen";
+ Text[ japanese ] = "ݒ";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Einstellungen";
+ Text[ chinese_traditional ] = "Settings";
+ Text[ arabic ] = "Settings";
+ Text[ turkish ] = "Ayarlar";
+};
+
+
+TabPage RID_TP_GENERIC {
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT( 244, 100 );
+ GroupBox RID_GB_AREA {
+ Pos = MAP_APPFONT( 4, 4 );
+ Size = MAP_APPFONT( 228, 28 );
+ Text = "Bereich";
+ Text [ english_us ] = "Range";
+ Text[ portuguese ] = "rea";
+ Text[ russian ] = "Range";
+ Text[ greek ] = "Range";
+ Text[ dutch ] = "Bereik";
+ Text[ french ] = "Zone";
+ Text[ spanish ] = "rea";
+ Text[ italian ] = "Range";
+ Text[ danish ] = "Range";
+ Text[ swedish ] = "Range";
+ Text[ polish ] = "Range";
+ Text[ portuguese_brazilian ] = "Bereich";
+ Text[ japanese ] = "͈";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Bereich";
+ Text[ chinese_traditional ] = "Range";
+ Text[ arabic ] = "Range";
+ Text[ turkish ] = "Aralk";
+ };
+ ComboBox RID_CB_AREA {
+ HScroll = TRUE;
+ VScroll = TRUE;
+ AutoHScroll = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT( 8, 16 );
+ Size = MAP_APPFONT( 132, 88 );
+ TabStop = TRUE;
+ DropDown = TRUE;
+ };
+ PushButton RID_PB_NEW_AREA {
+ Pos = MAP_APPFONT( 144, 16 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Neu";
+ Text [ english_us ] = "New";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Novo";
+ Text[ russian ] = "New";
+ Text[ greek ] = "New";
+ Text[ dutch ] = "Nieuw";
+ Text[ french ] = "Nouveau";
+ Text[ spanish ] = "Nuevo";
+ Text[ italian ] = "New";
+ Text[ danish ] = "New";
+ Text[ swedish ] = "New";
+ Text[ polish ] = "New ";
+ Text[ portuguese_brazilian ] = "Neu";
+ Text[ japanese ] = "VK";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Neu";
+ Text[ chinese_traditional ] = "New";
+ Text[ arabic ] = "New";
+ Text[ turkish ] = "Yeni";
+ };
+ PushButton RID_PD_DEL_AREA {
+ Pos = MAP_APPFONT( 188, 16 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Lschen";
+ Text [ english_us ] = "Delete";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Eliminar";
+ Text[ russian ] = "Delete";
+ Text[ greek ] = "Delete";
+ Text[ dutch ] = "Wissen";
+ Text[ french ] = "Supprimer";
+ Text[ spanish ] = "Eliminar";
+ Text[ italian ] = "Cancel";
+ Text[ danish ] = "Delete";
+ Text[ swedish ] = "Delete";
+ Text[ polish ] = "Delete";
+ Text[ portuguese_brazilian ] = "Lschen";
+ Text[ japanese ] = "폜";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Lschen";
+ Text[ chinese_traditional ] = "Delete";
+ Text[ arabic ] = "Delete";
+ Text[ turkish ] = "Sil";
+ };
+ GroupBox RID_GB_VALUE {
+ Pos = MAP_APPFONT( 4, 36 );
+ Size = MAP_APPFONT( 228, 60 );
+ Text = "Einstellung";
+ Text [ english_us ] = "Setting";
+ Text[ portuguese ] = "Configurao";
+ Text[ russian ] = "Setting";
+ Text[ greek ] = "Setting";
+ Text[ dutch ] = "Instelling";
+ Text[ french ] = "Paramtre";
+ Text[ spanish ] = "Configuracin";
+ Text[ italian ] = "Setting";
+ Text[ danish ] = "Setting";
+ Text[ swedish ] = "Setting";
+ Text[ polish ] = "Setting";
+ Text[ portuguese_brazilian ] = "Einstellung";
+ Text[ japanese ] = "ݒ";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Einstellung";
+ Text[ chinese_traditional ] = "Settings";
+ Text[ arabic ] = "Setting";
+ Text[ turkish ] = "Ayarlar";
+ };
+ ComboBox RID_CB_VALUE {
+ HScroll = TRUE;
+ VScroll = TRUE;
+ AutoHScroll = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT( 8, 48 );
+ Size = MAP_APPFONT( 176, 44 );
+ TabStop = TRUE;
+ };
+ PushButton RID_PB_NEW_VALUE {
+ Pos = MAP_APPFONT( 188, 48 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Neu";
+ Text [ english_us ] = "New";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Novo";
+ Text[ russian ] = "New";
+ Text[ greek ] = "New";
+ Text[ dutch ] = "Nieuw";
+ Text[ french ] = "Nouveau";
+ Text[ spanish ] = "Nuevo";
+ Text[ italian ] = "New";
+ Text[ danish ] = "New";
+ Text[ swedish ] = "New";
+ Text[ polish ] = "New";
+ Text[ portuguese_brazilian ] = "Neu";
+ Text[ japanese ] = "VK";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Neu";
+ Text[ chinese_traditional ] = "New";
+ Text[ arabic ] = "New";
+ Text[ turkish ] = "Yeni";
+ };
+ PushButton RID_PB_DEL_VALUE {
+ Pos = MAP_APPFONT( 188, 64 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Lschen";
+ Text [ english_us ] = "Delete";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Eliminar";
+ Text[ russian ] = "Delete";
+ Text[ greek ] = "Delete";
+ Text[ dutch ] = "Wissen";
+ Text[ french ] = "Supprimer";
+ Text[ spanish ] = "Eliminar";
+ Text[ italian ] = "Cancel";
+ Text[ danish ] = "Delete";
+ Text[ swedish ] = "Delete";
+ Text[ polish ] = "Delete";
+ Text[ portuguese_brazilian ] = "Lschen";
+ Text[ japanese ] = "폜";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Lschen";
+ Text[ chinese_traditional ] = "Delete";
+ Text[ arabic ] = "Delete";
+ Text[ turkish ] = "Sil";
+ };
+};
+
+
+TabPage RID_TP_SPECIAL {
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT( 244, 100 );
+ GroupBox GB_DIRECTORIES {
+ Pos = MAP_APPFONT( 4, 4 );
+ Size = MAP_APPFONT( 230, 56 );
+ Text = "Verzeichnisse";
+ Text [ english_us ] = "Directories";
+ Text[ portuguese ] = "Directrios";
+ Text[ russian ] = "Directories";
+ Text[ greek ] = "Directories";
+ Text[ dutch ] = "Directory's";
+ Text[ french ] = "Rpertoires";
+ Text[ spanish ] = "Directorios";
+ Text[ italian ] = "Directories";
+ Text[ danish ] = "Directories";
+ Text[ swedish ] = "Directories";
+ Text[ polish ] = "Directories";
+ Text[ portuguese_brazilian ] = "Verzeichnisse";
+ Text[ japanese ] = "ިڸ";
+ Text[ korean ] = "丮";
+ Text[ chinese_simplified ] = "Verzeichnisse";
+ Text[ chinese_traditional ] = "Directories";
+ Text[ arabic ] = "Directories";
+ Text[ turkish ] = "Dizinler";
+ };
+ FixedText LOG_TEXT {
+ Pos = MAP_APPFONT( 7, 12 );
+ Size = MAP_APPFONT( 76, 12 );
+ Text = "Log Basisverzeichnis";
+ Text [ english_us ] = "Log home directory";
+ Text[ portuguese ] = "Directrio LOG de base";
+ Text[ russian ] = "Log home directory";
+ Text[ greek ] = "Log home directory";
+ Text[ dutch ] = "Log home directory";
+ Text[ french ] = "Rpertoire racine LOG";
+ Text[ spanish ] = "Directorio base de Log";
+ Text[ italian ] = "Cartella log home";
+ Text[ danish ] = "Log home directory";
+ Text[ swedish ] = "Log home directory";
+ Text[ polish ] = "Log home directory";
+ Text[ portuguese_brazilian ] = "Log Basisverzeichnis";
+ Text[ japanese ] = "۸ ΰ ިڸ";
+ Text[ korean ] = "α Ȩ 丮";
+ Text[ chinese_simplified ] = "Log Basisverzeichnis";
+ Text[ chinese_traditional ] = "Log home directory";
+ Text[ arabic ] = "Log home directory";
+ Text[ turkish ] = "Log ana dizin";
+ };
+ FixedText BASIS_TEXT {
+ Pos = MAP_APPFONT( 7, 28 );
+ Size = MAP_APPFONT( 76, 12 );
+ Text = "Basisverzeichnis";
+ Text [ english_us ] = "Home directory";
+ Text[ portuguese ] = "Directrio de base";
+ Text[ russian ] = "Home directory";
+ Text[ greek ] = "Home directory";
+ Text[ dutch ] = "Home directory";
+ Text[ french ] = "Rpertoire racine";
+ Text[ spanish ] = "Directorio base";
+ Text[ italian ] = "Cartella home";
+ Text[ danish ] = "Home directory";
+ Text[ swedish ] = "Home directory";
+ Text[ polish ] = "Home directory";
+ Text[ portuguese_brazilian ] = "Basisverzeichnis";
+ Text[ japanese ] = "ΰ ިڸ";
+ Text[ korean ] = "Ȩ 丮";
+ Text[ chinese_simplified ] = "Basisverzeichnis";
+ Text[ chinese_traditional ] = "Home directory";
+ Text[ arabic ] = "Home directory";
+ Text[ turkish ] = "Ana dizin";
+ };
+ FixedText HID_TEXT {
+ Pos = MAP_APPFONT( 7, 44 );
+ Size = MAP_APPFONT( 76, 12 );
+ Text = "HID Verzeichnis";
+ Text [ english_us ] = "HID directory";
+ Text[ portuguese ] = "Directrio HID";
+ Text[ russian ] = "HID directory";
+ Text[ greek ] = "HID directory";
+ Text[ dutch ] = "HID directory";
+ Text[ french ] = "Rpertoire HID";
+ Text[ spanish ] = "Directorio HID";
+ Text[ italian ] = "Cartella HID";
+ Text[ danish ] = "HID directory";
+ Text[ swedish ] = "HID directory";
+ Text[ polish ] = "HID directory";
+ Text[ portuguese_brazilian ] = "HID Verzeichnis";
+ Text[ japanese ] = "HID ިڸ";
+ Text[ korean ] = "HID 丮";
+ Text[ chinese_simplified ] = "HID Verzeichnis";
+ Text[ chinese_traditional ] = "HID directory";
+ Text[ arabic ] = "HID directory";
+ Text[ turkish ] = "HID diziniz";
+ };
+ Edit LOG_NAME {
+ Border = TRUE;
+ Pos = MAP_APPFONT( 87, 12 );
+ Size = MAP_APPFONT( 126, 12 );
+ TabStop = TRUE;
+ };
+ Edit BASIS_NAME {
+ Border = TRUE;
+ Pos = MAP_APPFONT( 87, 28 );
+ Size = MAP_APPFONT( 126, 12 );
+ TabStop = TRUE;
+ };
+ Edit HID_NAME {
+ Border = TRUE;
+ Pos = MAP_APPFONT( 87, 44 );
+ Size = MAP_APPFONT( 126, 12 );
+ TabStop = TRUE;
+ };
+ PushButton LOG_SET {
+ Pos = MAP_APPFONT( 217, 12 );
+ Size = MAP_APPFONT( 12, 12 );
+ Text = "...";
+ Text [ english_us ] = "...";
+ TabStop = TRUE;
+ Text[ portuguese ] = "...";
+ Text[ russian ] = "...";
+ Text[ greek ] = "...";
+ Text[ dutch ] = "...";
+ Text[ french ] = "...";
+ Text[ spanish ] = "...";
+ Text[ italian ] = "...";
+ Text[ danish ] = "...";
+ Text[ swedish ] = "...";
+ Text[ polish ] = "...";
+ Text[ portuguese_brazilian ] = "...";
+ Text[ japanese ] = "...";
+ Text[ korean ] = "...";
+ Text[ chinese_simplified ] = "...";
+ Text[ chinese_traditional ] = "...";
+ Text[ arabic ] = "...";
+ Text[ turkish ] = "...";
+ };
+ PushButton BASIS_SET {
+ Pos = MAP_APPFONT( 217, 28 );
+ Size = MAP_APPFONT( 12, 12 );
+ Text = "...";
+ Text [ english_us ] = "...";
+ TabStop = TRUE;
+ Text[ portuguese ] = "...";
+ Text[ russian ] = "...";
+ Text[ greek ] = "...";
+ Text[ dutch ] = "...";
+ Text[ french ] = "...";
+ Text[ spanish ] = "...";
+ Text[ italian ] = "...";
+ Text[ danish ] = "...";
+ Text[ swedish ] = "...";
+ Text[ polish ] = "...";
+ Text[ portuguese_brazilian ] = "...";
+ Text[ japanese ] = "...";
+ Text[ korean ] = "...";
+ Text[ chinese_simplified ] = "...";
+ Text[ chinese_traditional ] = "...";
+ Text[ arabic ] = "...";
+ Text[ turkish ] = "...";
+ };
+ PushButton HID_SET {
+ Pos = MAP_APPFONT( 217, 44 );
+ Size = MAP_APPFONT( 12, 12 );
+ Text = "...";
+ Text [ english_us ] = "...";
+ TabStop = TRUE;
+ Text[ portuguese ] = "...";
+ Text[ russian ] = "...";
+ Text[ greek ] = "...";
+ Text[ dutch ] = "...";
+ Text[ french ] = "...";
+ Text[ spanish ] = "...";
+ Text[ italian ] = "...";
+ Text[ danish ] = "...";
+ Text[ swedish ] = "...";
+ Text[ polish ] = "...";
+ Text[ portuguese_brazilian ] = "...";
+ Text[ japanese ] = "...";
+ Text[ korean ] = "...";
+ Text[ chinese_simplified ] = "...";
+ Text[ chinese_traditional ] = "...";
+ Text[ arabic ] = "...";
+ Text[ turkish ] = "...";
+ };
+ GroupBox GB_OTHER {
+ Pos = MAP_APPFONT( 4, 62 );
+ Size = MAP_APPFONT( 230, 34 );
+ Text = "Andere Einstellungen";
+ Text [ english_us ] = "Other settings";
+ Text[ portuguese ] = "Outras definies";
+ Text[ russian ] = "Other settings";
+ Text[ greek ] = "Other settings";
+ Text[ dutch ] = "Andere instellingen";
+ Text[ french ] = "Autres paramtres";
+ Text[ spanish ] = "Otra configuracin";
+ Text[ italian ] = "Other settings";
+ Text[ danish ] = "Other settings";
+ Text[ swedish ] = "Other settings";
+ Text[ polish ] = "Other settings";
+ Text[ portuguese_brazilian ] = "Andere Einstellungen";
+ Text[ japanese ] = "̑̐ݒ";
+ Text[ korean ] = "ٸ ";
+ Text[ chinese_simplified ] = "Andere Einstellungen";
+ Text[ chinese_traditional ] = "Ohter settings";
+ Text[ arabic ] = "Other settings";
+ Text[ turkish ] = "Dier ayarlar";
+ };
+ FixedText TIMEOUT_TEXT {
+ Pos = MAP_APPFONT( 8, 70 );
+ Size = MAP_APPFONT( 70, 12 );
+ Text = "Server Timeout";
+ Text [ english_us ] = "Server Timeout";
+ Text[ portuguese ] = "Timeout do servidor";
+ Text[ russian ] = "Server Timeout";
+ Text[ greek ] = "Server Timeout";
+ Text[ dutch ] = "Server timeout";
+ Text[ french ] = "Timeout du serveur (dpassement de dlai)";
+ Text[ spanish ] = "Server Timeout";
+ Text[ italian ] = "Server Timeout";
+ Text[ danish ] = "Server Timeout";
+ Text[ swedish ] = "Server Timeout";
+ Text[ polish ] = "Server Timeout";
+ Text[ portuguese_brazilian ] = "Server Timeout";
+ Text[ japanese ] = "ް ѱ";
+ Text[ korean ] = " ŸӾƿ";
+ Text[ chinese_simplified ] = "Server Timeout";
+ Text[ chinese_traditional ] = "Server Timeout";
+ Text[ arabic ] = "Server Timeout";
+ Text[ turkish ] = "Sunucu zaman am";
+ };
+ TimeField SERVER_TIMEOUT {
+ Border = TRUE;
+ Pos = MAP_APPFONT( 83, 70 );
+ Size = MAP_APPFONT( 40, 12 );
+ TabStop = TRUE;
+ Repeat = TRUE;
+ Spin = TRUE;
+ Format = TIMEF_SEC;
+ Duration = TRUE;
+ };
+ CheckBox CB_AUTORELOAD {
+ Pos = MAP_APPFONT( 8, 83 );
+ Size = MAP_APPFONT( 115, 12 );
+ Text = "Automatischer Reload";
+ Text [ english_us ] = "AutoReload";
+ Text[ portuguese ] = "Recarga automtica";
+ Text[ russian ] = "AutoReload";
+ Text[ greek ] = "AutoReload";
+ Text[ dutch ] = "Automatische reload";
+ Text[ french ] = "Recharge automatique";
+ Text[ spanish ] = "Recarga automtica";
+ Text[ italian ] = "AutoReload";
+ Text[ danish ] = "AutoReload";
+ Text[ swedish ] = "AutoReload";
+ Text[ polish ] = "AutoReload";
+ Text[ portuguese_brazilian ] = "Automatischer Reload";
+ Text[ japanese ] = "AutoReload";
+ Text[ korean ] = "ڵε";
+ Text[ chinese_simplified ] = "Automatischer Reload";
+ Text[ chinese_traditional ] = "AutoReload";
+ Text[ arabic ] = "AutoReload";
+ Text[ turkish ] = "Otomatik yeniden ykleme";
+ };
+// CheckBox 5555 {
+// Pos = MAP_APPFONT( 127, 70 );
+// Size = MAP_APPFONT( 103, 12 );
+// Text = "Unbenutzt aber Positioniert";
+// Text [ english_us ] = "Unbenutzt aber Positioniert";
+// };
+};
+
+
+
+FloatingWindow IDD_DISPLAY_HID {
+ OutputSize = TRUE;
+ SVLook = TRUE;
+ Size = MAP_APPFONT( 261, 160 );
+ Text = "Display HId";
+ Text [ english_us ] = "Display HId";
+ Moveable = TRUE;
+ Closeable = TRUE;
+ Sizeable = TRUE;
+ Zoomable = TRUE;
+ Hide = TRUE;
+ ClipChildren = TRUE;
+ ToolBox RID_TB_CONF {
+ Border = TRUE;
+ Pos = MAP_APPFONT( 0, 0 );
+ Size = MAP_APPFONT( 260, 14 );
+/* ItemList = {
+ ToolBoxItem {
+ Text = "erster der Toolbox";
+ Text [ english_us ] = "erster der Toolbox";
+ };
+ };*/
+// Hide = TRUE;
+ };
+ FixedText RID_FT_CONTROLS {
+ Pos = MAP_APPFONT( 4, 16 );
+ Size = MAP_APPFONT( 128, 10 );
+ Text = "Controls";
+ Text [ english_us ] = "Controls";
+ Text[ portuguese ] = "Controlos";
+ Text[ russian ] = "Controls";
+ Text[ greek ] = "Controls";
+ Text[ dutch ] = "Controls";
+ Text[ french ] = "Contrles";
+ Text[ spanish ] = "Controles";
+ Text[ italian ] = "Controls";
+ Text[ danish ] = "Controls";
+ Text[ swedish ] = "Controls";
+ Text[ polish ] = "Controls";
+ Text[ portuguese_brazilian ] = "Controls";
+ Text[ japanese ] = "Controls";
+ Text[ korean ] = "Ʈ";
+ Text[ chinese_simplified ] = "Controls";
+ Text[ chinese_traditional ] = "Controls";
+ Text[ arabic ] = "Controls";
+ Text[ turkish ] = "Denetimler";
+ };
+ MultiListBox RID_MLB_CONTROLS {
+ Border = TRUE;
+ AutoHScroll = TRUE;
+ Pos = MAP_APPFONT( 4, 28 );
+ Size = MAP_APPFONT( 208, 88 );
+ TabStop = TRUE;
+ };
+ FixedText RID_FT_SLOTS {
+ Pos = MAP_APPFONT( 4, 120 );
+ Size = MAP_APPFONT( 128, 10 );
+ Text = "Slots";
+ Text [ english_us ] = "Slots";
+ Text[ portuguese ] = "Slots";
+ Text[ russian ] = "Slots";
+ Text[ greek ] = "Slots";
+ Text[ dutch ] = "Slots";
+ Text[ french ] = "Ports (slots)";
+ Text[ spanish ] = "Puertos (slots)";
+ Text[ italian ] = "Slots";
+ Text[ danish ] = "Slots";
+ Text[ swedish ] = "Slots";
+ Text[ polish ] = "Slots";
+ Text[ portuguese_brazilian ] = "Slots";
+ Text[ japanese ] = "Slots";
+ Text[ korean ] = "Slots";
+ Text[ chinese_simplified ] = "Slots";
+ Text[ chinese_traditional ] = "Slots";
+ Text[ arabic ] = "Slots";
+ Text[ turkish ] = "Yuvalar";
+ };
+ MultiListBox RID_MLB_SLOTS {
+ Border = TRUE;
+ AutoHScroll = TRUE;
+ Pos = MAP_APPFONT( 4, 132 );
+ Size = MAP_APPFONT( 208, 24 );
+ TabStop = TRUE;
+ };
+ PushButton RID_PB_KOPIEREN {
+ Pos = MAP_APPFONT( 216, 28 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Kopieren";
+ Text [ english_us ] = "Copy";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Copiar";
+ Text[ russian ] = "Copy";
+ Text[ greek ] = "Copy";
+ Text[ dutch ] = "Kopiren";
+ Text[ french ] = "Copier";
+ Text[ spanish ] = "Copiar";
+ Text[ italian ] = "Copy";
+ Text[ danish ] = "Copy";
+ Text[ swedish ] = "Copy";
+ Text[ polish ] = "Copy";
+ Text[ portuguese_brazilian ] = "Kopieren";
+ Text[ japanese ] = "Copy";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Kopieren";
+ Text[ chinese_traditional ] = "Copy";
+ Text[ arabic ] = "Copy";
+ Text[ turkish ] = "Kopyala";
+ };
+ PushButton RID_PB_BENENNEN {
+ Pos = MAP_APPFONT( 216, 44 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Benennen";
+ Text [ english_us ] = "Name";
+ TabStop = TRUE;
+ Hide = TRUE;
+ Text[ portuguese ] = "Atribuir nome";
+ Text[ russian ] = "Name";
+ Text[ greek ] = "Name";
+ Text[ dutch ] = "Naam geven";
+ Text[ french ] = "Nommer";
+ Text[ spanish ] = "Nombrar";
+ Text[ italian ] = "Name";
+ Text[ danish ] = "Name";
+ Text[ swedish ] = "Name";
+ Text[ polish ] = "Name";
+ Text[ portuguese_brazilian ] = "Benennen";
+ Text[ japanese ] = "Name";
+ Text[ korean ] = "̸";
+ Text[ chinese_simplified ] = "Benennen";
+ Text[ chinese_traditional ] = "Name";
+ Text[ arabic ] = "Name";
+ Text[ turkish ] = "Adlandr";
+ };
+ PushButton RID_PB_SELECTALL {
+ Pos = MAP_APPFONT( 216, 44 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Alle Markieren";
+ Text [ english_us ] = "Select all";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Seleccionar tudo";
+ Text[ russian ] = "Select all";
+ Text[ greek ] = "Select all";
+ Text[ dutch ] = "Alle markeren";
+ Text[ french ] = "Slectionner tout";
+ Text[ spanish ] = "Seleccionar todos";
+ Text[ italian ] = "Select all";
+ Text[ danish ] = "Select all";
+ Text[ swedish ] = "Select all";
+ Text[ polish ] = "Select all";
+ Text[ portuguese_brazilian ] = "Alle Markieren";
+ Text[ japanese ] = "Select all";
+ Text[ korean ] = "ü ";
+ Text[ chinese_simplified ] = "Alle Markieren";
+ Text[ chinese_traditional ] = "Select all";
+ Text[ arabic ] = "Select all";
+ Text[ turkish ] = "Tmn se";
+ };
+ OKButton RID_OK_CLOSE {
+ Pos = MAP_APPFONT( 216, 144 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "Schlieen";
+ Text [ english_us ] = "Close";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Fechar";
+ Text[ russian ] = "Close";
+ Text[ greek ] = "Close";
+ Text[ dutch ] = "Sluiten";
+ Text[ french ] = "Fermer";
+ Text[ spanish ] = "Cerrar";
+ Text[ italian ] = "Close";
+ Text[ danish ] = "Close";
+ Text[ swedish ] = "Close";
+ Text[ polish ] = "Close";
+ Text[ portuguese_brazilian ] = "Schlieen";
+ Text[ japanese ] = "Close";
+ Text[ korean ] = "ݱ";
+ Text[ chinese_simplified ] = "Schlieen";
+ Text[ chinese_traditional ] = "Close";
+ Text[ arabic ] = "Close";
+ Text[ turkish ] = "Kapat";
+ };
+ Text[ portuguese ] = "Mostrar HId";
+ Text[ russian ] = "Display HId";
+ Text[ greek ] = "Display HId";
+ Text[ dutch ] = "Display HId";
+ Text[ french ] = "Display HId";
+ Text[ spanish ] = "Mostrar HId";
+ Text[ italian ] = "Display HId";
+ Text[ danish ] = "Display HId";
+ Text[ swedish ] = "Display HId";
+ Text[ polish ] = "Display HId";
+ Text[ portuguese_brazilian ] = "Display HId";
+ Text[ japanese ] = "Display HId";
+ Text[ korean ] = "÷ HId";
+ Text[ chinese_simplified ] = "Display HId";
+ Text[ chinese_traditional ] = "Display HId";
+ Text[ arabic ] = "Display HId";
+ Text[ turkish ] = "Grntle: HId";
+};
+
+
+
+Accelerator MAIN_ACCEL {
+ ItemList = {
+ AcceleratorItem {
+ Identifier = RID_FILENEW;
+ Key = KeyCode { Function = KEYFUNC_NEW; };
+ };
+ AcceleratorItem {
+ Identifier = RID_FILEOPEN;
+ Key = KeyCode { Function = KEYFUNC_OPEN; };
+ };
+ AcceleratorItem {
+ Identifier = RID_FILESAVE;
+ Key = KeyCode { Function = KEYFUNC_SAVE; };
+ };
+ AcceleratorItem {
+ Identifier = RID_FILESAVEAS;
+ Key = KeyCode { Function = KEYFUNC_SAVEAS; };
+ };
+ AcceleratorItem {
+ Identifier = RID_QUIT;
+ Key = KeyCode { Function = KEYFUNC_QUIT; };
+ };
+// AcceleratorItem {
+// Identifier = RID_EDITCUT;
+// Key = KeyCode { Function = KEYFUNC_CUT; };
+// };
+// AcceleratorItem {
+// Identifier = RID_EDITCOPY;
+// Key = KeyCode { Function = KEYFUNC_COPY; };
+// };
+// AcceleratorItem {
+// Identifier = RID_EDITPASTE;
+// Key = KeyCode { Function = KEYFUNC_PASTE; };
+// };
+// AcceleratorItem {
+// Identifier = RID_EDITDEL;
+// Key = KeyCode { Function = KEYFUNC_DELETE; };
+// };
+ AcceleratorItem {
+ Identifier = RID_EDITSEARCH;
+ Key = KeyCode { Function = KEYFUNC_FIND; };
+ };
+ AcceleratorItem {
+ Identifier = RID_EDITREPEAT;
+ Key = KeyCode { Code = KEY_F3; };
+// Key = KeyCode { Function = KEYFUNC_REPEAT; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNCOMPILE;
+ Key = KeyCode { Code = KEY_F5; Shift = TRUE; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNSTART;
+ Key = KeyCode { Code = KEY_F5; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNSTEPINTO;
+ Key = KeyCode { Code = KEY_F8; };
+ };
+ AcceleratorItem {
+ Identifier = RID_TOGLEBRKPNT;
+ Key = KeyCode { Code = KEY_F9; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNSTEPOVER;
+ Key = KeyCode { Code = KEY_F10; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNTOCURSOR;
+ Key = KeyCode { Code = KEY_F7; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNBREAK;
+ Key = KeyCode { Code = KEY_F5; Modifier1 = TRUE; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNNEXTERR;
+ Key = KeyCode { Code = KEY_F8; Shift = TRUE; };
+ };
+ AcceleratorItem {
+ Identifier = RID_RUNPREVERR;
+ Key = KeyCode { Code = KEY_F7; Shift = TRUE; };
+ };
+ };
+};
+
+ImageList RID_IMGLST_LAYOUT
+{
+ ImageBitmap = Bitmap { FILE = "images2.bmp" ; };
+ MaskColor = Color { Red = 0xFFFF ; Green = 0xFFFF ; Blue = 0xFFFF ; };
+ IdList =
+ {
+ IMGID_BRKENABLED ;
+ IMGID_BRKDISABLED ;
+ IMGID_STEPMARKER ;
+ IMGID_ERRORMARKER ;
+ };
+};
+
+
+ModelessDialog IDD_EDIT_VAR {
+ Pos = MAP_APPFONT( 0, 0 );
+ Size = MAP_APPFONT( 171, 87 );
+ Text = "Variable editieren";
+ Text [ english_us ] = "Edit variable";
+ Moveable = TRUE;
+ Closeable = TRUE;
+ FixedText RID_FT_NAME {
+ Pos = MAP_APPFONT( 8, 8 );
+ Size = MAP_APPFONT( 40, 10 );
+ Text = "Name";
+ Text [ english_us ] = "Name";
+ Text[ portuguese ] = "Nome";
+ Text[ russian ] = "Name";
+ Text[ greek ] = "Name";
+ Text[ dutch ] = "Naam";
+ Text[ french ] = "Nom";
+ Text[ spanish ] = "Nombre";
+ Text[ italian ] = "Name";
+ Text[ danish ] = "Name";
+ Text[ swedish ] = "Name";
+ Text[ polish ] = "Name";
+ Text[ portuguese_brazilian ] = "Name";
+ Text[ japanese ] = "Name";
+ Text[ korean ] = "̸";
+ Text[ chinese_simplified ] = "Name";
+ Text[ chinese_traditional ] = "Name";
+ Text[ arabic ] = "Name";
+ Text[ turkish ] = "Ad";
+ };
+ FixedText RID_FT_CONTENT {
+ Pos = MAP_APPFONT( 8, 21 );
+ Size = MAP_APPFONT( 40, 10 );
+ Text = "Inhalt";
+ Text [ english_us ] = "Content";
+ Text[ portuguese ] = "Contedo";
+ Text[ russian ] = "Content";
+ Text[ greek ] = "Content";
+ Text[ dutch ] = "Inhoud";
+ Text[ french ] = "Contenu";
+ Text[ spanish ] = "Contenido";
+ Text[ italian ] = "Content";
+ Text[ danish ] = "Content";
+ Text[ swedish ] = "Content";
+ Text[ polish ] = "Content";
+ Text[ portuguese_brazilian ] = "Inhalt";
+ Text[ japanese ] = "Content";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Inhalt";
+ Text[ chinese_traditional ] = "Content";
+ Text[ arabic ] = "Content";
+ Text[ turkish ] = "erik";
+ };
+ FixedText RID_FT_NEW_CONTENT {
+ Pos = MAP_APPFONT( 8, 38 );
+ Size = MAP_APPFONT( 40, 10 );
+ Text = "Neuer Inhalt";
+ Text [ english_us ] = "New content";
+ Text[ portuguese ] = "Novo contedo";
+ Text[ russian ] = "New content";
+ Text[ greek ] = "New content";
+ Text[ dutch ] = "Nieuwe inhoud";
+ Text[ french ] = "Nouveau contenu";
+ Text[ spanish ] = "Nuevo contenido";
+ Text[ italian ] = "New content";
+ Text[ danish ] = "New content";
+ Text[ swedish ] = "New content";
+ Text[ polish ] = "New content";
+ Text[ portuguese_brazilian ] = "Neuer Inhalt";
+ Text[ japanese ] = "New content";
+ Text[ korean ] = "ο ";
+ Text[ chinese_simplified ] = "Neuer Inhalt";
+ Text[ chinese_traditional ] = "New content";
+ Text[ arabic ] = "New content";
+ Text[ turkish ] = "Yeni ierik";
+ };
+ FixedText RID_FT_NAME_VALUE {
+ Pos = MAP_APPFONT( 53, 8 );
+ Size = MAP_APPFONT( 111, 10 );
+ Text = "name der variablen";
+ Text [ english_us ] = "Name of variable";
+ Text[ portuguese ] = "nome das variveis";
+ Text[ russian ] = "Name of variable";
+ Text[ greek ] = "Name of variable";
+ Text[ dutch ] = "Naam van de variabelen";
+ Text[ french ] = "Noms des variables";
+ Text[ spanish ] = "nombre de variables";
+ Text[ italian ] = "Name of variables";
+ Text[ danish ] = "Name of variable";
+ Text[ swedish ] = "Name of variable";
+ Text[ polish ] = "Name of variable";
+ Text[ portuguese_brazilian ] = "name der variablen";
+ Text[ japanese ] = "Name of variable";
+ Text[ korean ] = " ";
+ Text[ chinese_simplified ] = "name der variablen";
+ Text[ chinese_traditional ] = "name of variable";
+ Text[ arabic ] = "Name of variable";
+ Text[ turkish ] = "Deiken ad";
+ };
+ FixedText RID_FT_CONTENT_VALUE {
+ Pos = MAP_APPFONT( 53, 21 );
+ Size = MAP_APPFONT( 111, 10 );
+ Text = "Alter Inhalt";
+ Text [ english_us ] = "Previous contents";
+ Text[ portuguese ] = "Antigo contedo";
+ Text[ russian ] = "Previous contents";
+ Text[ greek ] = "Previous contents";
+ Text[ dutch ] = "Oude inhoud";
+ Text[ french ] = "Ancien contenu";
+ Text[ spanish ] = "Contenido antiguo";
+ Text[ italian ] = "Previous content";
+ Text[ danish ] = "Previous contents";
+ Text[ swedish ] = "Previous content";
+ Text[ polish ] = "Previous contents";
+ Text[ portuguese_brazilian ] = "Alter Inhalt";
+ Text[ japanese ] = "Previous contents";
+ Text[ korean ] = " ";
+ Text[ chinese_simplified ] = "Alter Inhalt";
+ Text[ chinese_traditional ] = "Previous content";
+ Text[ arabic ] = "Previous contents";
+ Text[ turkish ] = "Eski ierik";
+ };
+ RadioButton RID_RB_NEW_BOOL_T {
+ Hide = TRUE;
+ Pos = MAP_APPFONT( 53, 37 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "True";
+ Text [ english_us ] = "True";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Verdadeiro";
+ Text[ russian ] = "True";
+ Text[ greek ] = "True";
+ Text[ dutch ] = "True";
+ Text[ french ] = "Vrai";
+ Text[ spanish ] = "Verdadero";
+ Text[ italian ] = "True";
+ Text[ danish ] = "True";
+ Text[ swedish ] = "True";
+ Text[ polish ] = "True";
+ Text[ portuguese_brazilian ] = "True";
+ Text[ japanese ] = "True";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "True";
+ Text[ chinese_traditional ] = "True";
+ Text[ arabic ] = "True";
+ Text[ turkish ] = "Doru";
+ };
+ RadioButton RID_RB_NEW_BOOL_F {
+ Hide = TRUE;
+ Pos = MAP_APPFONT( 98, 37 );
+ Size = MAP_APPFONT( 40, 12 );
+ Text = "False";
+ Text [ english_us ] = "False";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Falso";
+ Text[ russian ] = "False";
+ Text[ greek ] = "False";
+ Text[ dutch ] = "False";
+ Text[ french ] = "Faux";
+ Text[ spanish ] = "Falso";
+ Text[ italian ] = "False";
+ Text[ danish ] = "False";
+ Text[ swedish ] = "False";
+ Text[ polish ] = "False";
+ Text[ portuguese_brazilian ] = "False";
+ Text[ japanese ] = "False";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "False";
+ Text[ chinese_traditional ] = "False";
+ Text[ arabic ] = "False";
+ Text[ turkish ] = "Yanl";
+ };
+ NumericField RID_NF_NEW_INTEGER {
+ Border = TRUE;
+ Hide = TRUE;
+ Pos = MAP_APPFONT( 53, 37 );
+ Size = MAP_APPFONT( 111, 12 );
+ TabStop = TRUE;
+ Repeat = TRUE;
+ Spin = TRUE;
+ Minimum = -32768;
+ Maximum = 32767;
+ First = -32768;
+ Last = 32767;
+ SpinSize = 10;
+ };
+ NumericField RID_NF_NEW_LONG {
+ Border = TRUE;
+ Hide = TRUE;
+ Pos = MAP_APPFONT( 53, 37 );
+ Size = MAP_APPFONT( 111, 12 );
+ TabStop = TRUE;
+ Repeat = TRUE;
+ Spin = TRUE;
+ Minimum = -2147483648;
+ Maximum = 2147483647;
+ First = -2147483648;
+ Last = 2147483647;
+ SpinSize = 10;
+ };
+ Edit RID_ED_NEW_STRING {
+ Hide = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT( 53, 37 );
+ Size = MAP_APPFONT( 111, 12 );
+ Text = "Edit";
+ Text [ english_us ] = "Edit";
+ TabStop = TRUE;
+ Text[ portuguese ] = "Editar";
+ Text[ russian ] = "Edit";
+ Text[ greek ] = "Edit";
+ Text[ dutch ] = "Edit";
+ Text[ french ] = "diter";
+ Text[ spanish ] = "Editar";
+ Text[ italian ] = "Edit";
+ Text[ danish ] = "Edit";
+ Text[ swedish ] = "Edit";
+ Text[ polish ] = "Edit";
+ Text[ portuguese_brazilian ] = "Edit";
+ Text[ japanese ] = "Edit";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "Edit";
+ Text[ chinese_traditional ] = "Edit";
+ Text[ arabic ] = "Edit";
+ Text[ turkish ] = "Dzenle";
+ };
+ OKButton RID_OK {
+ Pos = MAP_APPFONT( 33, 58 );
+ Size = MAP_APPFONT( 40, 12 );
+ TabStop = TRUE;
+ };
+ CancelButton RID_CANCEL {
+ Pos = MAP_APPFONT( 93, 58 );
+ Size = MAP_APPFONT( 40, 12 );
+ TabStop = TRUE;
+ };
+ Text[ portuguese ] = "Editar variveis";
+ Text[ russian ] = "Edit variable";
+ Text[ greek ] = "Edit variable";
+ Text[ dutch ] = "Variabele editeren";
+ Text[ french ] = "dition de variable";
+ Text[ spanish ] = "Editar variable";
+ Text[ italian ] = "Edit variable";
+ Text[ danish ] = "Edit variable";
+ Text[ swedish ] = "Edit variable";
+ Text[ polish ] = "Edit variable";
+ Text[ portuguese_brazilian ] = "Variable editieren";
+ Text[ japanese ] = "Edit variable";
+ Text[ korean ] = " ";
+ Text[ chinese_simplified ] = "Variable editieren";
+ Text[ chinese_traditional ] = "Edit variable";
+ Text[ arabic ] = "Edit variable";
+ Text[ turkish ] = "Deiken dzenle";
+};
+
+FloatingWindow LOAD_CONF {
+ SVLook = TRUE;
+ Pos = MAP_APPFONT( 66, 23 );
+ Size = MAP_APPFONT( 156, 51 );
+ Text = "Lese Konfigurationsdateien";
+ Text[ english_us ] = "Load configuration files";
+ Moveable = TRUE;
+ FixedText WORK {
+ SVLook = TRUE;
+ Pos = MAP_APPFONT( 0, 8 );
+ Size = MAP_APPFONT( 155, 10 );
+ Text = "Slot IDs";
+ Text[ english_us ] = "Slot IDs";
+ Center = TRUE;
+ Text[ portuguese ] = "Slot IDs";
+ Text[ russian ] = "Slot IDs";
+ Text[ greek ] = "Slot IDs";
+ Text[ dutch ] = "Slot IDs";
+ Text[ french ] = "Slot IDs";
+ Text[ spanish ] = "Slot IDs";
+ Text[ italian ] = "Slot IDs";
+ Text[ danish ] = "Slot IDs";
+ Text[ swedish ] = "Slot IDs";
+ Text[ polish ] = "Slot IDs";
+ Text[ portuguese_brazilian ] = "Slot IDs";
+ Text[ japanese ] = "Slot IDs";
+ Text[ korean ] = "Slot IDs";
+ Text[ chinese_simplified ] = "Slot IDs";
+ Text[ chinese_traditional ] = "Slot IDs";
+ Text[ arabic ] = "Slot IDs";
+ Text[ turkish ] = "Slot IDs";
+ };
+ FixedText FILENAME {
+ SVLook = TRUE;
+ Pos = MAP_APPFONT( 0, 21 );
+ Size = MAP_APPFONT( 155, 10 );
+ Text = "Datei.win";
+ Text[ english_us ] = "File.win";
+ Center = TRUE;
+ Text[ portuguese ] = "File.win";
+ Text[ russian ] = "File.win";
+ Text[ greek ] = "File.win";
+ Text[ dutch ] = "Bestand.win";
+ Text[ french ] = "Fichier.win";
+ Text[ spanish ] = "Archivo.win";
+ Text[ italian ] = "File.win";
+ Text[ danish ] = "File.win";
+ Text[ swedish ] = "File.win";
+ Text[ polish ] = "Plik.win";
+ Text[ portuguese_brazilian ] = "Datei.win";
+ Text[ japanese ] = "File.win";
+ Text[ korean ] = "File.win";
+ Text[ chinese_simplified ] = "File.win";
+ Text[ chinese_traditional ] = "Datei.win";
+ Text[ arabic ] = "File.win";
+ Text[ turkish ] = "File.win";
+ };
+ Text[ portuguese ] = "A ler ficheiros de configurao";
+ Text[ russian ] = "Load configuration files";
+ Text[ greek ] = "Load configuration files";
+ Text[ dutch ] = "Lees configuratiebestanden";
+ Text[ french ] = "Lecture des fichiers de configuration";
+ Text[ spanish ] = "Leyendo archivos de configuracin";
+ Text[ italian ] = "Load configuration files";
+ Text[ danish ] = "Load configuration files";
+ Text[ swedish ] = "Load configuration files";
+ Text[ polish ] = "Czytaj pliki konfiguracyjne";
+ Text[ portuguese_brazilian ] = "Lese Konfigurationsdateien";
+ Text[ japanese ] = "Load configuration files";
+ Text[ korean ] = " ε";
+ Text[ chinese_simplified ] = "Load configuration files";
+ Text[ chinese_traditional ] = "Lese Konfigurationsdateien";
+ Text[ arabic ] = "Load configuration files";
+ Text[ turkish ] = "Konfigrasyon dosyalar okunuyor";
+};
diff --git a/basic/source/app/basicrt.cxx b/basic/source/app/basicrt.cxx
new file mode 100644
index 000000000000..2ca8d5ee6edf
--- /dev/null
+++ b/basic/source/app/basicrt.cxx
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * $RCSfile: basicrt.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include "sbintern.hxx"
+#include "runtime.hxx"
+#include "basicrt.hxx"
+
+
+const String BasicRuntime::GetModuleName( SbxNameType nType )
+{
+ return pRun->GetModule()->GetName( nType );
+}
+
+const String BasicRuntime::GetMethodName( SbxNameType nType )
+{
+ return pRun->GetMethod()->GetName( nType );
+}
+
+xub_StrLen BasicRuntime::GetLine()
+{
+ return pRun->nLine;
+}
+
+xub_StrLen BasicRuntime::GetCol1()
+{
+ return pRun->nCol1;
+}
+
+xub_StrLen BasicRuntime::GetCol2()
+{
+ return pRun->nCol2;
+}
+
+BasicRuntime BasicRuntime::GetNextRuntime()
+{
+ return BasicRuntime ( pRun->pNext );
+}
+
+
+
+
+const String BasicErrorStackEntry::GetModuleName( SbxNameType nType )
+{
+ return pEntry->aMethod->GetModule()->GetName( nType );
+}
+
+const String BasicErrorStackEntry::GetMethodName( SbxNameType nType )
+{
+ return pEntry->aMethod->GetName( nType );
+}
+
+xub_StrLen BasicErrorStackEntry::GetLine()
+{
+ return pEntry->nLine;
+}
+
+xub_StrLen BasicErrorStackEntry::GetCol1()
+{
+ return pEntry->nCol1;
+}
+
+xub_StrLen BasicErrorStackEntry::GetCol2()
+{
+ return pEntry->nCol2;
+}
+
+
+
+
+BasicRuntime BasicRuntimeAccess::GetRuntime()
+{
+ return BasicRuntime( pINST->pRun );
+}
+
+BOOL BasicRuntimeAccess::HasRuntime()
+{
+ return pINST ? ( pINST->pRun != NULL ) : FALSE;
+}
+
+USHORT BasicRuntimeAccess::GetStackEntryCount()
+{
+ return GetSbData()->pErrStack->Count();
+}
+
+BasicErrorStackEntry BasicRuntimeAccess::GetStackEntry( USHORT nIndex )
+{
+ return BasicErrorStackEntry( GetSbData()->pErrStack->GetObject( nIndex ) );
+}
+
+BOOL BasicRuntimeAccess::HasStack()
+{
+ return GetSbData()->pErrStack != NULL;
+}
+
+void BasicRuntimeAccess::DeleteStack()
+{
+ delete GetSbData()->pErrStack;
+ GetSbData()->pErrStack = NULL;
+}
+
+BOOL BasicRuntimeAccess::IsRunInit()
+{
+ return GetSbData()->bRunInit;
+}
diff --git a/basic/source/app/basmsg.hrc b/basic/source/app/basmsg.hrc
new file mode 100644
index 000000000000..2e900e258209
--- /dev/null
+++ b/basic/source/app/basmsg.hrc
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: basmsg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include <svtools/ttglobal.hrc>
+
+
+// Hier sind die Messages aus dem Verzeichnis /basic/source/app enhalten
+
+
+///////////////////////////////
+// Fehlermeldungen, die in das Resultfile gelangen.
+// *********************
+// *** !!ACHTUNG!! ***
+// *********************
+// Die Nummern drfen sich NIE! ndern,
+// da sie in den Resultfiles gespeichert sind, und bei erneutem Anzeigen
+// statdessen die entsprechenden neuen oder garkeine Strings angzeigt werden.
+///////////////////////////////
+
+#define S_PROG_START ( BAS_START + 0 )
+#define S_ERROR_OUTSIDE_TESTCASE ( BAS_START + 1 )
+#define S_WARNING_PREFIX ( BAS_START + 2 )
diff --git a/basic/source/app/basmsg.src b/basic/source/app/basmsg.src
new file mode 100644
index 000000000000..abaab9a6b21f
--- /dev/null
+++ b/basic/source/app/basmsg.src
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * $RCSfile: basmsg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include "basmsg.hrc"
+
+
+// Hier sind die Messages aus dem Verzeichnis /basic/source/app enhalten
+
+
+///////////////////////////////
+// Fehlermeldungen, die in das Resultfile gelangen.
+// *********************
+// *** !!ACHTUNG!! ***
+// *********************
+// Die Nummern drfen sich NIE! ndern,
+// da sie in den Resultfiles gespeichert sind, und bei erneutem Anzeigen
+// statdessen die entsprechenden neuen oder garkeine Strings angzeigt werden.
+///////////////////////////////
+String S_PROG_START
+{
+ Text = "Programmstart: ($Arg1); ($Arg2)";
+ Text[ english_us ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ LANGUAGE_USER1 ] = "Programmstart: <Datum>; <Uhrzeit>";
+ Text[ portuguese ] = "Incio do programa: ($Arg1); ($Arg2)";
+ Text[ russian ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ greek ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ dutch ] = "Programma start: ($Arg1); ($Arg2)";
+ Text[ french ] = "Dmarrage du programme : ($Arg1); ($Arg2)";
+ Text[ spanish ] = "Inicio de programa: ($Arg1); ($Arg2)";
+ Text[ italian ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ danish ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ swedish ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ polish ] = "Uruchomienie programu: ($Arg1); ($Arg2)";
+ Text[ portuguese_brazilian ] = "Programmstart: ($Arg1); ($Arg2)";
+ Text[ japanese ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ korean ] = "Programmstart: ($Arg1); ($Arg2)";
+ Text[ chinese_simplified ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ chinese_traditional ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ arabic ] = "Program start: ($Arg1); ($Arg2)";
+ Text[ turkish ] = "Program balatma: ($Arg1); ($Arg2)";
+};
+String S_ERROR_OUTSIDE_TESTCASE
+{
+ Text = "Fehler auerhalb eines Testcase.";
+ Text[ english_us ] = "Error outside of test case";
+ Text[ portuguese ] = "Erro fora de um test case.";
+ Text[ russian ] = "Error outside of test case.";
+ Text[ greek ] = "Error outside of test case.";
+ Text[ dutch ] = "Fout buiten testcase.";
+ Text[ french ] = "Erreur en dehors d'un scnario de test (test case).";
+ Text[ spanish ] = "Error fuera de un Testcase.";
+ Text[ italian ] = "Error outside of test case";
+ Text[ danish ] = "Error outside of test case.";
+ Text[ swedish ] = "Error outside of test case";
+ Text[ polish ] = "Bd poza Testcase.";
+ Text[ portuguese_brazilian ] = "Fehler auerhalb eines Testcase.";
+ Text[ japanese ] = "Error outside of test case.";
+ Text[ korean ] = "׽Ʈ ̽ ܺ ";
+ Text[ chinese_simplified ] = "Error outside of test case";
+ Text[ chinese_traditional ] = "Error outside of test case";
+ Text[ arabic ] = "Error outside of test case";
+ Text[ turkish ] = "Error outside of test case";
+};
+String S_WARNING_PREFIX
+{
+ Text = "Warnung: ";
+ Text[ english_us ] = "Warning: ";
+ Text[ portuguese ] = "Aviso: ";
+ Text[ russian ] = ": ";
+ Text[ greek ] = "Warning: ";
+ Text[ dutch ] = "Waarschuwing: ";
+ Text[ french ] = "Avertissement : ";
+ Text[ spanish ] = "Advertencia: ";
+ Text[ italian ] = "Warning: ";
+ Text[ danish ] = "Warning: ";
+ Text[ swedish ] = "Warning: ";
+ Text[ polish ] = "Ostrzeenie: ";
+ Text[ portuguese_brazilian ] = "Warning: ";
+ Text[ japanese ] = "x: ";
+ Text[ korean ] = ": ";
+ Text[ chinese_simplified ] = "Warning: ";
+ Text[ chinese_traditional ] = "Warning: ";
+ Text[ arabic ] = ": ";
+ Text[ turkish ] = "Uyar: ";
+};
diff --git a/basic/source/app/brkpnts.cxx b/basic/source/app/brkpnts.cxx
new file mode 100644
index 000000000000..29b7326c2ff7
--- /dev/null
+++ b/basic/source/app/brkpnts.cxx
@@ -0,0 +1,434 @@
+/*************************************************************************
+ *
+ * $RCSfile: brkpnts.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _LIST_HXX //autogen
+#include <tools/list.hxx>
+#endif
+#ifndef _SBXCLASS_HXX //autogen
+#include <svtools/sbx.hxx>
+#endif
+#ifndef _SB_SBMOD_HXX //autogen
+#include <sbmod.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <sbstar.hxx>
+#endif
+#ifndef _SB_SBMETH_HXX //autogen
+#include <sbmeth.hxx>
+#endif
+#ifndef _SV_IMAGE_HXX //autogen
+#include <vcl/image.hxx>
+#endif
+#ifndef _TEXTDATA_HXX //autogen
+#include <svtools/textdata.hxx>
+#endif
+#ifndef _SV_CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include <vcl/gradient.hxx>
+#endif
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+#include <brkpnts.hxx>
+#include "basic.hrc"
+#include "resids.hrc"
+
+struct Breakpoint
+{
+ USHORT nLine;
+
+ Breakpoint( USHORT nL ) { nLine = nL; }
+};
+
+
+ImageList* BreakpointWindow::pImages = NULL;
+
+
+BreakpointWindow::BreakpointWindow( Window *pParent )
+: Window( pParent )
+, nCurYOffset( 0 )
+, pModule( NULL )
+{
+ if ( !pImages )
+ pImages = new ImageList( ResId( RID_IMGLST_LAYOUT ) );
+
+ Gradient aGradient( GRADIENT_AXIAL, Color( 185, 182, 215 ), Color( 250, 245, 255 ) );
+ aGradient.SetAngle(900);
+ SetBackground( aGradient );
+ Show();
+}
+
+
+void BreakpointWindow::Reset()
+{
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ delete pBrk;
+ pBrk = Next();
+ }
+ Clear();
+
+ pModule->ClearAllBP();
+}
+
+void BreakpointWindow::SetModule( SbModule *pMod )
+{
+ pModule = pMod;
+ USHORT i;
+ for ( i=0 ; i < pModule->GetBPCount() ; i++ )
+ {
+ InsertBreakpoint( pModule->GetBP( i ) );
+ }
+ SetBPsInModule();
+}
+
+
+void BreakpointWindow::SetBPsInModule()
+{
+ pModule->ClearAllBP();
+
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ pModule->SetBP( (USHORT)pBrk->nLine );
+#ifdef DEBUG
+ DBG_ASSERT( pModule->IsBP( (USHORT)pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" )
+#endif
+ pBrk = Next();
+ }
+ for ( USHORT nMethod = 0; nMethod < pModule->GetMethods()->Count(); nMethod++ )
+ {
+ SbMethod* pMethod = (SbMethod*)pModule->GetMethods()->Get( nMethod );
+ DBG_ASSERT( pMethod, "Methode nicht gefunden! (NULL)" );
+ pMethod->SetDebugFlags( pMethod->GetDebugFlags() | SbDEBUG_BREAK );
+ }
+}
+
+
+void BreakpointWindow::InsertBreakpoint( USHORT nLine )
+{
+ Breakpoint* pNewBrk = new Breakpoint( nLine );
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ if ( nLine <= pBrk->nLine )
+ {
+ if ( pBrk->nLine != nLine )
+ Insert( pNewBrk );
+ else
+ delete pNewBrk;
+ pNewBrk = NULL;
+ pBrk = NULL;
+ }
+ else
+ pBrk = Next();
+ }
+ // Keine Einfuegeposition gefunden => LIST_APPEND
+ if ( pNewBrk )
+ Insert( pNewBrk, LIST_APPEND );
+
+ // vielleicht mal etwas genauer...
+ Invalidate();
+
+ if ( pModule->SetBP( nLine ) )
+ {
+#ifdef DEBUG
+ DBG_ASSERT( pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" )
+#endif
+ if ( StarBASIC::IsRunning() )
+ {
+ for ( USHORT nMethod = 0; nMethod < pModule->GetMethods()->Count(); nMethod++ )
+ {
+ SbMethod* pMethod = (SbMethod*)pModule->GetMethods()->Get( nMethod );
+ DBG_ASSERT( pMethod, "Methode nicht gefunden! (NULL)" );
+ pMethod->SetDebugFlags( pMethod->GetDebugFlags() | SbDEBUG_BREAK );
+ }
+ }
+ }
+#ifdef DEBUG
+ DBG_ASSERT( pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" )
+#endif
+}
+
+
+Breakpoint* BreakpointWindow::FindBreakpoint( ULONG nLine )
+{
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ if ( pBrk->nLine == nLine )
+ return pBrk;
+
+ pBrk = Next();
+ }
+
+ return (Breakpoint*)0;
+}
+
+
+void BreakpointWindow::AdjustBreakpoints( ULONG nLine, BOOL bInserted )
+{
+ if ( nLine == TEXT_PARA_ALL+1 )
+ return;
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ BOOL bDelBrk = FALSE;
+ if ( pBrk->nLine == nLine )
+ {
+ if ( bInserted )
+ pBrk->nLine++;
+ else
+ bDelBrk = TRUE;
+ }
+ else if ( pBrk->nLine > nLine )
+ {
+ if ( bInserted )
+ pBrk->nLine++;
+ else
+ pBrk->nLine--;
+ }
+
+ if ( bDelBrk )
+ {
+ ULONG n = GetCurPos();
+ delete Remove( pBrk );
+ pBrk = Seek( n );
+ }
+ else
+ {
+ pBrk = Next();
+ }
+ }
+}
+
+
+void BreakpointWindow::LoadBreakpoints( String aFilename )
+{
+ Config aConfig(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+
+ aConfig.SetGroup("Breakpoints");
+
+ ByteString aBreakpoints;
+ aBreakpoints = aConfig.ReadKey( ByteString( aFilename, RTL_TEXTENCODING_UTF8 ) );
+
+ xub_StrLen i;
+
+ for ( i = 0 ; i < aBreakpoints.GetTokenCount( ';' ) ; i++ )
+ {
+ InsertBreakpoint( aBreakpoints.GetToken( i, ';' ).ToInt32() );
+ }
+}
+
+
+void BreakpointWindow::SaveBreakpoints( String aFilename )
+{
+ ByteString aBreakpoints;
+
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ if ( aBreakpoints.Len() )
+ aBreakpoints += ';';
+
+ aBreakpoints += ByteString::CreateFromInt32( pBrk->nLine );
+ pBrk = Next();
+ }
+
+ Config aConfig(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+
+ aConfig.SetGroup("Breakpoints");
+
+ if ( aBreakpoints.Len() )
+ aConfig.WriteKey( ByteString( aFilename, RTL_TEXTENCODING_UTF8 ), aBreakpoints );
+ else
+ aConfig.DeleteKey( ByteString( aFilename, RTL_TEXTENCODING_UTF8 ) );
+}
+
+
+void BreakpointWindow::Paint( const Rectangle& )
+{
+ Size aOutSz( GetOutputSize() );
+ long nLineHeight = GetTextHeight();
+
+ Image aBrk( pImages->GetImage( IMGID_BRKENABLED ) );
+ Size aBmpSz( aBrk.GetSizePixel() );
+ aBmpSz = PixelToLogic( aBmpSz );
+ Point aBmpOff( 0, 0 );
+ aBmpOff.X() = ( aOutSz.Width() - aBmpSz.Width() ) / 2;
+ aBmpOff.Y() = ( nLineHeight - aBmpSz.Height() ) / 2;
+
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+#ifdef DEBUG
+ DBG_ASSERT( pModule->IsBP( pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" )
+#endif
+ ULONG nLine = pBrk->nLine-1;
+ ULONG nY = nLine*nLineHeight - nCurYOffset;
+ DrawImage( Point( 0, nY ) + aBmpOff, aBrk );
+ pBrk = Next();
+ }
+ ShowMarker( TRUE );
+}
+
+
+Breakpoint* BreakpointWindow::FindBreakpoint( const Point& rMousePos )
+{
+ long nLineHeight = GetTextHeight();
+ long nYPos = rMousePos.Y() + nCurYOffset;
+
+ Breakpoint* pBrk = First();
+ while ( pBrk )
+ {
+ ULONG nLine = pBrk->nLine-1;
+ long nY = nLine*nLineHeight;
+ if ( ( nYPos > nY ) && ( nYPos < ( nY + nLineHeight ) ) )
+ return pBrk;
+ pBrk = Next();
+ }
+ return 0;
+}
+
+
+void BreakpointWindow::ToggleBreakpoint( USHORT nLine )
+{
+ BOOL bNewBreakPoint = FALSE;
+ Breakpoint* pBrk = FindBreakpoint( nLine );
+ if ( pBrk ) // entfernen
+ {
+ pModule->ClearBP( nLine );
+ delete Remove( pBrk );
+ }
+ else // einen erzeugen
+ {
+ InsertBreakpoint( nLine );
+ }
+ // vielleicht mal etwas genauer...
+ Invalidate();
+}
+
+void BreakpointWindow::ShowMarker( BOOL bShow )
+{
+ if ( nMarkerPos == MARKER_NOMARKER )
+ return;
+
+ Size aOutSz( GetOutputSize() );
+ long nLineHeight = GetTextHeight();
+
+ Image aMarker;
+ if ( bErrorMarker )
+ aMarker = pImages->GetImage( IMGID_ERRORMARKER );
+ else
+ aMarker = pImages->GetImage( IMGID_STEPMARKER );
+
+ Size aMarkerSz( aMarker.GetSizePixel() );
+ aMarkerSz = PixelToLogic( aMarkerSz );
+ Point aMarkerOff( 0, 0 );
+ aMarkerOff.X() = ( aOutSz.Width() - aMarkerSz.Width() ) / 2;
+ aMarkerOff.Y() = ( nLineHeight - aMarkerSz.Height() ) / 2;
+
+ ULONG nY = nMarkerPos*nLineHeight - nCurYOffset;
+ Point aPos( 0, nY );
+ aPos += aMarkerOff;
+ if ( bShow )
+ DrawImage( aPos, aMarker );
+ else
+ Invalidate( Rectangle( aPos, aMarkerSz ) );
+}
+
+
+void BreakpointWindow::MouseButtonDown( const MouseEvent& rMEvt )
+{
+ if ( rMEvt.GetClicks() == 2 )
+ {
+ Point aMousePos( PixelToLogic( rMEvt.GetPosPixel() ) );
+ long nLineHeight = GetTextHeight();
+ long nYPos = aMousePos.Y() + nCurYOffset;
+ long nLine = nYPos / nLineHeight + 1;
+ ToggleBreakpoint( nLine );
+ // vielleicht mal etwas genauer...
+ Invalidate();
+ }
+}
+
+
+void BreakpointWindow::SetMarkerPos( USHORT nLine, BOOL bError )
+{
+ ShowMarker( FALSE ); // Alten wegzeichen...
+ nMarkerPos = nLine;
+ bErrorMarker = bError;
+ ShowMarker( TRUE ); // Neuen zeichnen...
+ Update();
+}
+
+
+void BreakpointWindow::Scroll( long nHorzScroll, long nVertScroll )
+{
+ nCurYOffset -= nVertScroll;
+ Window::Scroll( nHorzScroll, nVertScroll );
+}
+
diff --git a/basic/source/app/brkpnts.hxx b/basic/source/app/brkpnts.hxx
new file mode 100644
index 000000000000..9150542a9304
--- /dev/null
+++ b/basic/source/app/brkpnts.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * $RCSfile: brkpnts.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SV_WINDOW_HXX //autogen
+#include <vcl/window.hxx>
+#endif
+
+#define MARKER_NOMARKER 0xFFFF
+
+
+class SbModule;
+class BreakpointListe;
+struct Breakpoint;
+class ImageList;
+
+DECLARE_LIST( BreakpointList, Breakpoint* );
+
+class BreakpointWindow : public Window, public BreakpointList
+{
+public:
+ BreakpointWindow( Window *pParent );
+// ~BreakpointWindow();
+
+ void Reset();
+
+ void SetModule( SbModule *pMod );
+ void SetBPsInModule();
+
+ void InsertBreakpoint( USHORT nLine );
+ void ToggleBreakpoint( USHORT nLine );
+ void AdjustBreakpoints( ULONG nLine, BOOL bInserted );
+
+ void LoadBreakpoints( String aFilename );
+ void SaveBreakpoints( String aFilename );
+
+protected:
+ Breakpoint* FindBreakpoint( ULONG nLine );
+
+private:
+ BreakpointListe *pBreakpoints;
+
+private:
+ long nCurYOffset;
+ USHORT nMarkerPos;
+ SbModule* pModule;
+ BOOL bErrorMarker;
+ static ImageList *pImages;
+
+protected:
+ virtual void Paint( const Rectangle& );
+ Breakpoint* FindBreakpoint( const Point& rMousePos );
+ void ShowMarker( BOOL bShow );
+ virtual void MouseButtonDown( const MouseEvent& rMEvt );
+
+public:
+
+// void SetModulWindow( ModulWindow* pWin )
+// { pModulWindow = pWin; }
+
+ void SetMarkerPos( USHORT nLine, BOOL bErrorMarker = FALSE );
+
+ void Scroll( long nHorzScroll, long nVertScroll );
+ long& GetCurYOffset() { return nCurYOffset; }
+};
+
+
+
+
+
+
+
+
diff --git a/basic/source/app/dataedit.hxx b/basic/source/app/dataedit.hxx
new file mode 100644
index 000000000000..5727f157bd37
--- /dev/null
+++ b/basic/source/app/dataedit.hxx
@@ -0,0 +1,155 @@
+/*************************************************************************
+ *
+ * $RCSfile: dataedit.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:08 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef DATAEDIT_HXX
+#define DATAEDIT_HXX
+
+#ifndef _SV_MENU_HXX
+#include <vcl/menu.hxx>
+#endif
+#ifndef _LINK_HXX //autogen
+#include <tools/link.hxx>
+#endif
+#ifndef _SV_GEN_HXX
+#include <tools/gen.hxx>
+#endif
+#ifndef _TEXTDATA_HXX //autogen
+#include <svtools/textdata.hxx>
+#endif
+
+class String;
+class Font;
+
+// Find, Load und Save mssen implementiert werden,
+// die anderen mssen in MemberType existieren
+#define DATA_FUNC_DEF( MemberName, MemberType ) \
+public: \
+ MemberType MemberName; \
+ BOOL Find( const String& rStr ); \
+ BOOL Load( const String& rStr ); \
+ BOOL Save( const String& rStr ); \
+ \
+ void GrabFocus(){ MemberName.GrabFocus(); } \
+ void Show(){ MemberName.Show(); } \
+ void SetPosPixel( const Point& rNewPos ){ MemberName.SetPosPixel(rNewPos); }\
+ void SetSizePixel( const Size& rNewSize ){ MemberName.SetSizePixel(rNewSize); } \
+ Size GetSizePixel(){ return MemberName.GetSizePixel(); } \
+ Point GetPosPixel(){ return MemberName.GetPosPixel(); } \
+ void Update(){ MemberName.Update(); } \
+ void SetFont( const Font& rNewFont ){ MemberName.SetFont(rNewFont); } \
+ \
+ void Delete(); \
+ void Cut(); \
+ void Copy(); \
+ void Paste(); \
+ void Undo(); \
+ void Redo(); \
+ String GetText() const; \
+ void SetText( const String& rStr ); \
+ BOOL HasText() const; \
+ String GetSelected(); \
+ TextSelection GetSelection() const; \
+ void SetSelection( const TextSelection& rSelection ); \
+ USHORT GetLineNr() const; \
+ void ReplaceSelected( const String& rStr ); \
+ BOOL IsModified(); \
+ void SetModifyHdl( Link l );
+
+
+class DataEdit
+{
+public:
+ virtual ~DataEdit(){}
+
+ virtual void Delete()=0;
+ virtual void Cut()=0;
+ virtual void Copy()=0;
+ virtual void Paste()=0;
+
+ virtual void Undo()=0;
+ virtual void Redo()=0;
+
+ virtual BOOL Find( const String& )=0; // Text suchen & markieren
+ virtual BOOL Load( const String& )=0; // Text aus Datei laden
+ virtual BOOL Save( const String& )=0; // Text in Datei speichern
+ virtual String GetSelected()=0;
+ virtual void GrabFocus()=0;
+ virtual TextSelection GetSelection() const=0;
+ virtual void SetSelection( const TextSelection& rSelection )=0;
+ virtual USHORT GetLineNr() const=0;
+ virtual String GetText() const=0;
+ virtual void SetText( const String& rStr )=0;
+ virtual BOOL HasText() const=0; // damit vermeiden wir GetText.Len()
+ virtual void ReplaceSelected( const String& rStr )=0;
+ virtual BOOL IsModified()=0;
+ virtual void SetModifyHdl( Link )=0;
+ virtual void Show()=0;
+ virtual void SetPosPixel( const Point& rNewPos )=0;
+ virtual void SetSizePixel( const Size& rNewSize )=0;
+ virtual Size GetSizePixel()=0;
+ virtual Point GetPosPixel()=0;
+ virtual void Update()=0;
+ virtual void SetFont( const Font& rNewFont )=0;
+
+ virtual void BuildKontextMenu( PopupMenu *&pMenu ){;} // Wer will kann hier eigene Eintrge hinzufgen
+};
+
+#endif
diff --git a/basic/source/app/dialogs.cxx b/basic/source/app/dialogs.cxx
new file mode 100644
index 000000000000..31865100b098
--- /dev/null
+++ b/basic/source/app/dialogs.cxx
@@ -0,0 +1,1064 @@
+/*************************************************************************
+ *
+ * $RCSfile: dialogs.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SOLAR_H
+#include <tools/solar.h>
+#endif
+
+HACK( #define protected public )
+#define protected public // Kleine Schweinerei um an FreeResource ranzukommen
+#ifndef _TOOLS_RC_HXX //autogen
+#include <tools/rc.hxx>
+#endif
+#undef protected
+
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _EDIT_HXX //autogen
+#include <vcl/edit.hxx>
+#endif
+#ifndef _CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _TOOLS_DEBUG_HXX //autogen
+#include <tools/debug.hxx>
+#endif
+#ifndef _SV_FILEDLG_HXX //autogen
+#include <svtools/filedlg.hxx>
+#endif
+#ifndef _STREAM_HXX //autogen
+#include <tools/stream.hxx>
+#endif
+#ifndef _FSYS_HXX //autogen
+#include <tools/fsys.hxx>
+#endif
+#ifndef _SV_CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+#ifndef _SV_SPLITWIN_HXX //autogen
+#include <vcl/splitwin.hxx>
+#endif
+#ifndef _ZFORLIST_HXX //autogen
+#include <svtools/zformat.hxx>
+#endif
+
+#include <svtools/pver.hxx>
+
+// Ohne Includeschutz
+#include <svtools/svtdata.hxx>
+#include <svtools/solar.hrc>
+
+
+#ifndef _BASIC_DISPDEFS_HXX
+#include "dispdefs.hxx"
+#endif
+#include "testtool.hxx"
+#include "dialogs.hxx"
+#include "resids.hrc"
+#include "basic.hrc"
+
+#include "app.hxx"
+
+AboutDialog::AboutDialog( Window* pParent, const ResId& id )
+: ModalDialog( pParent, id )
+, a1( this, ResId( 1 ) )
+, a3( this, ResId( 3 ) )
+, a4( this, ResId( 4 ) )
+, aVersionString( this, ResId( RID_VERSIONSTRING ) )
+//, aIcon( this, ResId( RID_ICON ) )
+, aOk ( this, ResId( RID_OK ) )
+{
+ aVersionString.SetText( ProductVersion::GetMajorVersion().Append( ProductVersion::GetMinorVersion() )
+ .AppendAscii( " BUILD:" ).Append( ProductVersion::GetBuildNumber() ) );
+ FreeResource();
+}
+
+////////////////////////////////////////////////////////////////////
+
+FindDialog::FindDialog( Window* pParent, const ResId& id, String& Text )
+: ModalDialog( pParent, id )
+, aFT1( this, ResId( RID_FIXEDTEXT1 ) )
+, aFind( this, ResId( RID_FIND ) )
+, aOk( this, ResId( RID_OK ) )
+, aCancel( this, ResId( RID_CANCEL ) )
+{
+ FreeResource();
+ pFind = &Text;
+ // Button-Handler:
+ aOk.SetClickHdl( LINK( this, FindDialog, ButtonClick ) );
+ aCancel.SetClickHdl( LINK( this, FindDialog, ButtonClick ) );
+ aFind.SetText( Text );
+}
+
+IMPL_LINK_INLINE_START( FindDialog, ButtonClick, Button *, pB )
+{
+ if( pB == &aOk ) {
+ *pFind = aFind.GetText();
+ EndDialog( TRUE );
+ } else EndDialog( FALSE );
+ return TRUE;
+}
+IMPL_LINK_INLINE_END( FindDialog, ButtonClick, Button *, pB )
+
+ReplaceDialog::ReplaceDialog(Window* pParent, const ResId& id, String& Old, String& New )
+: ModalDialog( pParent, id )
+, aFT1( this, ResId( RID_FIXEDTEXT1 ) )
+, aFT2( this, ResId( RID_FIXEDTEXT2 ) )
+, aFind( this, ResId( RID_FIND ) )
+, aReplace(this, ResId( RID_REPLACE ) )
+, aOk( this, ResId( RID_OK ) )
+, aCancel( this, ResId( RID_CANCEL ) )
+{
+ FreeResource();
+ pFind = &Old;
+ pReplace = &New;
+ // Button-Handler:
+ aOk.SetClickHdl( LINK( this, ReplaceDialog, ButtonClick ) );
+ aCancel.SetClickHdl( LINK( this, ReplaceDialog, ButtonClick ) );
+ aFind.SetText( Old );
+ aReplace.SetText( New );
+}
+
+IMPL_LINK( ReplaceDialog, ButtonClick, Button *, pB )
+{
+ if( pB == &aOk ) {
+ *pFind = aFind.GetText();
+ *pReplace = aReplace.GetText();
+ EndDialog( TRUE );
+ } else EndDialog( FALSE );
+ return TRUE;
+}
+
+////////////////////////////////////////////////////////////////////
+
+ConfEdit::ConfEdit( Window* pParent, USHORT nResText, USHORT nResEdit, USHORT nResButton, const ByteString& aKN )
+: PushButton( pParent, ResId(nResButton) )
+, aText( pParent, ResId(nResText) )
+, aEdit( pParent, ResId(nResEdit) )
+, aKeyName(aKN)
+{
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("Path");
+
+ String aTemp = UniString( aConf.ReadKey( aKeyName ), RTL_TEXTENCODING_UTF8 );
+ aEdit.SetText( aTemp );
+}
+
+void ConfEdit::Save()
+{
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("Path");
+
+ aConf.WriteKey( aKeyName, ByteString( aEdit.GetText(), RTL_TEXTENCODING_UTF8 ) );
+}
+
+void ConfEdit::Click()
+{
+ PathDialog aPD( this );
+ aPD.SetPath( aEdit.GetText() );
+ aPD.Execute();
+ aEdit.SetText( aPD.GetPath() );
+}
+
+
+OptionsDialog::OptionsDialog( Window* pParent, const ResId& aResId )
+: ModelessDialog( pParent, aResId )
+, aTabCtrl( this, ResId( RES_TC_OPTIONS ) )
+, aOK( this, ResId( RID_OK ) )
+, aCancel( this, ResId( RID_CANCEL ) )
+{
+ aTabCtrl.FreeResource();
+ FreeResource();
+ aTabCtrl.SetActivatePageHdl( LINK( this, OptionsDialog, ActivatePageHdl ) );
+ aTabCtrl.SetCurPageId( RID_TP_GEN );
+ ActivatePageHdl( &aTabCtrl );
+
+ aOK.SetClickHdl( LINK( this, OptionsDialog, OKClick ) );
+}
+
+OptionsDialog::~OptionsDialog()
+{
+ for ( USHORT i = 0; i < aTabCtrl.GetPageCount(); i++ )
+ delete aTabCtrl.GetTabPage( aTabCtrl.GetPageId( i ) );
+};
+
+BOOL OptionsDialog::Close()
+{
+ if ( ModelessDialog::Close() )
+ {
+ delete this;
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+
+IMPL_LINK( OptionsDialog, ActivatePageHdl, TabControl *, pTabCtrl )
+{
+ USHORT nId = pTabCtrl->GetCurPageId();
+ // Wenn TabPage noch nicht erzeugt wurde, dann erzeugen
+ if ( !pTabCtrl->GetTabPage( nId ) )
+ {
+ TabPage *pNewTabPage = NULL;
+ switch ( nId )
+ {
+ case RID_TP_SPE:
+ pNewTabPage = new SpecialOptions( pTabCtrl );
+ break;
+ case RID_TP_GEN:
+ pNewTabPage = new GenericOptions( pTabCtrl );
+ break;
+ default: DBG_ERROR( "PageHdl: Unbekannte ID!" );
+ }
+ DBG_ASSERT( pNewTabPage, "Keine Page!" );
+ pTabCtrl->SetTabPage( nId, pNewTabPage );
+ }
+ return 0;
+}
+
+
+
+
+IMPL_LINK( OptionsDialog, OKClick, Button *, pButton )
+{
+ SpecialOptions *pSpecial;
+ pSpecial = (SpecialOptions*)aTabCtrl.GetTabPage( RID_TP_SPE );
+ if ( pSpecial )
+ pSpecial->Save();
+
+ GenericOptions *pGeneric;
+ pGeneric = (GenericOptions*)aTabCtrl.GetTabPage( RID_TP_GEN );
+ if ( pGeneric )
+ pGeneric->Save();
+
+ Close();
+ return 0;
+}
+
+
+SpecialOptions::SpecialOptions( Window* pParent )
+: TabPage( pParent, ResId( RID_TP_SPECIAL ) )
+, aDirs( this, ResId(GB_DIRECTORIES) )
+, aLog( this, LOG_TEXT, LOG_NAME, LOG_SET ,"LogBasisverzeichnis" )
+, aBasis( this, BASIS_TEXT, BASIS_NAME, BASIS_SET ,"Basisverzeichnis" )
+, aHID( this, HID_TEXT, HID_NAME, HID_SET ,"HIDVerzeichnis" )
+, aOther( this, ResId(GB_OTHER) )
+, aTimeoutText( this, ResId(TIMEOUT_TEXT) )
+, aServerTimeout( this, ResId(SERVER_TIMEOUT) )
+, aAutoReload( this, ResId(CB_AUTORELOAD) )
+{
+ FreeResource();
+
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("Misc");
+ ByteString aTemp = aConf.ReadKey( "ServerTimeout", "10000" ); // Vorgabe 1 Minute
+ aServerTimeout.SetTime( Time(aTemp.ToInt32()) );
+
+ aTemp = aConf.ReadKey( "AutoReload", "0" );
+ aAutoReload.Check( aTemp.CompareTo("1") == COMPARE_EQUAL );
+}
+
+
+void SpecialOptions::Save()
+{
+ aLog.Save();
+ aBasis.Save();
+ aHID.Save();
+
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("Misc");
+ aConf.WriteKey( "ServerTimeout", ByteString::CreateFromInt32( aServerTimeout.GetTime().GetTime() ) );
+ aConf.WriteKey( "AutoReload", aAutoReload.IsChecked()?"1":"0" );
+
+ ((BasicApp*)GetpApp())->LoadIniFile();
+}
+
+
+GenericOptions::GenericOptions( Window* pParent )
+: TabPage( pParent, ResId( RID_TP_GENERIC ) )
+, aConf( Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ) )
+
+, aGbArea( this, ResId( RID_GB_AREA ) )
+, aCbArea( this, ResId( RID_CB_AREA ) )
+, aPbNewArea( this, ResId( RID_PB_NEW_AREA ) )
+, aPbDelArea( this, ResId( RID_PD_DEL_AREA ) )
+
+, aGbValue( this, ResId( RID_GB_VALUE ) )
+, aCbValue( this, ResId( RID_CB_VALUE ) )
+, aPbNewValue( this, ResId( RID_PB_NEW_VALUE ) )
+, aPbDelValue( this, ResId( RID_PB_DEL_VALUE ) )
+{
+ FreeResource();
+ DirEntry aDE;
+ aTempConfName = aDE.TempName().GetFull();
+ pTempConf = new Config( aTempConfName );
+ pTempConf->SetGroup("Main");
+
+ LoadData();
+
+ aCbArea.EnableAutocomplete( TRUE );
+ aCbValue.EnableAutocomplete( TRUE );
+
+ aCbArea.SetSelectHdl( LINK( this, GenericOptions, LoadGroup ) );
+
+ aPbNewArea.SetClickHdl( LINK( this, GenericOptions, NewGroup ) );
+ aPbDelArea.SetClickHdl( LINK( this, GenericOptions, DelGroup ) );
+
+ aPbNewValue.SetClickHdl( LINK( this, GenericOptions, NewValue ) );
+ aPbDelValue.SetClickHdl( LINK( this, GenericOptions, DelValue ) );
+
+
+ aCbArea.SetModifyHdl( LINK( this, GenericOptions, CheckButtonsHdl ) );
+ aCbValue.SetModifyHdl( LINK( this, GenericOptions, CheckButtonsHdl ) );
+ aCbValue.SetSelectHdl( LINK( this, GenericOptions, CheckButtonsHdl ) );
+
+}
+
+GenericOptions::~GenericOptions()
+{
+ pTempConf->DeleteGroup("Main");
+ delete pTempConf;
+}
+
+StringList* GenericOptions::GetAllGroups()
+{
+ StringList* pGroups = new StringList();
+ for ( USHORT i = 0 ; i < aConf.GetGroupCount() ; i++ )
+ {
+ String *pGroup = new String( aConf.GetGroupName( i ), RTL_TEXTENCODING_UTF8 );
+ pGroups->Insert( pGroup );
+ }
+ return pGroups;
+}
+
+void GenericOptions::LoadData()
+{
+ StringList* pGroups = GetAllGroups();
+ String* pGroup;
+ while ( pGroup = pGroups->First() )
+ {
+ pGroups->Remove( pGroup );
+ aConf.SetGroup( ByteString( *pGroup, RTL_TEXTENCODING_UTF8 ) );
+ if ( HasKey( aConf, C_KEY_AKTUELL ) )
+ {
+ aCbArea.InsertEntry( *pGroup );
+ }
+ delete pGroup;
+ }
+ aCbArea.SetText( aCbArea.GetEntry( 0 ) );
+ CheckButtons( aCbArea, aPbNewArea, aPbDelArea );
+
+ // Und auch die Daten laden
+ LINK( this, GenericOptions, LoadGroup ).Call( NULL );
+}
+
+
+String GenericOptions::ReadKey( const ByteString &aGroup, const ByteString &aKey )
+{
+ ByteString aGroupKey( aGroup );
+ aGroupKey.Append( aKey );
+ if ( HasKey( *pTempConf, aGroupKey ) )
+ return UniString( pTempConf->ReadKey( aGroupKey ), RTL_TEXTENCODING_UTF8 );
+ else
+ {
+ aConf.SetGroup( aGroup );
+ return UniString( aConf.ReadKey( aKey ), RTL_TEXTENCODING_UTF8 );
+ }
+}
+
+BOOL GenericOptions::HasKey( Config &aConfig, const ByteString &aKey )
+{
+ return ! ( aConfig.ReadKey( aKey ).Len() == 0 && aConfig.ReadKey( aKey, "Default" ).Len() != 0 );
+}
+
+IMPL_LINK( GenericOptions, LoadGroup, ComboBox*, EMPTYARG )
+{
+ String aCurrentValue;
+ String aAllValues;
+
+ if ( aLastGroupName.Len() )
+ { // Werte zwischenspeichern?
+ aCurrentValue = aCbValue.GetText();
+ if ( aCbValue.GetEntryPos( aCurrentValue ) == COMBOBOX_ENTRY_NOTFOUND )
+ { // Dann legen wir mal einen neuen Wert an
+ LINK( this, GenericOptions, NewValue ).Call( NULL );
+ }
+
+ pTempConf->WriteKey( ByteString( aLastGroupName ).Append( C_KEY_AKTUELL ), ByteString( aCurrentValue, RTL_TEXTENCODING_UTF8 ) );
+ USHORT i;
+ for ( i=0 ; i < aCbValue.GetEntryCount() ; i++ )
+ {
+ if ( i ) // ab Entry 1
+ aAllValues += ';';
+ aAllValues += aCbValue.GetEntry( i );
+ }
+ pTempConf->WriteKey( ByteString( aLastGroupName ).Append( C_KEY_ALLE ), ByteString( aAllValues, RTL_TEXTENCODING_UTF8 ) );
+ }
+
+ aCbValue.Clear();
+
+ ByteString aGroupName = ByteString( aCbArea.GetText(), RTL_TEXTENCODING_UTF8 );
+ aCurrentValue = ReadKey( aGroupName, C_KEY_AKTUELL );
+ aAllValues = ReadKey( aGroupName, C_KEY_ALLE );
+
+ xub_StrLen i;
+ for ( i=0 ; i < aAllValues.GetTokenCount() ; i++ )
+ {
+ aCbValue.InsertEntry( aAllValues.GetToken( i ) );
+ }
+ aCbValue.SetText( aCurrentValue );
+
+ aLastGroupName = aGroupName;
+ CheckButtons( aCbArea, aPbNewArea, aPbDelArea );
+ CheckButtons( aCbValue, aPbNewValue, aPbDelValue );
+ return 0;
+}
+
+IMPL_LINK( GenericOptions, DelGroup, Button*, EMPTYARG )
+{
+ String aGroup = aCbArea.GetText();
+ if ( aCbArea.GetEntryPos( aGroup ) != COMBOBOX_ENTRY_NOTFOUND )
+ {
+ aCbArea.RemoveEntry( aGroup );
+ ByteString aByteGroup( aGroup, RTL_TEXTENCODING_UTF8 );
+ pTempConf->WriteKey( C_KEY_DELETE, pTempConf->ReadKey( C_KEY_DELETE ).Append( aByteGroup ) );
+ pTempConf->DeleteKey( ByteString( aByteGroup ).Append( C_KEY_AKTUELL ) );
+ pTempConf->DeleteKey( ByteString( aByteGroup ).Append( C_KEY_ALLE ) );
+ }
+
+ aCbArea.SetText( aCbArea.GetEntry( 0 ) );
+ LINK( this, GenericOptions, LoadGroup ).Call( NULL );
+
+ return 0;
+}
+
+IMPL_LINK( GenericOptions, NewGroup, Button*, EMPTYARG )
+{
+ aCbArea.InsertEntry( aCbArea.GetText() );
+
+ LINK( this, GenericOptions, LoadGroup ).Call( NULL );
+
+ return 0;
+}
+
+IMPL_LINK( GenericOptions, DelValue, Button*, EMPTYARG )
+{
+ String aValue = aCbValue.GetText();
+ if ( aCbValue.GetEntryPos( aValue ) != COMBOBOX_ENTRY_NOTFOUND )
+ {
+ aCbValue.RemoveEntry( aValue );
+ }
+
+ aCbValue.SetText( aCbValue.GetEntry( 0 ) );
+ CheckButtons( aCbValue, aPbNewValue, aPbDelValue );
+ return 0;
+}
+
+IMPL_LINK( GenericOptions, NewValue, Button*, EMPTYARG )
+{
+ aCbValue.InsertEntry( aCbValue.GetText() );
+ CheckButtons( aCbValue, aPbNewValue, aPbDelValue );
+ return 0;
+}
+
+IMPL_LINK( GenericOptions, CheckButtonsHdl, ComboBox*, pCB )
+{
+ if ( pCB == &aCbArea )
+ CheckButtons( aCbArea, aPbNewArea, aPbDelArea );
+ if ( pCB == &aCbValue )
+ CheckButtons( aCbValue, aPbNewValue, aPbDelValue );
+ return 0;
+}
+
+void GenericOptions::CheckButtons( ComboBox &aCB, Button &aNewB, Button &aDelB )
+{
+ aNewB.Enable( aCB.GetEntryPos( aCB.GetText() ) == COMBOBOX_ENTRY_NOTFOUND && aCB.GetText().Len() );
+}
+
+void GenericOptions::Save()
+{
+ xub_StrLen i;
+
+ // Erstmal eventuelle nderungen Speichern
+ LINK( this, GenericOptions, LoadGroup ).Call( NULL );
+
+ // Zuerst alles was wir Gelscht haben raushauen
+ ByteString aDelete = pTempConf->ReadKey( C_KEY_DELETE );
+ for ( i=0 ; i < aDelete.GetTokenCount() ; i++ )
+ {
+ aConf.DeleteGroup( aDelete.GetToken( i ) );
+ }
+
+ // Dann alles aus der Temporren in die Echte ini kopieren.
+ for ( i=0 ; i < aCbArea.GetEntryCount() ; i++ )
+ {
+ ByteString aGroup = ByteString( aCbArea.GetEntry( i ), RTL_TEXTENCODING_UTF8 );
+ ByteString aGroupKeyAktuell( aGroup );
+ aGroupKeyAktuell.Append( C_KEY_AKTUELL );
+ if ( HasKey( *pTempConf, aGroupKeyAktuell ) )
+ {
+ ByteString aCurrentValue = pTempConf->ReadKey( aGroupKeyAktuell );
+ aConf.SetGroup( ByteString( aCbArea.GetEntry( i ), RTL_TEXTENCODING_UTF8 ) );
+ aConf.WriteKey( C_KEY_AKTUELL, aCurrentValue );
+ aConf.WriteKey( C_KEY_ALLE, pTempConf->ReadKey( ByteString( aGroup ).Append( C_KEY_ALLE ) ) );
+ }
+ }
+ aConf.Flush();
+}
+
+
+class TextAndWin : public DockingWindow
+{
+ FixedText *pFt;
+ Window *pWin;
+ Window* pFtOriginalParent;
+ Window* pWinOriginalParent;
+ long nSpace; // Standardabstand
+ BOOL bAlignTop;
+
+public:
+ TextAndWin( Window *pParent, FixedText *pFtP, Window *pWinP, long nSpaceP, BOOL bAlignTopP );
+ ~TextAndWin();
+
+ virtual void Resize();
+};
+
+TextAndWin::TextAndWin( Window *pParent, FixedText *pFtP, Window *pWinP, long nSpaceP, BOOL bAlignTopP )
+: DockingWindow( pParent )
+, pFt( pFtP )
+, pWin( pWinP )
+, nSpace( nSpaceP )
+, bAlignTop( bAlignTopP )
+{
+ pFtOriginalParent = pFt->GetParent();
+ pWinOriginalParent = pWin->GetParent();
+ pFt->SetParent( this );
+ pWin->SetParent( this );
+}
+
+TextAndWin::~TextAndWin()
+{
+ pFt->SetParent( pFtOriginalParent );
+ pWin->SetParent( pWinOriginalParent );
+}
+
+void TextAndWin::Resize()
+{
+ long nTopSpace = bAlignTop ? 0 : nSpace;
+ long nBottomSpace = bAlignTop ? nSpace : 0;
+
+ long nFixedTextOffset;
+ if ( GetOutputSizePixel().Height() < 3 * pFt->GetSizePixel().Height() )
+ {
+ pFt->Hide();
+ nFixedTextOffset = 0;
+ }
+ else
+ {
+ pFt->Show();
+ nFixedTextOffset = pFt->GetSizePixel().Height() + nSpace;
+
+ // FixedText Positionieren
+ pFt->SetPosPixel( Point( 0, nTopSpace ) );
+ }
+
+ // Window Positionieren
+ long nWinPosY = nFixedTextOffset;
+ nWinPosY += nTopSpace;
+ pWin->SetPosPixel( Point( 0, nWinPosY ) );
+
+ // Gre des Window anpassen
+ long nWinHeight = GetOutputSizePixel().Height();
+ nWinHeight -= nWinPosY;
+ nWinHeight -= nBottomSpace;
+ pWin->SetSizePixel( Size( GetOutputSizePixel().Width(), nWinHeight ) );
+}
+
+DisplayHidDlg::DisplayHidDlg( Window * pParent )
+: FloatingWindow( pParent, ResId( IDD_DISPLAY_HID ) )
+, aTbConf( this, ResId( RID_TB_CONF ) )
+, aFtControls( this, ResId( RID_FT_CONTROLS ) )
+, aMlbControls( this, ResId( RID_MLB_CONTROLS ) )
+, aFtSlots( this, ResId( RID_FT_SLOTS ) )
+, aMlbSlots( this, ResId( RID_MLB_SLOTS ) )
+, aPbKopieren( this, ResId( RID_PB_KOPIEREN ) )
+, aPbBenennen( this, ResId( RID_PB_BENENNEN ) )
+, aPbSelectAll( this, ResId( RID_PB_SELECTALL ) )
+, aOKClose( this, ResId( RID_OK_CLOSE ) )
+, nDisplayMode( DH_MODE_KURZNAME | DH_MODE_LANGNAME ) // Falls wir ein altes Office haben diesen Default verwenden
+{
+ FreeResource();
+
+ ResMgr* pRM = CREATERESMGR( svt );
+ ToolBox aOrig( this, ResId( 12345, pRM ) );
+ delete pRM;
+
+ aTbConf.CopyItem( aOrig, 4 );
+ aTbConf.InsertSeparator();
+ aTbConf.CopyItem( aOrig, 5 );
+ aTbConf.CopyItem( aOrig, 6 );
+ aTbConf.CopyItem( aOrig, 7 );
+ aTbConf.SetOutStyle( TOOLBOX_STYLE_FLAT );
+
+#ifndef DEBUG
+ aTbConf.Hide();
+#endif
+
+ pSplit = new SplitWindow( this );
+ pControls = new TextAndWin( pSplit, &aFtControls, &aMlbControls, aMlbControls.GetPosPixel().X(), TRUE );
+ pSlots = new TextAndWin( pSplit, &aFtSlots, &aMlbSlots, aMlbControls.GetPosPixel().X(), FALSE );
+
+ pSplit->SetPosPixel( aFtControls.GetPosPixel() );
+ pSplit->InsertItem( 1, pControls, 70, SPLITWINDOW_APPEND, 0, SWIB_PERCENTSIZE );
+ pSplit->InsertItem( 2, pSlots, 30, SPLITWINDOW_APPEND, 0, SWIB_PERCENTSIZE );
+ pSplit->Show();
+
+ aTbConf.SetBorderStyle( WINDOW_BORDER_NORMAL );
+ aPbKopieren.SetClickHdl( LINK( this, DisplayHidDlg, CopyToClipboard ) );
+ aPbSelectAll.SetClickHdl( LINK( this, DisplayHidDlg, SelectAll ) );
+
+ aMlbControls.SetSelectHdl( LINK( this, DisplayHidDlg, Select ) );
+ aMlbSlots.SetSelectHdl( LINK( this, DisplayHidDlg, Select ) );
+ Select( NULL );
+}
+
+DisplayHidDlg::~DisplayHidDlg()
+{
+ delete pControls;
+ delete pSlots;
+ delete pSplit;
+}
+
+IMPL_LINK( DisplayHidDlg, CopyToClipboard, void*, EMPTYARG )
+{
+ String aSammel;
+ USHORT i;
+
+ for ( i=0 ; i < aMlbControls.GetSelectEntryCount() ; i++ )
+ {
+ if ( aSammel.Len() )
+ aSammel += '\n';
+ aSammel += aMlbControls.GetSelectEntry( i );
+ }
+ for ( i=0 ; i < aMlbSlots.GetSelectEntryCount() ; i++ )
+ {
+ if ( aSammel.Len() )
+ aSammel += '\n';
+ aSammel += aMlbSlots.GetSelectEntry( i );
+ }
+ Clipboard::Clear();
+ Clipboard::CopyString( aSammel );
+ return 0;
+}
+
+IMPL_LINK( DisplayHidDlg, SelectAll, PushButton*, pButton )
+{
+ if ( pButton->GetState() != STATE_CHECK )
+ {
+ USHORT i;
+ for ( i=0 ; i < aMlbControls.GetEntryCount() ; i++ )
+ aMlbControls.SelectEntryPos( i );
+ for ( i=0 ; i < aMlbSlots.GetEntryCount() ; i++ )
+ aMlbSlots.SelectEntryPos( i );
+ }
+ else
+ {
+ aMlbControls.SetNoSelection();
+ aMlbControls.Invalidate();
+ aMlbSlots.SetNoSelection();
+ aMlbSlots.Invalidate();
+ }
+ Select( NULL );
+ return 0;
+}
+
+IMPL_LINK( DisplayHidDlg, Select, void*, EMPTYARG )
+{
+ if ( !aMlbControls.GetSelectEntryCount() && !aMlbSlots.GetSelectEntryCount() )
+ aPbSelectAll.SetState( STATE_NOCHECK );
+ else if ( aMlbControls.GetSelectEntryCount() == aMlbControls.GetEntryCount()
+ && aMlbSlots.GetSelectEntryCount() == aMlbSlots.GetEntryCount() )
+ aPbSelectAll.SetState( STATE_CHECK );
+ else
+ aPbSelectAll.SetState( STATE_DONTKNOW );
+ return 0;
+}
+
+void DisplayHidDlg::AddData( WinInfoRec* pWinInfo )
+{
+ if ( pWinInfo->bIsReset )
+ {
+ aMlbControls.Clear();
+ aMlbSlots.Clear();
+
+ if ( pWinInfo->nUId & DH_MODE_DATA_VALID ) // kein altes Office
+ nDisplayMode = pWinInfo->nUId; // Wird im Reset zur bermittlung des Modus verwendet
+
+ return;
+ }
+
+ String aMsg;
+ if ( ( nDisplayMode & DH_MODE_KURZNAME ) )
+ {
+ if ( pWinInfo->aKurzname.Len() > 0 )
+ aMsg += pWinInfo->aKurzname;
+ else
+ {
+ aMsg.AppendAscii( "--" );
+ aMsg += String::CreateFromInt64( pWinInfo->nUId );
+ aMsg.AppendAscii( ": " );
+ aMsg += pWinInfo->aRName;
+ }
+ aMsg.Expand(20);
+ }
+ else
+ {
+ aMsg += String::CreateFromInt64( pWinInfo->nUId );
+ aMsg.Expand(13);
+ }
+ aMsg.AppendAscii( " " ); // Mindestens 3 Blanks sollten schon sein.
+
+ if ( nDisplayMode & DH_MODE_LANGNAME )
+ {
+ if ( pWinInfo->aLangname.Len() > 0 )
+ aMsg += pWinInfo->aLangname;
+ else
+ aMsg += String( ResId( IDS_NO_LONGNAME ) );
+ }
+
+ aMlbControls.InsertEntry( aMsg );
+
+
+ // Haben wir noch einen Slotname?
+ if ( ( nDisplayMode & DH_MODE_KURZNAME ) && pWinInfo->aSlotname.Len() > 0 )
+ {
+ aMsg = pWinInfo->aSlotname;
+ aMsg.Expand(20);
+ aMsg.AppendAscii( " " ); // Mindestens 3 Blanks sollten schon sein.
+
+ if ( nDisplayMode & DH_MODE_LANGNAME )
+ {
+ if ( pWinInfo->aLangname.Len() > 0 )
+ aMsg += pWinInfo->aLangname;
+ else
+ aMsg += String( ResId( IDS_NO_LONGNAME ) );
+ }
+
+ aMlbSlots.InsertEntry( aMsg );
+ }
+}
+
+void DisplayHidDlg::Resize()
+{
+
+ if ( IsRollUp() )
+ {
+ // Wir wollen nur die Toolbox sehen
+ SetOutputSizePixel( aTbConf.GetSizePixel() );
+ }
+ else
+ {
+// SetUpdateMode( FALSE );
+
+ // Minimalgre
+ Size aSize( GetOutputSizePixel() );
+ aSize.Width() = max( aSize.Width(), aOKClose.GetSizePixel().Width() * 3 );
+ aSize.Height() = max( aSize.Height(), aOKClose.GetSizePixel().Height() * 8 );
+ SetOutputSizePixel( aSize );
+
+ // Standardabstand
+ long nSpace = pSplit->GetPosPixel().X();
+
+ // ToolBox Breite anpassen
+ aTbConf.SetSizePixel( Size ( GetSizePixel().Width(), aTbConf.CalcWindowSizePixel().Height() ) );
+ aTbConf.SetSizePixel( Size() ); // Vorerst verstecken!
+
+ // SplitWindow Positionieren
+ pSplit->SetPosPixel( Point( nSpace, nSpace + aTbConf.GetPosPixel().Y() + aTbConf.GetSizePixel().Height() ) );
+
+ // Breite des SplitWindows bestimmen
+ long nSplitWidth = GetSizePixel().Width();
+ nSplitWidth -= aPbBenennen.GetSizePixel().Width();
+ nSplitWidth -= 3 * nSpace; // Die Zwischenrume
+ nSplitWidth -= nSpace / 2; // Etwas mehr Platz am rechten Rand
+
+ // Hhe des SplitWindows bestimmen
+ long nSplitHeight = GetOutputSizePixel().Height();
+ nSplitHeight -= pSplit->GetPosPixel().Y();
+ nSplitHeight -= nSpace; // der Abstand unten
+
+ // Gre des SplitWindows setzen
+ pSplit->SetSizePixel( Size( nSplitWidth, nSplitHeight ) );
+
+ Point aPos;
+
+ // Button "Kopieren" Positionieren
+ aPos = pSplit->GetPosPixel();
+ aPos.Move( nSplitWidth, 0 );
+ aPos.Move( nSpace, 0 );
+ aPbKopieren.SetPosPixel( aPos );
+
+ // Button "Alles Whlen" gleich darunter positionieren
+ aPos.Move( 0, aPbKopieren.GetSizePixel().Height() );
+ aPos.Move( 0, nSpace );
+ aPbSelectAll.SetPosPixel( aPos );
+
+ // Button "Benennen" gleich darunter positionieren
+ aPos.Move( 0, aPbSelectAll.GetSizePixel().Height() );
+ aPos.Move( 0, nSpace );
+ aPbBenennen.SetPosPixel( aPos );
+
+ // Und zum Schlu noch den "Close" Button positionieren
+ aPos = pSplit->GetPosPixel();
+ aPos.Move( nSpace, -aOKClose.GetSizePixel().Height() );
+ aPos.Move( pSplit->GetSizePixel().Width(), pSplit->GetSizePixel().Height() );
+ aOKClose.SetPosPixel( aPos );
+
+// SetUpdateMode( TRUE );
+// Invalidate();
+ }
+ FloatingWindow::Resize();
+}
+
+
+VarEditDialog::VarEditDialog( Window * pParent, SbxVariable *pPVar )
+: ModelessDialog( pParent, ResId( IDD_EDIT_VAR ) )
+, aFixedTextRID_FT_NAME( this, ResId( RID_FT_NAME ) )
+, aFixedTextRID_FT_CONTENT( this, ResId( RID_FT_CONTENT ) )
+, aFixedTextRID_FT_NEW_CONTENT( this, ResId( RID_FT_NEW_CONTENT ) )
+, aFixedTextRID_FT_NAME_VALUE( this, ResId( RID_FT_NAME_VALUE ) )
+, aFixedTextRID_FT_CONTENT_VALUE( this, ResId( RID_FT_CONTENT_VALUE ) )
+
+, aRadioButtonRID_RB_NEW_BOOL_T( this, ResId( RID_RB_NEW_BOOL_T ) )
+, aRadioButtonRID_RB_NEW_BOOL_F( this, ResId( RID_RB_NEW_BOOL_F ) )
+, aNumericFieldRID_NF_NEW_INTEGER( this, ResId( RID_NF_NEW_INTEGER ) )
+, aNumericFieldRID_NF_NEW_LONG( this, ResId( RID_NF_NEW_LONG ) )
+, aEditRID_ED_NEW_STRING( this, ResId( RID_ED_NEW_STRING ) )
+
+, aOKButtonRID_OK( this, ResId( RID_OK ) )
+, aCancelButtonRID_CANCEL( this, ResId( RID_CANCEL ) )
+, pVar( pPVar )
+{
+ aFixedTextRID_FT_NAME_VALUE.SetText( pVar->GetName() );
+ aFixedTextRID_FT_CONTENT_VALUE.SetText( pVar->GetString() );
+
+ SbxDataType eType = pVar->GetType();
+ if ( ( eType & ( SbxVECTOR | SbxARRAY | SbxBYREF )) == 0 )
+ {
+ switch ( eType )
+ {
+ case SbxBOOL:
+ aRadioButtonRID_RB_NEW_BOOL_T.Show();
+ aRadioButtonRID_RB_NEW_BOOL_F.Show();
+ if ( pVar->GetBool() )
+ aRadioButtonRID_RB_NEW_BOOL_T.Check();
+ else
+ aRadioButtonRID_RB_NEW_BOOL_F.Check();
+ break;
+// case SbxCURRENCY:
+// case SbxDATE:
+ break;
+ case SbxINTEGER:
+ aNumericFieldRID_NF_NEW_INTEGER.Show();
+ aNumericFieldRID_NF_NEW_INTEGER.SetText( pVar->GetString() );
+ aNumericFieldRID_NF_NEW_INTEGER.Reformat();
+ break;
+ case SbxLONG:
+ aNumericFieldRID_NF_NEW_LONG.Show();
+ aNumericFieldRID_NF_NEW_LONG.SetText( pVar->GetString() );
+ aNumericFieldRID_NF_NEW_LONG.Reformat();
+ // Mssen hart gesetzt werden, da der Rsc Compiler damit nicht klar kommt.
+ aNumericFieldRID_NF_NEW_LONG.SetMin( -aNumericFieldRID_NF_NEW_LONG.GetMax()-1 );
+ aNumericFieldRID_NF_NEW_LONG.SetFirst( -aNumericFieldRID_NF_NEW_LONG.GetLast()-1 );
+ break;
+// case SbxOBJECT: // kann nicht editiert werden
+ break;
+ case SbxSINGLE:
+ case SbxDOUBLE:
+ case SbxSTRING:
+ case SbxVARIANT: // Taucht wohl auch nicht auf. stattdessen SbxEMPTY
+ case SbxEMPTY:
+ aEditRID_ED_NEW_STRING.Show();
+ aEditRID_ED_NEW_STRING.SetText( pVar->GetString() );
+ break;
+ }
+ }
+
+
+ aOKButtonRID_OK.SetClickHdl( LINK( this, VarEditDialog, OKClick ) );
+}
+
+
+IMPL_LINK( VarEditDialog, OKClick, Button *, pButton )
+{
+ BOOL bWasError = SbxBase::IsError(); // Da eventuell ein Fehler geschmissen wird.
+
+
+ SbxDataType eType = pVar->GetType();
+/*
+Boolean
+Currency
+Date
+Double
+Integer
+Long
+Object
+Single
+String
+Variant
+
+
+atof
+
+ ecvt
+ f
+ gcvt
+
+SvNumberformat::
+ static double StringToDouble( const xub_Unicode* pStr,
+ const International& rIntl,
+ int& nErrno,
+ const xub_Unicode** ppEnd = NULL );
+ // Konvertiert analog strtod einen dezimalen String in einen double,
+ // Dezimalseparator und Tausenderseparator werden aus International
+ // genommen, fuehrende Leerzeichen werden weggeparst.
+ // Ist ppEnd!=NULL wird *ppEnd hinter das Weggeparste gesetzt.
+ // Enthaelt pStr nur den zu parsenden String, ist also bei Erfolg
+ // **ppEnd=='\0' und *ppEnd-pStr==strlen(pStr).
+ // Bei Ueberlauf wird fVal=+/-HUGE_VAL gesetzt, bei Unterlauf 0,
+ // nErrno wird in diesen Faellen auf ERANGE gesetzt, sonst 0.
+ // "+/-1.#INF" werden als +/-HUGE_VAL erkannt.
+
+ */
+
+
+
+ String aContent( aEditRID_ED_NEW_STRING.GetText() );
+ BOOL bError = FALSE;
+ switch ( eType )
+ {
+ case SbxBOOL:
+ pVar->PutBool( aRadioButtonRID_RB_NEW_BOOL_T.IsChecked() );
+ break;
+// case SbxCURRENCY:
+// pVar->PutCurrency( aContent );
+ break;
+// case SbxDATE:
+// pVar->PutDate( aContent );
+ break;
+ case SbxINTEGER:
+ pVar->PutInteger( aNumericFieldRID_NF_NEW_INTEGER.GetValue() );
+ break;
+ case SbxLONG:
+ pVar->PutLong( aNumericFieldRID_NF_NEW_LONG.GetValue() );
+ break;
+ case SbxDOUBLE:
+ case SbxSINGLE:
+ bError = !pVar->PutStringExt( aContent );
+ break;
+ case SbxSTRING:
+ pVar->PutString( aContent );
+ break;
+ case SbxVARIANT:
+ case SbxEMPTY:
+ bError = !pVar->PutStringExt( aContent );
+ break;
+ }
+
+
+// pVar->PutStringExt( aEditRID_ED_NEW_STRING.GetText() );
+ if ( !bWasError && SbxBase::IsError() )
+ {
+ bError = TRUE;
+ SbxBase::ResetError();
+ }
+
+ if ( bError )
+ {
+// ErrorBox( this, WB_OK | WB_DEF_OK, "Der Wert ist ungltig und kann daher nicht gesetzt werden" ).Execute();
+ ErrorBox( this, ResId( IDS_INVALID_VALUE ) ).Execute();
+ return 1;
+ }
+
+// if ( aEditRID_ED_NEW_STRING.GetText().Compare( pVar->GetString() ) != COMPARE_EQUAL )
+// {
+// aFixedTextRID_FT_CONTENT_VALUE.SetText( pVar->GetString() );
+// aEditRID_ED_NEW_STRING.SetText( pVar->GetString() );
+// return 1;
+// }
+
+ Close();
+ return 0;
+}
+
+
+
diff --git a/basic/source/app/dialogs.hxx b/basic/source/app/dialogs.hxx
new file mode 100644
index 000000000000..ab98752d2741
--- /dev/null
+++ b/basic/source/app/dialogs.hxx
@@ -0,0 +1,307 @@
+/*************************************************************************
+ *
+ * $RCSfile: dialogs.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DIALOGS_HXX
+#define _DIALOGS_HXX
+
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _EDIT_HXX //autogen
+#include <vcl/edit.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_TABDLG_HXX //autogen
+#include <vcl/tabdlg.hxx>
+#endif
+#ifndef _SV_TABCTRL_HXX //autogen
+#include <vcl/tabctrl.hxx>
+#endif
+#ifndef _SV_TABPAGE_HXX //autogen
+#include <vcl/tabpage.hxx>
+#endif
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SV_CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+#ifndef _TOOLS_LIST_HXX
+#include <tools/list.hxx>
+#endif
+#ifndef _SV_LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_FLOATWIN_HXX //autogen
+#include <vcl/floatwin.hxx>
+#endif
+#ifndef _SV_TOOLBOX_HXX //autogen
+#include <vcl/toolbox.hxx>
+#endif
+
+class SbxVariable;
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+class AboutDialog : public ModalDialog {
+ FixedText a1,a3,a4,aVersionString;
+ OKButton aOk;
+// FixedIcon aIcon;
+public:
+ AboutDialog (Window*, const ResId&);
+};
+
+class FindDialog : public ModalDialog {
+ FixedText aFT1;
+ Edit aFind;
+ OKButton aOk;
+ CancelButton aCancel;
+ String* pFind;
+ DECL_LINK( ButtonClick, Button * );
+public:
+ FindDialog (Window*, const ResId&, String&);
+};
+
+class ReplaceDialog : public ModalDialog {
+ FixedText aFT1;
+ FixedText aFT2;
+ Edit aFind;
+ Edit aReplace;
+ OKButton aOk;
+ CancelButton aCancel;
+ String* pFind;
+ String* pReplace;
+ DECL_LINK( ButtonClick, Button * );
+public:
+ ReplaceDialog (Window*, const ResId&, String&, String&);
+};
+
+class ConfEdit : public PushButton
+{
+ FixedText aText;
+ ByteString aKeyName;
+ Edit aEdit;
+public:
+ ConfEdit( Window* pParent, USHORT nResText, USHORT nResEdit, USHORT nResButton, const ByteString& aKN );
+ void Save();
+ void Click();
+};
+
+
+class OptionsDialog : public ModelessDialog
+{
+private:
+ TabControl aTabCtrl;
+
+ OKButton aOK;
+ CancelButton aCancel;
+ DECL_LINK( OKClick, Button * );
+
+public:
+ OptionsDialog( Window* pParent, const ResId& );
+ ~OptionsDialog();
+ virtual BOOL Close();
+
+
+ DECL_LINK( ActivatePageHdl, TabControl * );
+};
+
+class SpecialOptions : public TabPage
+{
+ GroupBox aDirs;
+ ConfEdit aLog;
+ ConfEdit aBasis;
+ ConfEdit aHID;
+ GroupBox aOther;
+ FixedText aTimeoutText;
+ TimeField aServerTimeout;
+ CheckBox aAutoReload;
+
+public:
+ SpecialOptions( Window* );
+ void Save();
+};
+
+
+DECLARE_LIST( StringList, String * );
+#define C_KEY_ALLE CByteString("Alle")
+#define C_KEY_AKTUELL CByteString("Aktuell")
+#define C_KEY_DELETE CByteString("Deleted Groups")
+
+class GenericOptions : public TabPage
+{
+ GroupBox aGbArea;
+ ComboBox aCbArea;
+ PushButton aPbNewArea;
+ PushButton aPbDelArea;
+
+ GroupBox aGbValue;
+ ComboBox aCbValue;
+ PushButton aPbNewValue;
+ PushButton aPbDelValue;
+
+ Config aConf;
+ String aTempConfName;
+ Config *pTempConf;
+ ByteString aLastGroupName;
+
+ String ReadKey( const ByteString &aGroup, const ByteString &aKey );
+ BOOL HasKey( Config &aConfig, const ByteString &aKey );
+
+ void LoadValues();
+
+ StringList* GetAllGroups();
+ void LoadData();
+
+ DECL_LINK( LoadGroup, ComboBox* );
+ DECL_LINK( DelGroup, Button* );
+ DECL_LINK( NewGroup, Button* );
+ DECL_LINK( DelValue, Button* );
+ DECL_LINK( NewValue, Button* );
+ DECL_LINK( CheckButtonsHdl, ComboBox* );
+
+ void CheckButtons( ComboBox &aCB, Button &aNewB, Button &aDelB );
+
+public:
+ GenericOptions( Window* );
+ ~GenericOptions();
+ void Save();
+};
+
+
+struct WinInfoRec;
+class SplitWindow;
+
+class DisplayHidDlg : public FloatingWindow
+{
+protected:
+ ToolBox aTbConf;
+ FixedText aFtControls;
+ MultiListBox aMlbControls;
+ FixedText aFtSlots;
+ MultiListBox aMlbSlots;
+ PushButton aPbKopieren;
+ PushButton aPbBenennen;
+ PushButton aPbSelectAll;
+ OKButton aOKClose;
+
+ DockingWindow* pControls;
+ DockingWindow* pSlots;
+ SplitWindow *pSplit;
+
+ ULONG nDisplayMode;
+
+ DECL_LINK( Select, void* );
+ DECL_LINK( SelectAll, PushButton* );
+ DECL_LINK( CopyToClipboard, void* );
+
+public:
+ DisplayHidDlg( Window * pParent );
+ virtual ~DisplayHidDlg();
+
+ virtual void Resize();
+
+ void AddData( WinInfoRec* pWinInfo );
+
+};
+
+
+class VarEditDialog : public ModelessDialog
+{
+protected:
+ FixedText aFixedTextRID_FT_NAME;
+ FixedText aFixedTextRID_FT_CONTENT;
+ FixedText aFixedTextRID_FT_NEW_CONTENT;
+ FixedText aFixedTextRID_FT_NAME_VALUE;
+ FixedText aFixedTextRID_FT_CONTENT_VALUE;
+
+ RadioButton aRadioButtonRID_RB_NEW_BOOL_T;
+ RadioButton aRadioButtonRID_RB_NEW_BOOL_F;
+ NumericField aNumericFieldRID_NF_NEW_INTEGER;
+ NumericField aNumericFieldRID_NF_NEW_LONG;
+ Edit aEditRID_ED_NEW_STRING;
+
+ OKButton aOKButtonRID_OK;
+ CancelButton aCancelButtonRID_CANCEL;
+
+ SbxVariable *pVar;
+
+ DECL_LINK( OKClick, Button * );
+
+// BOOL bCompare = FALSE;
+// String aCompareString;
+
+public:
+ VarEditDialog( Window * pParent, SbxVariable *pPVar );
+};
+
+
+#endif
diff --git a/basic/source/app/makefile.mk b/basic/source/app/makefile.mk
new file mode 100644
index 000000000000..8150a9e7cff8
--- /dev/null
+++ b/basic/source/app/makefile.mk
@@ -0,0 +1,164 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (the "License"); You may not use this file
+# except in compliance with the License. You may obtain a copy of the
+# License at http://www.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=BASIC
+TARGET=app
+
+# --- Settings ------------------------------------------------------------
+
+.INCLUDE : svpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+
+# --- Allgemein ------------------------------------------------------------
+
+.INCLUDE : $(UPD)minor.mk
+RSCUPDVER=$(RSCREVISION)SV$(UPD)$(UPDMINOR)
+
+
+CXXFILES = \
+ ttstrhlp.cxx \
+ ttbasic.cxx \
+ basicrt.cxx \
+ processw.cxx \
+ process.cxx \
+ brkpnts.cxx \
+ app.cxx \
+ mybasic.cxx \
+ status.cxx \
+ printer.cxx \
+ appwin.cxx \
+ appedit.cxx \
+ appbased.cxx \
+ apperror.cxx \
+ textedit.cxx \
+ msgedit.cxx \
+ dialogs.cxx \
+ comm_bas.cxx \
+ testbasi.cxx
+
+
+OBJFILES = \
+ $(OBJ)$/ttstrhlp.obj \
+ $(OBJ)$/ttbasic.obj \
+ $(OBJ)$/basicrt.obj \
+ $(OBJ)$/processw.obj \
+ $(OBJ)$/process.obj \
+ $(OBJ)$/brkpnts.obj \
+ $(OBJ)$/app.obj \
+ $(OBJ)$/mybasic.obj \
+ $(OBJ)$/status.obj \
+ $(OBJ)$/printer.obj \
+ $(OBJ)$/appwin.obj \
+ $(OBJ)$/appedit.obj \
+ $(OBJ)$/appbased.obj \
+ $(OBJ)$/apperror.obj \
+ $(OBJ)$/textedit.obj \
+ $(OBJ)$/msgedit.obj \
+ $(OBJ)$/dialogs.obj \
+ $(OBJ)$/comm_bas.obj \
+ $(SLO)$/sbintern.obj
+
+
+SRCFILES = \
+ basic.src \
+ ttmsg.src \
+ basmsg.src \
+ svtmsg.src \
+ testtool.src
+
+LIBTARGET = NO
+
+LIB1TARGET=$(LB)$/app.lib
+LIB1ARCHIV=$(LB)$/libapp.a
+LIB1OBJFILES = \
+ $(OBJ)$/ttstrhlp.obj \
+ $(OBJ)$/basicrt.obj \
+ $(OBJ)$/processw.obj \
+ $(OBJ)$/process.obj \
+ $(OBJ)$/brkpnts.obj \
+ $(OBJ)$/app.obj \
+ $(OBJ)$/mybasic.obj \
+ $(OBJ)$/status.obj \
+ $(OBJ)$/printer.obj \
+ $(OBJ)$/appwin.obj \
+ $(OBJ)$/appedit.obj \
+ $(OBJ)$/appbased.obj \
+ $(OBJ)$/apperror.obj \
+ $(OBJ)$/textedit.obj \
+ $(OBJ)$/msgedit.obj \
+ $(OBJ)$/dialogs.obj \
+ $(OBJ)$/comm_bas.obj \
+ $(SLO)$/sbintern.obj
+
+.IF "$(depend)" == ""
+
+ALL: $(LB)$/app.lib \
+ ALLTAR
+
+.ENDIF
+
+# --- Targets ------------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/basic/source/app/msgedit.cxx b/basic/source/app/msgedit.cxx
new file mode 100644
index 000000000000..6de5e44a892c
--- /dev/null
+++ b/basic/source/app/msgedit.cxx
@@ -0,0 +1,858 @@
+/*************************************************************************
+ *
+ * $RCSfile: msgedit.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+/*************************************************************************
+File Versions so far:
+No Version Initial Implementation without Version Information
+Version 2 changed order of entries(New Entries at the end)
+Version 3 Changed Charset from CHARSET_IBMPC to RTL_TEXTENCODING_UTF8
+
+*************************************************************************/
+#ifndef _INTN_HXX //autogen
+#include <tools/intn.hxx>
+#endif
+#ifndef _TIME_HXX //autogen
+#include <tools/time.hxx>
+#endif
+#ifndef _STREAM_HXX //autogen
+#include <tools/stream.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SOUND_HXX //autogen
+#include <vcl/sound.hxx>
+#endif
+#ifndef _FSYS_HXX //autogen
+#include <tools/fsys.hxx>
+#endif
+#ifndef _CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+#ifndef NOOLDSV //autogen
+#include <vcl/system.hxx>
+#endif
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+#ifndef _SV_SYSTEM_HXX
+#include <vcl/system.hxx>
+#endif
+
+#include "basic.hrc"
+#include "msgedit.hxx"
+#include "app.hxx"
+#include "appbased.hxx"
+#include "basmsg.hrc"
+
+#define WARNING_PREFIX String( ResId( S_WARNING_PREFIX ) )
+#define VERSION_STRING CUniString("File Format Version: ")
+#define THIS_VERSION 2
+
+#define LOGTYPE( pEntry ) ((pEntry && pEntry->GetUserData())?((TTDebugData*)pEntry->GetUserData())->aLogType:LOG_ERROR)
+
+MsgEdit::MsgEdit( AppWin* pParent, BasicFrame *pBF, const WinBits& aBits )
+: aEditTree( pParent, pBF, aBits | WB_HASBUTTONS | WB_HASLINES | WB_HASBUTTONSATROOT )
+, pBasicFrame(pBF)
+, pCurrentRun(NULL)
+, pCurrentTestCase(NULL)
+, pCurrentError(NULL)
+, nVersion(0)
+, bFileLoading(FALSE)
+, bModified(FALSE)
+, pAppWin( pParent )
+{
+ SetFont( System::GetStandardFont(STDFONT_FIXED) );
+ aEditTree.SetNodeBitmaps( Bitmap( ResId (MBP_PLUS) ), Bitmap( ResId (MBP_MINUS) ) );
+ aEditTree.SetSelectionMode( MULTIPLE_SELECTION );
+ if ( aEditTree.GetModel()->GetSortMode() != SortNone )
+ aEditTree.GetModel()->SetSortMode( SortNone );
+
+ pParent->bHasFile = Load( pParent->GetText() );
+}
+
+MsgEdit::~MsgEdit()
+{}
+
+#define ADD_TTDEBUGDATA( aLBoxEntry ) \
+ { \
+ TTDebugData *pData = new TTDebugData; \
+ *pData = aDebugData; \
+ aLBoxEntry->SetUserData( pData ); \
+ } \
+
+
+void MsgEdit::AddAnyMsg( TTLogMsg *LogMsg )
+{
+ if ( LogMsg->aDebugData.aFilename.Copy(0,2).CompareToAscii( "--" ) == COMPARE_EQUAL )
+ LogMsg->aDebugData.aFilename.Erase(0,2);
+ xub_StrLen nPos;
+ LogMsg->aDebugData.aMsg.ConvertLineEnd();
+ if ( (nPos = LogMsg->aDebugData.aMsg.Search( CUniString("\n").ConvertLineEnd() )) != STRING_NOTFOUND )
+ {
+ xub_StrLen nSysLineEndLen = CUniString("\n").ConvertLineEnd().Len();
+ String aLastPart = LogMsg->aDebugData.aMsg.Copy( nPos+nSysLineEndLen );
+ LogMsg->aDebugData.aMsg.Erase( nPos );
+ AddAnyMsg( LogMsg );
+ LogMsg->aDebugData.aMsg = aLastPart;
+ AddAnyMsg( LogMsg );
+ }
+ else
+ {
+ String aUILogMsg( pBasicFrame->GenRealString( LogMsg->aDebugData.aMsg ) );
+ switch ( LogMsg->aDebugData.aLogType )
+ {
+ case LOG_RUN:
+ {
+ if ( LogMsg->aDebugData.aMsg.Len() == 0 )
+ {
+ LogMsg->aDebugData.aMsg = GEN_RES_STR2( S_PROG_START,
+ GetpApp()->GetAppInternational().GetDate(Date()),
+ GetpApp()->GetAppInternational().GetTime(Time(),FALSE) );
+ aUILogMsg = pBasicFrame->GenRealString( LogMsg->aDebugData.aMsg );
+ }
+ AddRun( aUILogMsg, LogMsg->aDebugData ); break;
+ }
+ case LOG_TEST_CASE: AddTestCase( aUILogMsg, LogMsg->aDebugData ); break;
+ case LOG_ERROR: AddError( aUILogMsg, LogMsg->aDebugData ); break;
+ case LOG_CALL_STACK:AddCallStack( aUILogMsg, LogMsg->aDebugData ); break;
+ case LOG_MESSAGE: AddMessage( aUILogMsg, LogMsg->aDebugData ); break;
+ case LOG_WARNING: AddWarning( aUILogMsg, LogMsg->aDebugData ); break;
+ case LOG_ASSERTION: AddAssertion( aUILogMsg, LogMsg->aDebugData ); break;
+ }
+
+ if ( !bFileLoading )
+ { // Kommt vom Testtool und mu gleich geschrieben werden.
+ BOOL bFileWasChanged = pAppWin->DiskFileChanged( SINCE_LAST_LOAD );
+
+ DBG_ASSERT( aLogFileName == LogMsg->aLogFileName, "Logging to different logfile as before" );
+ SvFileStream aStrm( LogMsg->aLogFileName, STREAM_STD_WRITE );
+ String aLogMsg = Impl_MakeSaveText( LogMsg->aDebugData ).AppendAscii("\n");
+ if( aStrm.IsOpen() )
+ {
+ aLogMsg.ConvertLineEnd(LINEEND_CRLF);
+ aStrm.Seek(STREAM_SEEK_TO_END);
+ aStrm << ByteString( aLogMsg, RTL_TEXTENCODING_UTF8 ).GetBuffer();
+ aStrm.Close();
+ }
+ if ( !bFileWasChanged )
+ pAppWin->UpdateFileInfo( HAS_BEEN_LOADED );
+ }
+ }
+}
+
+void MsgEdit::AddRun( String aMsg, TTDebugData aDebugData )
+{
+ if ( !bFileLoading || ( bFileLoading && nVersion >= 2 ) )
+ pCurrentRun = aEditTree.InsertEntry( aMsg, NULL, FALSE, 0 );
+ else // Erstes Dateiformat
+ pCurrentRun = aEditTree.InsertEntry( aMsg ); // und damit an Ende!
+
+ aEditTree.ShowEntry( pCurrentRun );
+ pCurrentTestCase = NULL;
+ pCurrentError = NULL;
+ aDebugData.aLogType = LOG_RUN; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pCurrentRun );
+}
+
+void MsgEdit::AddTestCase( String aMsg, TTDebugData aDebugData )
+{
+ if ( pCurrentRun )
+ {
+ if ( aMsg.Len() == 0 ) // Am Ende des Testcase
+ {
+ pCurrentTestCase = NULL;
+ }
+ else
+ {
+ pCurrentTestCase = aEditTree.InsertEntry( aMsg, pCurrentRun );
+ aEditTree.ShowEntry( pCurrentTestCase );
+ aDebugData.aLogType = LOG_TEST_CASE; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pCurrentTestCase );
+ }
+ }
+ pCurrentError = NULL;
+}
+
+void MsgEdit::AddError( String aMsg, TTDebugData aDebugData )
+{
+ if ( !pCurrentTestCase )
+ {
+ TTLogMsg aLogMsg;
+ aLogMsg.aDebugData = aDebugData;
+ aLogMsg.aDebugData.aMsg = GEN_RES_STR0( S_ERROR_OUTSIDE_TESTCASE );
+ aLogMsg.aDebugData.aLogType = LOG_TEST_CASE;
+ aLogMsg.aLogFileName = aLogFileName;
+ AddAnyMsg( &aLogMsg );
+ }
+ if ( pCurrentTestCase )
+ {
+ pCurrentError = aEditTree.InsertEntry( aMsg, pCurrentTestCase );
+ aEditTree.ShowEntry( pCurrentError );
+ aDebugData.aLogType = LOG_ERROR; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pCurrentError );
+ }
+}
+
+void MsgEdit::AddCallStack( String aMsg, TTDebugData aDebugData )
+{
+ DBG_ASSERT( pCurrentError, "Callstack ohne CurrentError im Journal" );
+ if ( pCurrentError )
+ {
+ SvLBoxEntry *pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentError ,0 );
+ aDebugData.aLogType = LOG_CALL_STACK; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pThisEntry );
+ }
+}
+
+void MsgEdit::AddMessage( String aMsg, TTDebugData aDebugData )
+{
+ SvLBoxEntry *pThisEntry = NULL;
+ if ( pCurrentTestCase )
+ pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentTestCase );
+ else if ( pCurrentRun )
+ {
+ pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentRun );
+ aEditTree.ShowEntry( pThisEntry );
+ }
+ else
+ {
+ AddRun( aMsg, aDebugData );
+ pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentRun );
+ aEditTree.ShowEntry( pThisEntry );
+ }
+ aDebugData.aLogType = LOG_MESSAGE; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pThisEntry );
+}
+
+void MsgEdit::AddWarning( String aMsg, TTDebugData aDebugData )
+{
+ SvLBoxEntry *pThisEntry = NULL;
+ String aCompleteMsg;
+ aCompleteMsg = WARNING_PREFIX.Append( aMsg );
+
+ if ( pCurrentTestCase )
+ pThisEntry = aEditTree.InsertEntry( aCompleteMsg, pCurrentTestCase );
+ else if ( pCurrentRun )
+ {
+ pThisEntry = aEditTree.InsertEntry( aCompleteMsg, pCurrentRun );
+ aEditTree.ShowEntry( pThisEntry );
+ }
+ else
+ {
+ AddRun( aMsg, aDebugData );
+ pThisEntry = aEditTree.InsertEntry( aCompleteMsg, pCurrentRun );
+ aEditTree.ShowEntry( pThisEntry );
+ }
+ aDebugData.aLogType = LOG_WARNING; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pThisEntry );
+
+ while ( !aEditTree.IsEntryVisible( pThisEntry ) && ( pThisEntry = aEditTree.GetParent( pThisEntry ) ) )
+ aEditTree.InvalidateEntry( pThisEntry );
+}
+
+void MsgEdit::AddAssertion( String aMsg, TTDebugData aDebugData )
+{
+ SvLBoxEntry *pThisEntry = NULL;
+ if ( pCurrentTestCase )
+ pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentTestCase );
+ else if ( pCurrentRun )
+ {
+ pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentRun );
+ aEditTree.ShowEntry( pThisEntry );
+ }
+ else
+ {
+ AddRun( aMsg, aDebugData );
+ pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentRun );
+ aEditTree.ShowEntry( pThisEntry );
+ }
+ aDebugData.aLogType = LOG_ASSERTION; // Da auch von anderswo aufgerufen
+ ADD_TTDEBUGDATA( pThisEntry );
+
+ while ( !aEditTree.IsEntryVisible( pThisEntry ) && ( pThisEntry = aEditTree.GetParent( pThisEntry ) ) )
+ aEditTree.InvalidateEntry( pThisEntry );
+}
+
+/*
+ SvLBoxEntry* GetEntry( SvLBoxEntry* pParent, ULONG nPos ) const { return SvLBox::GetEntry(pParent,nPos); }
+ SvLBoxEntry* GetEntry( ULONG nRootPos ) const { return SvLBox::GetEntry(nRootPos);}
+
+
+
+ SvLBoxEntry* FirstChild(SvLBoxEntry* pParent ) const { return (SvLBoxEntry*)(pModel->FirstChild(pParent)); }
+ SvLBoxEntry* NextSibling(SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->NextSibling( pEntry )); }
+ SvLBoxEntry* PrevSibling(SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->PrevSibling( pEntry )); }
+
+ SvLBoxEntry* FirstSelected() const { return (SvLBoxEntry*)SvListView::FirstSelected(); }
+ SvLBoxEntry* NextSelected( SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(SvListView::NextSelected(pEntry)); }
+ SvLBoxEntry* PrevSelected( SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(SvListView::PrevSelected(pEntry)); }
+ SvLBoxEntry* LastSelected() const { return (SvLBoxEntry*)(SvListView::LastSelected()); }
+
+ SvLBoxEntry* GetEntry( SvLBoxEntry* pParent, ULONG nPos ) const { return (SvLBoxEntry*)(pModel->GetEntry(pParent,nPos)); }
+ SvLBoxEntry* GetEntry( ULONG nRootPos ) const { return (SvLBoxEntry*)(pModel->GetEntry(nRootPos)); }
+
+ SvLBoxEntry* GetParent( SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->GetParent(pEntry)); }
+ SvLBoxEntry* GetRootLevelParent(SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->GetRootLevelParent( pEntry ));}
+
+ BOOL IsInChildList( SvListEntry* pParent, SvListEntry* pChild) const;
+ SvListEntry* GetEntry( SvListEntry* pParent, ULONG nPos ) const;
+ SvListEntry* GetEntry( ULONG nRootPos ) const;
+ SvListEntry* GetEntryAtAbsPos( ULONG nAbsPos ) const;
+ SvListEntry* GetParent( SvListEntry* pEntry ) const;
+ SvListEntry* GetRootLevelParent( SvListEntry* pEntry ) const;
+*/
+
+//#define CHECK( pMemo ) if ( pMemo && !aEditTree.GetViewData( pMemo ) ) pMemo = NULL
+#define CHECK( pMemo ) if ( pMemo && !aEditTree.GetModel()->IsInChildList( NULL, pMemo ) ) pMemo = NULL
+void MsgEdit::Delete()
+{
+ aEditTree.RemoveSelection();
+ CHECK( pCurrentRun );
+ CHECK( pCurrentTestCase );
+ CHECK( pCurrentError );
+ bModified = TRUE;
+ lModify.Call( NULL );
+}
+
+void MsgEdit::Cut(){ Copy(); Delete(); bModified = TRUE; lModify.Call( NULL ); }
+void MsgEdit::Copy(){ Clipboard::Clear();Clipboard::CopyString( GetSelected() ); }
+/**/void MsgEdit::Paste(){ Sound::Beep(); }
+void MsgEdit::Undo(){ Sound::Beep(); }
+void MsgEdit::Redo(){ Sound::Beep(); }
+
+
+String MsgEdit::Impl_MakeText( SvLBoxEntry *pEntry ) const
+{
+ String aRet;
+ TTDebugData *aData = (TTDebugData*)pEntry->GetUserData();
+ switch ( aData->aLogType )
+ {
+ case LOG_RUN: aRet.AppendAscii("\n"); break;
+ case LOG_TEST_CASE: break;
+ case LOG_ERROR: break;
+ case LOG_CALL_STACK:aRet.AppendAscii("--> "); break;
+ case LOG_MESSAGE: break;
+ case LOG_WARNING: break;
+ case LOG_ASSERTION: break;
+ default:DBG_ERROR("Unbekannter Typ im ResultFenster");
+ }
+ aRet += aEditTree.GetEntryText( pEntry );
+ return aRet;
+}
+
+String MsgEdit::Impl_MakeSaveText( TTDebugData aData ) const
+{
+// LogType;Filename;Line;Col1;Col2;Message
+ String aRet;
+ aRet += String::CreateFromInt32( (int)aData.aLogType );
+ aRet += ';';
+ aRet += aData.aFilename;
+ aRet += ';';
+ aRet += String::CreateFromInt32( aData.nLine );
+ aRet += ';';
+ aRet += String::CreateFromInt32( aData.nCol1 );
+ aRet += ';';
+ aRet += String::CreateFromInt32( aData.nCol2 );
+ aRet += ';';
+ aRet += '"';
+ aRet += aData.aMsg;
+ aRet += '"';
+ return aRet;
+}
+
+String MsgEdit::Impl_MakeSaveText( SvLBoxEntry *pEntry ) const
+{
+// LogType;Filename;Line;Col1;Col2;Message
+ String aRet;
+ TTDebugData *aData = (TTDebugData*)pEntry->GetUserData();
+
+ if ( aEditTree.PrevSibling( pEntry ) && LOGTYPE( aEditTree.PrevSibling( pEntry ) ) == LOG_TEST_CASE )
+ { // Um Cases richtig abzuschliessen, so da Warnings und Msgs in Hirarchie richtig.
+ aRet += String::CreateFromInt32( (int)LOG_TEST_CASE );
+ aRet.AppendAscii(";;0;0;0;\"\"\n");
+ }
+ aRet += Impl_MakeSaveText( *aData );
+ return aRet;
+}
+
+String MsgEdit::GetSelected()
+{
+ String aRet;
+ SvLBoxEntry *pEntry = aEditTree.FirstSelected();
+ while ( pEntry )
+ {
+ aRet += Impl_MakeText( pEntry );
+ aRet += '\n';
+ pEntry = aEditTree.NextSelected( pEntry );
+ }
+ aRet.ConvertLineEnd();
+ return aRet;
+}
+
+TextSelection MsgEdit::GetSelection() const
+{
+ ULONG nStart=0,nEnd=0;
+
+ if ( aEditTree.FirstSelected() )
+ {
+ nStart = aEditTree.GetModel()->GetAbsPos(aEditTree.FirstSelected() );
+ if ( aEditTree.LastSelected() )
+ nEnd = aEditTree.GetModel()->GetAbsPos(aEditTree.LastSelected() );
+ return TextSelection( TextPaM( nStart, 0 ), TextPaM( nEnd, STRING_MAXLEN ) );
+ }
+ else
+ return TextSelection();
+}
+
+void MsgEdit::SetSelection( const TextSelection& rSelection )
+{
+ USHORT nStart,nEnd;
+
+ while ( aEditTree.GetSelectionCount() )
+ aEditTree.Select( aEditTree.FirstSelected(), FALSE );
+
+ if ( rSelection.HasRange() )
+ {
+ nStart = rSelection.GetStart().GetPara();
+ nEnd = rSelection.GetEnd().GetPara();
+
+ for ( int i = nStart ; i <= nEnd ; i++ )
+ aEditTree.Select( aEditTree.GetModel()->GetEntryAtAbsPos( i ), TRUE );
+ }
+}
+
+USHORT MsgEdit::GetLineNr() const
+{
+ if ( aEditTree.GetCurEntry() )
+ return aEditTree.GetModel()->GetAbsPos(aEditTree.GetCurEntry() ) + 1;
+ else
+ return 0;
+}
+
+void MsgEdit::ReplaceSelected( const String& rStr ){ Sound::Beep();DBG_ERROR("Not Implemented"); }
+BOOL MsgEdit::IsModified(){ return bModified; }
+void MsgEdit::SetModifyHdl( Link l ){ lModify = l; }
+
+String MsgEdit::GetText() const
+{
+ String aRet;
+ SvLBoxEntry *pEntry = aEditTree.First();
+ while ( pEntry )
+ {
+ aRet += Impl_MakeText( pEntry );
+ aRet += '\n';
+ pEntry = aEditTree.Next( pEntry );
+ }
+ aRet.ConvertLineEnd();
+ return aRet;
+}
+
+/**/void MsgEdit::SetText( const String& rStr ){ DBG_ERROR("Not Implemented"); }
+
+BOOL MsgEdit::HasText() const { return aEditTree.First() != NULL; }
+
+// Es wird entweder ab Beginn oder ab Markierungsbegin + 1 gesucht.
+BOOL MsgEdit::Find( const String& s )
+{
+ TextSelection r = GetSelection();
+ USHORT bgn = (USHORT) r.GetStart().GetPara() + 1;
+ if ( r.GetStart().GetPara() == 0 ) bgn = 0; // Suchen ganz von Anfang
+
+ SvLBoxEntry *pEntry = aEditTree.GetModel()->GetEntryAtAbsPos( bgn );
+ while ( pEntry )
+ {
+ if( aEditTree.GetEntryText( pEntry ).Search( s, 0 ) != STRING_NOTFOUND )
+ {
+ aEditTree.SetCurEntry( pEntry );
+ return TRUE;
+ }
+ pEntry = aEditTree.Next( pEntry );
+ }
+ return FALSE;
+}
+/******************************************************************
+
+Zum Fileformat der *.res Dateien:
+Die Informationenn werden als Semikolon getrennte Strings
+zusammengebastelt. Reihenfolge:
+
+ LogType;Filename;Line;Col1;Col2;Message
+
+******************************************************************/
+
+BOOL MsgEdit::Load( const String& aName )
+{
+ aLogFileName = aName;
+ BOOL bOk = TRUE, bFirstLine = TRUE;
+ BOOL bLoadError = FALSE;
+ SvFileStream aStrm( aName, STREAM_STD_READ );
+ if( aStrm.IsOpen() )
+ {
+ aEditTree.Clear();
+ String aLine;
+ bFileLoading = TRUE; // So da nicht gleich wieder auf Platte mitgelogt wird.
+ TTLogMsg *pLogMsg = new TTLogMsg;
+ while( !aStrm.IsEof() && bOk )
+ {
+ if ( nVersion >= 3 ) // Wir habe utf8
+ aStrm.ReadByteStringLine( aLine, RTL_TEXTENCODING_UTF8 );
+ else
+ aStrm.ReadByteStringLine( aLine, RTL_TEXTENCODING_IBM_850 );
+
+ if( aStrm.GetError() != SVSTREAM_OK )
+ bOk = FALSE;
+
+#define TOKEN( n ) aLine.GetToken( n )
+
+ if ( aLine.GetTokenCount() >= 6 )
+ {
+// LogType;Filename;Line;Col1;Col2;Message
+ TTDebugData aDebugData;
+ aDebugData.aLogType = TTLogType( TOKEN(0).ToInt32() );
+ aDebugData.aFilename = TOKEN(1);
+ aDebugData.nLine = TOKEN(2).ToInt32();
+ aDebugData.nCol1 = TOKEN(3).ToInt32();
+ aDebugData.nCol2 = TOKEN(4).ToInt32();
+ aDebugData.aMsg = aLine.GetQuotedToken( 5, CUniString("\"\"") );
+ aDebugData.aMsg.Erase(0,1); // Anfhrungszeichen entfernen
+ aDebugData.aMsg.Erase(aDebugData.aMsg.Len()-1,1);
+
+ pLogMsg->aLogFileName.Erase();
+ pLogMsg->aDebugData = aDebugData;
+
+ AddAnyMsg( pLogMsg );
+ }
+ else if ( bFirstLine && (aLine.Search( VERSION_STRING ) == 0) )
+ nVersion = aLine.Copy( VERSION_STRING.Len() ).ToInt32();
+ else bLoadError = TRUE;
+
+ bFirstLine = FALSE;
+ }
+ bFileLoading = FALSE;
+ delete pLogMsg;
+ aStrm.Close();
+ if ( nVersion < 2 && !bLoadError )
+ Save( aName ); // Mu sein, sonst passiert beim mitloggen Bldsinn.
+
+ }
+ else
+ bOk = FALSE;
+ return bOk;
+}
+
+BOOL MsgEdit::Save( const String& aName )
+{
+ BOOL bOk = TRUE;
+ BOOL bIsText = DirEntry( aName ).GetExtension().CompareIgnoreCaseToAscii("TXT") == COMPARE_EQUAL;
+ if ( bIsText && !QueryBox( NULL, ResId( IDS_LOSS_OF_INFORMATION ) ).Execute() )
+ return FALSE;
+ SvFileStream aStrm( aName, STREAM_STD_WRITE | STREAM_TRUNC );
+ if( aStrm.IsOpen() )
+ {
+ if ( bIsText )
+ {
+ String aSave = GetText();
+ aSave.ConvertLineEnd(LINEEND_CRLF);
+ aStrm << ByteString( aSave, RTL_TEXTENCODING_UTF8 ).GetBuffer();
+ }
+ else
+ {
+// LogType;Filename;Line;Col1;Col2;Message
+ String aSave = VERSION_STRING.Append( UniString::CreateFromInt32( 3 ) ).AppendAscii("\n"); // Version 2
+ SvLBoxEntry *pRun = aEditTree.First();
+ while ( pRun && aEditTree.NextSibling( pRun ) )
+ pRun = aEditTree.NextSibling( pRun );
+
+ aSave.ConvertLineEnd(LINEEND_CRLF);
+ aStrm << ByteString( aSave, RTL_TEXTENCODING_UTF8 ).GetBuffer();
+
+ SvLBoxEntry *pEntry;
+ while ( pRun )
+ {
+ pEntry = pRun;
+ while ( pEntry && ( pEntry == pRun || LOGTYPE( pEntry ) != LOG_RUN ) )
+ {
+ aSave = Impl_MakeSaveText( pEntry );
+ aSave += '\n';
+ aSave.ConvertLineEnd(LINEEND_CRLF);
+ aStrm << ByteString( aSave, RTL_TEXTENCODING_UTF8 ).GetBuffer();
+ pEntry = aEditTree.Next( pEntry );
+ }
+ pRun = aEditTree.PrevSibling( pRun );
+
+ }
+ }
+ if( aStrm.GetError() != SVSTREAM_OK )
+ bOk = FALSE;
+ else
+ {
+ bModified = FALSE;
+ lModify.Call( NULL );
+ }
+
+ }
+ else
+ bOk = FALSE;
+ return bOk;
+}
+
+
+TTTreeListBox::TTTreeListBox( Window* pParent, BasicFrame* pBF, WinBits nWinStyle )
+: SvTreeListBox( pParent, nWinStyle )
+, pBasicFrame(pBF)
+//, nDeselectParent(0)
+{}
+
+BOOL TTTreeListBox::DoubleClickHdl()
+{
+ SvLBoxEntry *pThisEntry = GetHdlEntry();
+ if ( pThisEntry && pThisEntry->GetUserData() && ((TTDebugData*)pThisEntry->GetUserData())->aFilename.Len() > 0 )
+ {
+ TTDebugData *aData = (TTDebugData*)pThisEntry->GetUserData();
+ if ( pBasicFrame->FindModuleWin( aData->aFilename ) )
+ {
+ AppEdit *pWin = pBasicFrame->FindModuleWin( aData->aFilename );
+ pWin->ToTop();
+ }
+ else
+ pBasicFrame->LoadFile( aData->aFilename );
+
+ if ( pBasicFrame->pWork && pBasicFrame->pWork->ISA(AppEdit) )
+ ((AppEdit*)pBasicFrame->pWork)->Highlight( aData->nLine, aData->nCol1, aData->nCol2 );
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/*ULONG TTTreeListBox::SelectChildren( SvLBoxEntry* pParent, BOOL bSelect )
+{
+ SvLBoxEntry *pEntry = FirstChild( pParent );
+ ULONG nRet = 0;
+ while ( pEntry )
+ {
+ nRet++;
+ Select( pEntry, bSelect );
+ pEntry = NextSibling( pEntry );
+ }
+ return nRet;
+}
+
+
+void TTTreeListBox::SelectHdl()
+{
+ SvLBoxEntry* pHdlEntry = GetHdlEntry();
+
+ SelectChildren( pHdlEntry, TRUE );
+ Select( pHdlEntry, TRUE );
+// InitMenu(pApp->GetAppMenu()->GetPopupMenu( RID_APPEDIT )); // So da Delete richtig ist
+}
+
+void TTTreeListBox::DeselectHdl()
+{
+ SvLBoxEntry* pHdlEntry = GetHdlEntry();
+ if ( GetParent( pHdlEntry ) )
+ {
+ nDeselectParent++;
+ Select( GetParent( pHdlEntry ), FALSE );
+ nDeselectParent--;
+ }
+ if ( !nDeselectParent )
+ {
+ SelectChildren( pHdlEntry, FALSE );
+ Select( pHdlEntry, FALSE );
+ }
+ Invalidate();
+} */
+
+
+void TTTreeListBox::KeyInput( const KeyEvent& rKEvt )
+{
+ switch ( rKEvt.GetKeyCode().GetFunction() )
+ {
+ case KEYFUNC_CUT:
+ Control::GetParent()->Command( CommandEvent( Point(), RID_EDITCUT ) );
+ break;
+ case KEYFUNC_COPY:
+ Control::GetParent()->Command( CommandEvent( Point(), RID_EDITCOPY ) );
+ break;
+ case KEYFUNC_PASTE:
+ Control::GetParent()->Command( CommandEvent( Point(), RID_EDITPASTE ) );
+ break;
+ case KEYFUNC_DELETE:
+ Control::GetParent()->Command( CommandEvent( Point(), RID_EDITDEL ) );
+ break;
+ default:
+ SvTreeListBox::KeyInput( rKEvt );
+ }
+}
+
+
+TTFeatures TTTreeListBox::GetFeatures( SvLBoxEntry* pEntry )
+{
+ switch ( LOGTYPE( pEntry ) )
+ {
+ case LOG_MESSAGE:
+ return HasNothing;
+ case LOG_WARNING :
+ return HasWarning;
+ case LOG_ERROR:
+ case LOG_CALL_STACK:
+ return HasError;
+ case LOG_RUN:
+ case LOG_TEST_CASE:
+ {
+ SvLBoxEntry* pThisEntry = FirstChild( pEntry );
+ TTFeatures aResult = HasNothing;
+ while ( pThisEntry && !( (aResult & HasError) == HasError ) )
+ {
+ if ( !IsEntryVisible( pThisEntry ) )
+ aResult |= GetFeatures( pThisEntry );
+ pThisEntry = NextSibling( pThisEntry );
+ }
+ return aResult;
+ }
+ case LOG_ASSERTION:
+ return HasAssertion;
+ default:
+ DBG_ERROR("Unbekannter Typ im ResultFenster");
+ }
+ return HasNothing; // da der Comp nich sieht, da kein dafault ntig ist.
+}
+
+
+class TTLBoxString : public SvLBoxString
+{
+public:
+
+ TTLBoxString( SvLBoxEntry* pEntry, USHORT nFlags,
+ const String& rStr ) : SvLBoxString(pEntry,nFlags,rStr) {}
+
+ virtual void Paint( const Point& rPos, SvLBox& rDev, USHORT nFlags,
+ SvLBoxEntry* pEntry);
+};
+
+
+void TTLBoxString::Paint( const Point& rPos, SvLBox& rDev, USHORT nFlags,
+ SvLBoxEntry* pEntry )
+{
+ TTFeatures aFeatures = ((TTTreeListBox*)&rDev)->GetFeatures( pEntry );
+
+ if ( aFeatures != HasNothing )
+ {
+ Font aOldFont( rDev.GetFont());
+ Font aFont( aOldFont );
+
+ if ( ( aFeatures & HasError ) != 0 || ( aFeatures & HasWarning ) != 0 )
+ {
+ Color aCol;
+ if ( ( aFeatures & HasError ) == HasError )
+ aCol = Color( 255, 120, 120 ); // Rot
+ else
+ aCol = Color( 255, 200, 120 ); // Ocker oder so
+
+ if( rDev.IsSelected(pEntry) )
+ aFont.SetColor( aCol );
+ else
+ {
+ aFont.SetFillColor( aCol );
+ aFont.SetTransparent( FALSE );
+ }
+ }
+ else // also HasAssertion
+ {
+ if( rDev.IsSelected(pEntry) )
+ {
+ Color aCol( 255, 255, 153 );
+ aFont.SetColor( aCol );
+ }
+ else
+ {
+ Size aSize( rDev.GetTextWidth( GetText() ), rDev.GetTextHeight() );
+ Rectangle aRect( rPos, aSize );
+
+ static Bitmap aBmp( ResId( MBP_ASSERT ) );
+ static BitmapEx aBmpEx( aBmp );
+ static Wallpaper aWP( aBmpEx );
+
+ rDev.DrawWallpaper( aRect, aWP );
+ }
+
+// virtual void NotifyScrolling( long nLines );
+ }
+ rDev.SetFont( aFont );
+ rDev.DrawText( rPos, GetText() );
+ rDev.SetFont( aOldFont );
+ }
+ else
+ SvLBoxString::Paint( rPos, rDev, nFlags, pEntry );
+}
+
+
+void TTTreeListBox::InitEntry(SvLBoxEntry* pEntry,
+ const String& rStr ,const Image& rImg1, const Image& rImg2 )
+{
+ USHORT nColToHilite = 1; //0==Bitmap;1=="Spalte1";2=="Spalte2"
+ SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2 );
+ SvLBoxString* pCol = (SvLBoxString*)pEntry->GetItem( nColToHilite );
+ TTLBoxString* pStr = new TTLBoxString( pEntry, 0, pCol->GetText() );
+ pEntry->ReplaceItem( pStr, nColToHilite );
+}
+
diff --git a/basic/source/app/msgedit.hxx b/basic/source/app/msgedit.hxx
new file mode 100644
index 000000000000..ce26378694cb
--- /dev/null
+++ b/basic/source/app/msgedit.hxx
@@ -0,0 +1,134 @@
+/*************************************************************************
+ *
+ * $RCSfile: msgedit.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _MSGEDIT_HXX
+#define _MSGEDIT_HXX
+
+#ifndef _SVTREEBOX_HXX //autogen
+#include <svtools/svtreebx.hxx>
+#endif
+
+#include "dataedit.hxx"
+#include "testtool.hxx"
+class BasicFrame;
+class AppWin;
+
+#define SelectChildren SelectChilds // Sonst wird mir schlecht
+
+typedef USHORT TTFeatures; // Bitfeld fr Features der Entrys
+#define HasNothing TTFeatures(0x00)
+#define HasError TTFeatures(0x01)
+#define HasWarning TTFeatures(0x02)
+#define HasAssertion TTFeatures(0x04)
+
+
+class TTTreeListBox : public SvTreeListBox
+{
+protected:
+// virtual void Command( const CommandEvent& rCEvt );
+// USHORT nDeselectParent;
+ BasicFrame *pBasicFrame;
+ void InitEntry( SvLBoxEntry*, const String&, const Image&, const Image& );
+public:
+ TTTreeListBox( Window* pParent, BasicFrame* pBF, WinBits nWinStyle=0 );
+ ~TTTreeListBox(){}
+
+// virtual void SelectHdl();
+// virtual void DeselectHdl();
+ virtual BOOL DoubleClickHdl();
+
+ virtual void KeyInput( const KeyEvent& rKEvt );
+
+// ULONG SelectChildren( SvLBoxEntry* pParent, BOOL bSelect );
+ TTFeatures GetFeatures( SvLBoxEntry* );
+};
+
+class MsgEdit : public DataEdit
+{
+ SvLBoxEntry *pCurrentRun;
+ SvLBoxEntry *pCurrentTestCase;
+ SvLBoxEntry *pCurrentError;
+protected:
+ BOOL bModified;
+ Link lModify;
+ BasicFrame *pBasicFrame;
+ BOOL bFileLoading; // TRUE whrend eine Datei geladen wird.
+ String Impl_MakeText( SvLBoxEntry *pEntry ) const;
+ String Impl_MakeSaveText( SvLBoxEntry *pEntry ) const;
+ String Impl_MakeSaveText( TTDebugData aData ) const;
+ USHORT nVersion; // Speichert die Dateiversion
+ AppWin* pAppWin;
+ String aLogFileName; // Name der Logdatei
+public:
+ MsgEdit( AppWin*, BasicFrame *pBF, const WinBits& );
+ ~MsgEdit();
+ void AddAnyMsg( TTLogMsg *LogMsg );
+ void AddRun( String aMsg, TTDebugData aDebugData );
+ void AddTestCase( String aMsg, TTDebugData aDebugData );
+ void AddError( String aMsg, TTDebugData aDebugData );
+ void AddCallStack( String aMsg, TTDebugData aDebugData );
+ void AddMessage( String aMsg, TTDebugData aDebugData );
+ void AddWarning( String aMsg, TTDebugData aDebugData );
+ void AddAssertion( String aMsg, TTDebugData aDebugData );
+DATA_FUNC_DEF( aEditTree, TTTreeListBox )
+};
+
+#endif
diff --git a/basic/source/app/mybasic.cxx b/basic/source/app/mybasic.cxx
new file mode 100644
index 000000000000..e9d823a6ff8f
--- /dev/null
+++ b/basic/source/app/mybasic.cxx
@@ -0,0 +1,330 @@
+/*************************************************************************
+ *
+ * $RCSfile: mybasic.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SBXCLASS_HXX //autogen
+#include <svtools/sbx.hxx>
+#endif
+
+// AB-Uno-Test
+//#define unotest
+#ifdef unotest
+#ifndef _USR_UNO_HXX
+#include <usr/uno.hxx>
+#endif
+#include <sbuno.hxx>
+#include <sbunoobj.hxx>
+#endif
+
+#include "sbintern.hxx"
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+#include "mybasic.hxx"
+#include "basic.hrc"
+#include "appbased.hxx"
+
+#include "status.hxx"
+#include "basic.hrc"
+
+#include "object.hxx"
+
+#include "comm_bas.hxx"
+#include "processw.hxx"
+
+TYPEINIT1(MyBasic,StarBASIC)
+
+class MyFactory : public SbxFactory
+{
+public:
+ virtual SbxBase* Create( UINT16 nSbxId, UINT32 = SBXCR_SBX );
+};
+
+static SampleObjectFac aFac1;
+static MyFactory aFac2;
+static CommunicationFactory aComManFac;
+static ProcessFactory aProcessFac;
+static short nInst = 0;
+
+SbxBase* MyFactory::Create( UINT16 nSbxId, UINT32 nCr )
+{
+ if( nCr == SBXCR_TEST && nSbxId == SBXID_MYBASIC )
+ return new MyBasic;
+ else
+ return NULL;
+}
+
+MyBasic::MyBasic() : StarBASIC()
+{
+ nError = 0;
+ if( !nInst++ )
+ {
+ AddFactory( &aFac1 );
+ AddFactory( &aFac2 );
+ AddFactory( &aComManFac );
+ AddFactory( &aProcessFac );
+ }
+ SbxVariable* p = new SbxCollection( CUniString("MyColl") );
+ p->SetName( CUniString("Objects") );
+ Insert( p );
+
+ // AB-Uno-Test
+#ifdef unotest
+ // Uno-Service-Manager holenReflection Service bolen
+ createAndSetDefaultServiceManager(); // spaeter schon erledigt
+
+ // Uno-Test-Objekt holen
+ UsrAny aObjAny = getIntrospectionTestObject();
+
+ // Objekt verpacken in ein SbUnoObject packen
+ String aName( "UnoObject" );
+ SbxObjectRef xSbUnoObj = GetSbUnoObject( aName, aObjAny );
+ //SbxObjectRef xSbUnoObj = new SbUnoObject( aName, aObjAny );
+ Insert( (SbxObject*)xSbUnoObj );
+#endif
+
+ pTestObject = NULL;
+}
+
+Link MyBasic::GenLogHdl()
+{
+ return LINK( GetpApp()->GetAppWindow(), BasicFrame, Log );
+}
+
+Link MyBasic::GenWinInfoHdl()
+{
+ return LINK( GetpApp()->GetAppWindow(), BasicFrame, WinInfo );
+}
+
+Link MyBasic::GenModuleWinExistsHdl()
+{
+ return LINK( GetpApp()->GetAppWindow(), BasicFrame, ModuleWinExists );
+}
+
+void MyBasic::StartListening( SfxBroadcaster &rBroadcaster )
+{
+ ((BasicFrame*)GetpApp()->GetAppWindow())->StartListening( rBroadcaster );
+}
+
+void MyBasic::SetCompileModule( SbModule *pMod )
+{
+ GetSbData()->pCompMod = pMod;
+}
+
+SbModule *MyBasic::GetCompileModule()
+{
+ return GetSbData()->pCompMod;
+}
+
+String MyBasic::GenRealString( const String &aResString )
+{
+ return ((BasicFrame*)GetpApp()->GetAppWindow())->GenRealString( aResString );
+}
+
+void MyBasic::LoadIniFile()
+{
+}
+
+SbTextType MyBasic::GetSymbolType( const String &rSymbol, BOOL bWasTTControl )
+{
+ return SB_SYMBOL; // Alles was hier landet ist vom Typ SB_SYMBOL und bleibt es auch
+}
+
+
+MyBasic::~MyBasic()
+{
+ aErrors.Clear();
+ if( !--nInst )
+ {
+ RemoveFactory( &aFac1 );
+ RemoveFactory( &aFac2 );
+ RemoveFactory( &aComManFac );
+ RemoveFactory( &aProcessFac );
+ }
+}
+
+BOOL MyBasic::Compile( SbModule* p )
+{
+ aErrors.Clear();
+ nError = 0;
+ return StarBASIC::Compile( p );
+}
+
+BOOL MyBasic::ErrorHdl()
+{
+ AppEdit *CurrWin = aBasicApp.pFrame->FindModuleWin( GetActiveModule()->GetName() );
+ if(CurrWin)
+ CurrWin->ToTop();
+ else
+ { // erstmal Fenster aufmachen
+ String aModName = GetActiveModule()->GetName();
+ if ( aModName.Copy(0,2).CompareToAscii("--") == COMPARE_EQUAL )
+ aModName.Erase(0,2);
+ GetActiveModule()->SetName(aModName);
+ AppWin* p = new AppBasEd( aBasicApp.pFrame, GetActiveModule() );
+ p->Show();
+ p->GrabFocus();
+ }
+ if( IsCompilerError() )
+ {
+ aErrors.Insert(
+ new BasicError
+ ( aBasicApp.pFrame->pWork,
+ 0, StarBASIC::GetErrorText(), GetLine(), GetCol1(), GetCol2() ),
+ LIST_APPEND );
+ nError++;
+ return BOOL( nError < 20 ); // Abbruch nach 20 Fehlern
+ }
+ else
+ {
+ ReportRuntimeError();
+ return FALSE;
+ }
+}
+
+void MyBasic::ReportRuntimeError()
+{
+ String nErrorText;
+ nErrorText = GetSpechialErrorText();
+
+ BasicError( aBasicApp.pFrame->pWork,
+ GetVBErrorCode( GetErrorCode() ), nErrorText, GetLine(),
+ GetCol1(), GetCol2() ).Show();
+}
+
+const String MyBasic::GetSpechialErrorText()
+{
+ return GetErrorText();
+}
+
+USHORT MyBasic::BreakHdl()
+{
+ SbModule* pMod = GetActiveModule();
+ if( pMod )
+ {
+ AppEdit* pWin = aBasicApp.pFrame->FindModuleWin( pMod->GetName() );
+ if( !pWin )
+ { // erstmal Fenster aufmachen
+ String aModName = GetActiveModule()->GetName();
+ if ( aModName.Copy(0,2).CompareToAscii("--") == COMPARE_EQUAL )
+ aModName.Erase(0,2);
+ GetActiveModule()->SetName(aModName);
+ AppWin* p = new AppBasEd( aBasicApp.pFrame, GetActiveModule() );
+ p->Show();
+ p->GrabFocus();
+ p->ToTop();
+ pWin = aBasicApp.pFrame->FindModuleWin( aModName );
+ }
+ pWin->Highlight( GetLine(), GetCol1(), GetCol2() );
+ }
+
+ if( IsBreak() ) // Wenn Breakpoint (oder "Run to Cursor")
+ {
+// if ( GetActiveModule()->IsBP(GetLine()) )
+// GetActiveModule()->ClearBP(GetLine());
+ return aBasicApp.pFrame->BreakHandler();
+ }
+ else
+ {
+ return aBasicApp.pFrame->BreakHandler();
+ }
+}
+
+/***************************************************************************
+|*
+|* class BasicError
+|*
+***************************************************************************/
+
+BasicError::BasicError
+ ( AppWin* w, USHORT nE, const String& r, USHORT nL, USHORT nC1, USHORT nC2 )
+ : aText( ResId( IDS_ERROR1 ) )
+{
+ pWin = w;
+ nLine = nL;
+ nCol1 = nC1;
+ nCol2 = nC2;
+ if( nE )
+ {
+ aText += String::CreateFromInt32( nE );
+ aText.AppendAscii(": ");
+ aText += r;
+ }
+ else
+ aText = r;
+}
+
+// Dies ist ein Beispiel, wie die Fehler-Information geschickt
+// aufgebaut werden kann, um ein Statement zu highlighten.
+
+void BasicError::Show()
+{
+ if( pWin && pWin->ISA(AppEdit) ) {
+ ((AppEdit*)pWin)->Highlight( nLine, nCol1, nCol2 );
+ aBasicApp.pFrame->pStatus->Message( aText );
+ } else MessBox( aBasicApp.pFrame, WB_OK, aBasicApp.pFrame->GetText(),
+ aText ).Execute();
+}
+
+
diff --git a/basic/source/app/printer.cxx b/basic/source/app/printer.cxx
new file mode 100644
index 000000000000..2de59e17bf9e
--- /dev/null
+++ b/basic/source/app/printer.cxx
@@ -0,0 +1,216 @@
+/*************************************************************************
+ *
+ * $RCSfile: printer.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _PRINT_HXX //autogen
+#include <vcl/print.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+#include "app.hxx"
+#include "printer.hxx"
+#include "basic.hrc"
+#include "resids.hrc"
+
+class PrintingDialog : public ModelessDialog {
+ String aName;
+ FixedText aText;
+ CancelButton aCancel;
+public:
+ PrintingDialog( Window*, BasicPrinter*, ResId&, String& );
+ void ChangeMessage( short );
+};
+
+BasicPrinter::BasicPrinter() : Printer()
+{
+ nPage = 0; nLine = 9999;
+ SetMapMode( MapMode( MAP_POINT ) );
+ Size s( GetOutputSize() );
+ // 10-Punkt-Schrift verwenden
+ Font aFont( FAMILY_MODERN, Size( 0, 10 ) );
+ aFont.SetPitch( PITCH_FIXED );
+ SetFont( aFont );
+ // Ausgabe: 6 Zeilen/Zoll = 12 Punkt
+ nLines = (short) s.Height() / 12;
+ nYoff = 12;
+ SetStartPrintHdl( LINK( this, BasicPrinter, StartPrintHdl ) );
+ SetEndPrintHdl( LINK( this, BasicPrinter, EndPrintHdl ) );
+ SetPrintPageHdl( LINK( this, BasicPrinter, PrintPageHdl ) );
+}
+
+void BasicPrinter::Header()
+{
+ if( nPage ) EndPage();
+ nPage++;
+ StartPage();
+ String aHdr;
+ String aPage( ResId( IDS_PAGE ) );
+ aPage.Append( String::CreateFromInt32(nPage) );
+ aHdr = aFile.Copy( 0, 80 - aPage.Len() );
+ aHdr.Expand( 80 - aPage.Len(), ' ' );
+ aHdr += aPage;
+ DrawText( Point( 0, 0 ), aHdr );
+ nLine = 2;
+}
+
+void BasicPrinter::Print( const String& rFile, const String& rText, BasicFrame *pFrame )
+{
+ nPage = 0; nLine = 9999;
+ aFile = rFile;
+ // Dialog einrichten
+ ResId aResId( IDD_PRINT_DIALOG );
+ pDlg = new PrintingDialog
+ ( aBasicApp.pFrame, this, aResId, aFile );
+ // Position des Dialogs setzen
+ Size s1 = aBasicApp.pFrame->GetSizePixel();
+ Size s2 = pDlg->GetSizePixel();
+ pDlg->SetPosPixel( Point( (s1.Width() - s2.Width() ) / 2,
+ (s1.Height()- s2.Height() ) / 2 ) );
+ // PRINT-Menu disablen
+ MenuBar* pBar = pFrame->GetMenuBar();
+ Menu* pFileMenu = pBar->GetPopupMenu( RID_APPFILE );
+ pFileMenu->EnableItem( RID_FILEPRINT, FALSE );
+
+ pDlg->ChangeMessage( 1 );
+ pDlg->Show();
+ StartJob( rFile );
+ StartPage();
+ xub_StrLen nDone=0;
+ while( nDone < rText.Len() )
+ {
+ if( nLine >= nLines ) Header();
+ xub_StrLen nLineEnd = min( rText.Search( '\n', nDone ), rText.Search( '\r', nDone ) );
+ DrawText( Point( 0, nLine * nYoff ), rText, nDone, nLineEnd-nDone-1 );
+ nDone = nLineEnd;
+ if( nDone <= rText.Len() && rText.GetChar(nDone) == '\r' ) nDone++;
+ if( nDone <= rText.Len() && rText.GetChar(nDone) == '\n' ) nDone++;
+ nLine++;
+ Application::Reschedule();
+ }
+ EndPage();
+ EndJob();
+ nPage = 1;
+ while( IsPrinting() ) Application::Reschedule();
+ delete pDlg; pDlg = NULL;
+ pFileMenu->EnableItem( RID_FILEPRINT, TRUE );
+}
+
+IMPL_LINK_INLINE_START( BasicPrinter, StartPrintHdl, Printer *, pPrinter )
+{
+ if( pDlg ) pDlg->Show();
+ return 0;
+}
+IMPL_LINK_INLINE_END( BasicPrinter, StartPrintHdl, Printer *, pPrinter )
+
+IMPL_LINK_INLINE_START( BasicPrinter, EndPrintHdl, Printer *, pPrinter )
+{
+ if( pDlg ) pDlg->Hide();
+ return 0;
+}
+IMPL_LINK_INLINE_END( BasicPrinter, EndPrintHdl, Printer *, pPrinter )
+
+IMPL_LINK_INLINE_START( BasicPrinter, PrintPageHdl, Printer *, pPrinter )
+{
+ if( pDlg ) pDlg->ChangeMessage( nPage );
+ return 0;
+}
+IMPL_LINK_INLINE_END( BasicPrinter, PrintPageHdl, Printer *, pPrinter )
+
+IMPL_LINK_INLINE( BasicPrinter, Abort , void *, EMPTYARG,
+{
+ AbortJob();
+ return 0L;
+}
+)
+
+/////////////////////////////////////////////////////////////////////////
+
+PrintingDialog::PrintingDialog
+ ( Window* pParent, BasicPrinter* pPrn, ResId& rId, String& rName )
+ : ModelessDialog( pParent, rId ),
+ aCancel( this, ResId( RID_CANCEL ) ),
+ aText ( this, ResId( RID_TEXT ) ),
+ aName ( rName )
+{
+ FreeResource();
+ aCancel.SetClickHdl( LINK( pPrn, BasicPrinter, Abort ) );
+}
+
+void PrintingDialog::ChangeMessage( short nPage )
+{
+ String aMsg( ResId( IDS_PRINTMSG ) );
+ aMsg += aName;
+ aMsg += CUniString("\n");
+ aMsg += String( ResId( IDS_PAGE ) );
+ aMsg += String::CreateFromInt32( nPage );
+ aText.SetText( aMsg );
+}
+
diff --git a/basic/source/app/printer.hxx b/basic/source/app/printer.hxx
new file mode 100644
index 000000000000..5478fed7efa3
--- /dev/null
+++ b/basic/source/app/printer.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: printer.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _BASICPRN_HXX
+#define _BASICPRN_HXX
+
+#ifndef _PRINT_HXX //autogen
+#include <vcl/print.hxx>
+#endif
+
+class PrintingDialog;
+
+class BasicPrinter : public Printer {
+ short nLine; // aktuelle Zeile
+ short nPage; // aktuelle Seite
+ short nLines; // Zeilen pro Seite
+ short nYoff; // Zeilenabstand in Points
+ String aFile; // Dateiname
+ PrintingDialog* pDlg; // Druck-Dialog
+ void Header(); // Seitenkopf drucken
+public:
+ BasicPrinter();
+ void Print( const String& rFile, const String& rText, BasicFrame *pFrame );
+ DECL_LINK( Abort, void * );
+ DECL_LINK( StartPrintHdl, Printer * );
+ DECL_LINK( EndPrintHdl, Printer * );
+ DECL_LINK( PrintPageHdl, Printer * );
+#if defined( PM20 )
+ // StarView-Bug, bald wieder zu entfernen:
+ virtual void SetPageQueueSize( USHORT ) {}
+#endif
+};
+
+#endif
diff --git a/basic/source/app/process.cxx b/basic/source/app/process.cxx
new file mode 100644
index 000000000000..0a0a9beae762
--- /dev/null
+++ b/basic/source/app/process.cxx
@@ -0,0 +1,222 @@
+/*************************************************************************
+ *
+ * $RCSfile: process.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#ifdef WNT
+#include <tools/prewin.h>
+#include "winbase.h"
+#include <tools/postwin.h>
+#endif
+
+#ifndef _ERRCODE_HXX //autogen
+#include <tools/errcode.hxx>
+#endif
+#ifndef _VOS_PROCESS_HXX_
+#include <vos/process.hxx>
+#endif
+#ifndef _SBXCORE_HXX
+#include <svtools/sbxcore.hxx>
+#endif
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+#ifndef _OSL_FILE_HXX_
+#include <osl/file.hxx>
+#endif
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+//#ifndef _BYTE_STRING_LIST
+//DECLARE_LIST( ByteStringList, ByteString * );
+//#define _BYTE_STRING_LIST
+//#endif
+
+#include "process.hxx"
+
+// Konstruktor fr den Process
+Process::Process()
+: bWasGPF( FALSE )
+, pArgumentList( NULL )
+, pProcess( NULL )
+, bHasBeenStarted( FALSE )
+{
+}
+
+// Destruktor
+Process::~Process()
+{
+ delete pArgumentList;
+ delete pProcess;
+}
+
+
+BOOL Process::ImplIsRunning()
+{
+ if ( pProcess && bHasBeenStarted )
+ {
+ NAMESPACE_VOS(OProcess::TProcessInfo) aProcessInfo;
+ pProcess->getInfo( NAMESPACE_VOS(OProcess::TData_ExitCode), &aProcessInfo );
+ if ( !(aProcessInfo.Fields & NAMESPACE_VOS(OProcess::TData_ExitCode)) )
+ return TRUE;
+ else
+ return FALSE;
+ }
+ else
+ return FALSE;
+}
+
+long Process::ImplGetExitCode()
+{
+ if ( pProcess )
+ {
+ NAMESPACE_VOS(OProcess::TProcessInfo) aProcessInfo;
+ pProcess->getInfo( NAMESPACE_VOS(OProcess::TData_ExitCode), &aProcessInfo );
+ if ( !(aProcessInfo.Fields & NAMESPACE_VOS(OProcess::TData_ExitCode)) )
+ SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+ return aProcessInfo.Code;
+ }
+ else
+ SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+ return 0;
+}
+
+
+////////////////////////////////////////////////////////////////////////////
+
+// Die Methoden:
+void Process::SetImage( const String &aAppPath, const String &aAppParams )
+{ // Imagedatei des Executables
+ if ( pProcess && ImplIsRunning() )
+ SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+ else
+ {
+ delete pArgumentList;
+ delete pProcess;
+
+ xub_StrLen i, nCount = aAppParams.GetQuotedTokenCount( CUniString("\"\"" ), ' ' );
+ NAMESPACE_RTL(OUString) *pParamList = new NAMESPACE_RTL(OUString)[nCount];
+ for ( i = 0 ; i < nCount ; i++ )
+ {
+ NAMESPACE_RTL(OUString) aTemp = NAMESPACE_RTL(OUString)(aAppParams.GetQuotedToken( i, CUniString("\"\"" ), ' ' ));
+ if ( aTemp.getLength() )
+ pParamList[i] = aTemp;
+ }
+ pArgumentList = new NAMESPACE_VOS(OArgumentList)( pParamList, nCount );
+ NAMESPACE_RTL(OUString) aNormalizedAppPath;
+ osl::FileBase::normalizePath( NAMESPACE_RTL(OUString)(aAppPath), aNormalizedAppPath );
+ pProcess = new NAMESPACE_VOS(OProcess)( aNormalizedAppPath );
+ bHasBeenStarted = FALSE;
+ }
+}
+
+BOOL Process::Start()
+{ // Programm wird gestartet
+ BOOL bSuccess=FALSE;
+ if ( pProcess && !ImplIsRunning() )
+ {
+ bWasGPF = FALSE;
+#ifdef WNT
+// sal_uInt32 nErrorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_NOALIGNMENTFAULTEXCEPT | SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
+ sal_uInt32 nErrorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_NOALIGNMENTFAULTEXCEPT | SEM_NOGPFAULTERRORBOX);
+ try
+ {
+#endif
+ bSuccess = pProcess->execute( (NAMESPACE_VOS(OProcess)::TProcessOption)
+ ( NAMESPACE_VOS(OProcess)::TOption_SearchPath
+ /*| NAMESPACE_VOS(OProcess)::TOption_Detached*/
+ /*| NAMESPACE_VOS(OProcess)::TOption_Wait*/ ),
+ *pArgumentList ) == NAMESPACE_VOS(OProcess)::E_None;
+#ifdef WNT
+ }
+ catch( ... )
+ {
+ bWasGPF = TRUE;
+ }
+ nErrorMode = SetErrorMode(nErrorMode);
+#endif
+ bHasBeenStarted = bSuccess;
+ }
+ else
+ SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+ return bSuccess;
+}
+
+ULONG Process::GetExitCode()
+{ // ExitCode des Programms(nachdem es beendet ist)
+ return ImplGetExitCode();
+}
+
+BOOL Process::IsRunning()
+{ // Programm luft noch
+ return ImplIsRunning();
+}
+
+BOOL Process::WasGPF()
+{ // Programm mit GPF o.. abgebrochen
+#ifdef WNT
+ return ImplGetExitCode() == 3221225477;
+#else
+ return bWasGPF;
+#endif
+}
+
diff --git a/basic/source/app/processw.cxx b/basic/source/app/processw.cxx
new file mode 100644
index 000000000000..d33c9ddfa208
--- /dev/null
+++ b/basic/source/app/processw.cxx
@@ -0,0 +1,324 @@
+/*************************************************************************
+ *
+ * $RCSfile: processw.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:12:09 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#ifndef _ERRCODE_HXX //autogen
+#include <tools/errcode.hxx>
+#endif
+#ifndef _SBX_SBXOBJECT_HXX //autogen
+#include <svtools/sbxobj.hxx>
+#endif
+#ifndef _SBXCLASS_HXX //autogen
+#include <svtools/sbx.hxx>
+#endif
+#ifndef __SBX_SBXVARIABLE_HXX //autogen
+#include <svtools/sbxvar.hxx>
+#endif
+
+//#include <osl/thread.h>
+#ifndef _BASIC_TTRESHLP_HXX
+#include "ttstrhlp.hxx"
+#endif
+
+#include "processw.hxx"
+
+//#include "collelem.hxx"
+// Makro MEMBER()
+#include "macfix.hxx"
+
+// Der Process hat folgende Elemente:
+// 1) Properties:
+// Keine
+// 2) Methoden:
+// SetImage( Filename )
+// BOOL Start
+// USHORT GetExitCode
+// BOOL IsRunning
+// BOOL WasGPF
+
+
+// Diese Implementation ist ein Beispiel fuer eine tabellengesteuerte
+// Version, die sehr viele Elemente enthalten kann. Die Elemente werden
+// je nach Bedarf aus der Tabelle in das Objekt uebernommen.
+
+// Das nArgs-Feld eines Tabelleneintrags ist wie folgt verschluesselt:
+
+#define _ARGSMASK 0x00FF // Bis zu 255 Argumente
+#define _RWMASK 0x0F00 // Maske fuer R/W-Bits
+#define _TYPEMASK 0xF000 // Maske fuer den Typ des Eintrags
+
+#define _READ 0x0100 // kann gelesen werden
+#define _BWRITE 0x0200 // kann as Lvalue verwendet werden
+#define _LVALUE _BWRITE // kann as Lvalue verwendet werden
+#define _READWRITE 0x0300 // beides
+#define _OPT 0x0400 // TRUE: optionaler Parameter
+#define _METHOD 0x1000 // Masken-Bit fuer eine Methode
+#define _PROPERTY 0x2000 // Masken-Bit fuer eine Property
+#define _COLL 0x4000 // Masken-Bit fuer eine Collection
+ // Kombination von oberen Bits:
+#define _FUNCTION 0x1100 // Maske fuer Function
+#define _LFUNCTION 0x1300 // Maske fuer Function, die auch als Lvalue geht
+#define _ROPROP 0x2100 // Maske Read Only-Property
+#define _WOPROP 0x2200 // Maske Write Only-Property
+#define _RWPROP 0x2300 // Maske Read/Write-Property
+#define _COLLPROP 0x4100 // Maske Read-Collection-Element
+
+#define COLLNAME "Elements" // Name der Collection, hier mal hart verdrahtet
+
+
+
+ProcessWrapper::Methods ProcessWrapper::aProcessMethods[] = {
+// Imagedatei des Executables
+{ "SetImage", SbxEMPTY, 1 | _FUNCTION, MEMBER(ProcessWrapper::PSetImage) },
+ // Zwei Named Parameter
+ { "Filename",SbxSTRING },
+ { "Params",SbxSTRING, _OPT },
+// Programm wird gestartet
+{ "Start", SbxBOOL, 0 | _FUNCTION, MEMBER(ProcessWrapper::PStart) },
+// ExitCode des Programms(nachdem es beendet ist)
+{ "GetExitCode", SbxULONG, 0 | _FUNCTION, MEMBER(ProcessWrapper::PGetExitCode) },
+// Programm luft noch
+{ "IsRunning", SbxBOOL, 0 | _FUNCTION, MEMBER(ProcessWrapper::PIsRunning) },
+// Programm mit GPF o.. abgebrochen
+{ "WasGPF", SbxBOOL, 0 | _FUNCTION, MEMBER(ProcessWrapper::PWasGPF) },
+
+{ NULL, SbxNULL, -1 }}; // Tabellenende
+
+
+
+// Konstruktor fr den Process
+ProcessWrapper::ProcessWrapper() : SbxObject( CUniString("Process") )
+{
+ pProcess = new Process();
+ SetName( CUniString("Process") );
+ pMethods = &aProcessMethods[0];
+}
+
+// Destruktor
+ProcessWrapper::~ProcessWrapper()
+{
+ delete pProcess;
+}
+
+// Suche nach einem Element:
+// Hier wird linear durch die Methodentabelle gegangen, bis eine
+// passende Methode gefunden wurde.
+// Wenn die Methode/Property nicht gefunden wurde, nur NULL ohne
+// Fehlercode zurueckliefern, da so auch eine ganze Chain von
+// Objekten nach der Methode/Property befragt werden kann.
+
+SbxVariable* ProcessWrapper::Find( const String& rName, SbxClassType t )
+{
+ // Ist das Element bereits vorhanden?
+ SbxVariable* pRes = SbxObject::Find( rName, t );
+ if( !pRes && t != SbxCLASS_OBJECT )
+ {
+ // sonst suchen
+ Methods* p = pMethods;
+ short nIndex = 0;
+ BOOL bFound = FALSE;
+ while( p->nArgs != -1 )
+ {
+ if( rName.CompareIgnoreCaseToAscii( p->pName ) == COMPARE_EQUAL )
+ {
+ bFound = TRUE; break;
+ }
+ nIndex += ( p->nArgs & _ARGSMASK ) + 1;
+ p = pMethods + nIndex;
+ }
+ if( bFound )
+ {
+ // Args-Felder isolieren:
+ short nAccess = ( p->nArgs & _RWMASK ) >> 8;
+ short nType = ( p->nArgs & _TYPEMASK );
+ String aName( p->pName, RTL_TEXTENCODING_ASCII_US );
+ SbxClassType eCT = SbxCLASS_OBJECT;
+ if( nType & _PROPERTY )
+ eCT = SbxCLASS_PROPERTY;
+ else if( nType & _METHOD )
+ eCT = SbxCLASS_METHOD;
+ pRes = Make( aName, eCT, p->eType );
+ // Wir setzen den Array-Index + 1, da ja noch andere
+ // Standard-Properties existieren, die auch aktiviert
+ // werden muessen.
+ pRes->SetUserData( nIndex + 1 );
+ pRes->SetFlags( nAccess );
+ }
+ }
+ return pRes;
+}
+
+// Aktivierung eines Elements oder Anfordern eines Infoblocks
+
+void ProcessWrapper::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCT,
+ const SfxHint& rHint, const TypeId& rHT )
+{
+ const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+ if( pHint )
+ {
+ SbxVariable* pVar = pHint->GetVar();
+ SbxArray* pPar = pVar->GetParameters();
+ USHORT nIndex = (USHORT) pVar->GetUserData();
+ // kein Index: weiterreichen!
+ if( nIndex )
+ {
+ ULONG t = pHint->GetId();
+ if( t == SBX_HINT_INFOWANTED )
+ pVar->SetInfo( GetInfo( (short) pVar->GetUserData() ) );
+ else
+ {
+ BOOL bWrite = FALSE;
+ if( t == SBX_HINT_DATACHANGED )
+ bWrite = TRUE;
+ if( t == SBX_HINT_DATAWANTED || bWrite )
+ {
+ // Parameter-Test fuer Methoden:
+ USHORT nPar = pMethods[ --nIndex ].nArgs & 0x00FF;
+ // Element 0 ist der Returnwert
+ if( ( !pPar && nPar )
+ || ( pPar && pPar->Count() < nPar+1 ) )
+ SetError( SbxERR_WRONG_ARGS );
+ // Alles klar, man kann den Call ausfuehren
+ else
+ {
+ (this->*(pMethods[ nIndex ].pFunc))( pVar, pPar, bWrite );
+ }
+ }
+ }
+ }
+ SbxObject::SFX_NOTIFY( rBC, rBCT, rHint, rHT );
+ }
+}
+
+// Zusammenbau der Infostruktur fuer einzelne Elemente
+
+SbxInfo* ProcessWrapper::GetInfo( short nIdx )
+{
+ Methods* p = &pMethods[ nIdx ];
+ // Wenn mal eine Hilfedatei zur Verfuegung steht:
+ // SbxInfo* pInfo = new SbxInfo( Hilfedateiname, p->nHelpId );
+ SbxInfo* pInfo = new SbxInfo;
+ short nPar = p->nArgs & _ARGSMASK;
+ for( short i = 0; i < nPar; i++ )
+ {
+ p++;
+ String aName( p->pName, RTL_TEXTENCODING_ASCII_US );
+ USHORT nFlags = ( p->nArgs >> 8 ) & 0x03;
+ if( p->nArgs & _OPT )
+ nFlags |= SBX_OPTIONAL;
+ pInfo->AddParam( aName, p->eType, nFlags );
+ }
+ return pInfo;
+}
+
+
+////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////////////
+
+// Properties und Methoden legen beim Get (bPut = FALSE) den Returnwert
+// im Element 0 des Argv ab; beim Put (bPut = TRUE) wird der Wert aus
+// Element 0 gespeichert.
+
+// Die Methoden:
+void ProcessWrapper::PSetImage( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite )
+{ // Imagedatei des Executables
+ if ( pPar->Count() >= 2 )
+ pProcess->SetImage(pPar->Get( 1 )->GetString(), pPar->Get( 2 )->GetString() );
+ else
+ pProcess->SetImage(pPar->Get( 1 )->GetString(), String() );
+}
+
+void ProcessWrapper::PStart( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite )
+{ // Programm wird gestartet
+ pVar->PutBool( pProcess->Start() );
+}
+
+void ProcessWrapper::PGetExitCode( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite )
+{ // ExitCode des Programms(nachdem es beendet ist)
+ pVar->PutULong( pProcess->GetExitCode() );
+}
+
+void ProcessWrapper::PIsRunning( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite )
+{ // Programm luft noch
+ pVar->PutBool( pProcess->IsRunning() );
+}
+
+void ProcessWrapper::PWasGPF( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite )
+{ // Programm mit GPF o.. abgebrochen
+ pVar->PutBool( pProcess->WasGPF() );
+}
+
+
+
+
+
+
+// Die Factory legt unser Objekte an.
+
+SbxObject* ProcessFac